Enhanced menu

Goal

The goal is to create a new Portal module, called Portal::Menu, providing these functionalities:

  • Display an application list to the connected user, with possibility to hide applications he did not have access to.
  • Provide a simple "change password" form that respect Password Policy LDAP draft.

XML applications list

DTD

The XML applications list must respect this DTD:

<!ELEMENT menu (category*) >

<!ELEMENT category (application*, category*) > <!ATTLIST category name CDATA #REQUIRED >

<!ELEMENT application (name, uri?, description?, logo?, screenshot?, display?) > <!ATTLIST application id ID #REQUIRED >

<!ELEMENT name ( #PCDATA ) > <!ELEMENT uri ( #PCDATA ) > <!ELEMENT description ( #PCDATA ) > <!ELEMENT logo ( #PCDATA ) > <!ELEMENT screenshot ( #PCDATA ) > <!ELEMENT display ( #PCDATA ) >

Parameters definition

  • Category:
    • Name of the category (required)
  • Application:
    • ID: unique id of the application inside XML file (required).
    • Name: friendly name of the applications (required).
    • URI: full URI of the application, with http(s)://, and path, page, etc.
    • Description: description of the application.
    • Logo: file name of the logo.
    • Screenshot: file name of the screenshot.
    • Display:
      • "auto": display application only if the user has access to it.
      • "on": always display.
      • "off": never display.
The menu must contains at least one category. Each category can contain applications and categories. An application cannot contain a category. An application must be inside a category.

Sample XML file

Now you can configure your applications list, for example:

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE menu SYSTEM "apps-list.dtd">
<menu>
    <category name="Business">
	<application id="aaa">
		<name>AAA</name>
		<uri>http://test.ow2.org/aaa</uri>
		<description>AAA description</description>
		<logo>aaa-logo.gif</logo>
		<display>auto</display>
	</application>
	<application id="bbb">
		<name>BBB</name>
		<uri>http://test.ow2.org/bbb/login.do</uri>
		<description>BBB description</description>
		<logo>bbb-logo.gif</logo>
		<display>on</display>
	</application>
   </category>
   <category name="Technical">
     <category name="Directories">
	<application id="pla">
		<name>phpLDAPAdmin</name>
		<uri>http://phpldapadmin.ow2.org</uri>
		<description>LDAP directory administration</description>
		<logo>pla-logo.gif</logo>
		<display>auto</display>
	</application>
     </category>
     <category name="Application servers">
	<application id="probe">
		<name>Probe</name>
		<uri>http://probe.ow2.org</uri>
		<description>Tomcat stats</description>
		<logo>probe-logo.gif</logo>
		<display>auto</display>
	</application>
     </category>
   </category>
</menu>