Template Error: filename: file lib/phplayers/templates/layersmenu-horizontal_menu.ihtml does not exist.

Warning: file_get_contents() [function.file-get-contents]: Filename cannot be empty in /home/katkins/public_html/kswiki/lib/phplayers/lib/PHPLIB.php on line 510
Template Error: loadfile: While loading tplfile, does not exist or is empty.
Template Error: setBlock: unable to load tplfile.
Template Error: loadfile: template is not a valid handle.
Template Error: setBlock: unable to load template.
Template Error: loadfile: horizontal_menu_cell is not a valid handle.
Template Error: setBlock: unable to load horizontal_menu_cell.
Template Error: loadfile: cell_link is not a valid handle.
Template Error: setBlock: unable to load cell_link.
Template Error: loadfile: cell_link is not a valid handle.
Template Error: setBlock: unable to load cell_link.
Template Error: filename: file lib/phplayers/templates/layersmenu-sub_menu.ihtml does not exist.

Warning: file_get_contents() [function.file-get-contents]: Filename cannot be empty in /home/katkins/public_html/kswiki/lib/phplayers/lib/PHPLIB.php on line 510
Template Error: loadfile: While loading tplfile, does not exist or is empty.
Template Error: setBlock: unable to load tplfile.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: setBlock: unable to load sub_menu_cell.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: setBlock: unable to load sub_menu_cell.
Template Error: loadfile: cell_link is not a valid handle.
Template Error: subst: unable to load cell_link.
Template Error: loadfile: horizontal_menu_cell is not a valid handle.
Template Error: subst: unable to load horizontal_menu_cell.
Template Error: loadfile: cell_arrow is not a valid handle.
Template Error: subst: unable to load cell_arrow.
Template Error: loadfile: cell_link is not a valid handle.
Template Error: subst: unable to load cell_link.
Template Error: loadfile: horizontal_menu_cell is not a valid handle.
Template Error: subst: unable to load horizontal_menu_cell.
Template Error: loadfile: cell_arrow is not a valid handle.
Template Error: subst: unable to load cell_arrow.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: cell_icon is not a valid handle.
Template Error: subst: unable to load cell_icon.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: cell_icon is not a valid handle.
Template Error: subst: unable to load cell_icon.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: cell_icon is not a valid handle.
Template Error: subst: unable to load cell_icon.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: cell_arrow is not a valid handle.
Template Error: subst: unable to load cell_arrow.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: cell_icon is not a valid handle.
Template Error: subst: unable to load cell_icon.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: cell_icon is not a valid handle.
Template Error: subst: unable to load cell_icon.
Template Error: loadfile: cell_arrow is not a valid handle.
Template Error: subst: unable to load cell_arrow.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: cell_icon is not a valid handle.
Template Error: subst: unable to load cell_icon.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: cell_icon is not a valid handle.
Template Error: subst: unable to load cell_icon.
Template Error: loadfile: cell_arrow is not a valid handle.
Template Error: subst: unable to load cell_arrow.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: cell_icon is not a valid handle.
Template Error: subst: unable to load cell_icon.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: cell_icon is not a valid handle.
Template Error: subst: unable to load cell_icon.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: cell_icon is not a valid handle.
Template Error: subst: unable to load cell_icon.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: cell_icon is not a valid handle.
Template Error: subst: unable to load cell_icon.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: cell_icon is not a valid handle.
Template Error: subst: unable to load cell_icon.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: cell_icon is not a valid handle.
Template Error: subst: unable to load cell_icon.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: cell_icon is not a valid handle.
Template Error: subst: unable to load cell_icon.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: cell_icon is not a valid handle.
Template Error: subst: unable to load cell_icon.
Template Error: loadfile: cell_arrow is not a valid handle.
Template Error: subst: unable to load cell_arrow.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: cell_icon is not a valid handle.
Template Error: subst: unable to load cell_icon.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: cell_icon is not a valid handle.
Template Error: subst: unable to load cell_icon.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: cell_icon is not a valid handle.
Template Error: subst: unable to load cell_icon.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: cell_icon is not a valid handle.
Template Error: subst: unable to load cell_icon.
Template Error: loadfile: cell_arrow is not a valid handle.
Template Error: subst: unable to load cell_arrow.
Template Error: loadfile: cell_link is not a valid handle.
Template Error: subst: unable to load cell_link.
Template Error: loadfile: horizontal_menu_cell is not a valid handle.
Template Error: subst: unable to load horizontal_menu_cell.
Template Error: loadfile: cell_icon is not a valid handle.
Template Error: subst: unable to load cell_icon.
Template Error: loadfile: cell_arrow is not a valid handle.
Template Error: subst: unable to load cell_arrow.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: cell_icon is not a valid handle.
Template Error: subst: unable to load cell_icon.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: cell_icon is not a valid handle.
Template Error: subst: unable to load cell_icon.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: cell_icon is not a valid handle.
Template Error: subst: unable to load cell_icon.
Template Error: loadfile: cell_arrow is not a valid handle.
Template Error: subst: unable to load cell_arrow.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: cell_icon is not a valid handle.
Template Error: subst: unable to load cell_icon.
Template Error: loadfile: cell_arrow is not a valid handle.
Template Error: subst: unable to load cell_arrow.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: cell_icon is not a valid handle.
Template Error: subst: unable to load cell_icon.
Template Error: loadfile: cell_arrow is not a valid handle.
Template Error: subst: unable to load cell_arrow.
Template Error: loadfile: cell_link is not a valid handle.
Template Error: subst: unable to load cell_link.
Template Error: loadfile: horizontal_menu_cell is not a valid handle.
Template Error: subst: unable to load horizontal_menu_cell.
Template Error: loadfile: cell_icon is not a valid handle.
Template Error: subst: unable to load cell_icon.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: cell_icon is not a valid handle.
Template Error: subst: unable to load cell_icon.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: cell_icon is not a valid handle.
Template Error: subst: unable to load cell_icon.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: cell_icon is not a valid handle.
Template Error: subst: unable to load cell_icon.
Template Error: loadfile: cell_arrow is not a valid handle.
Template Error: subst: unable to load cell_arrow.
Template Error: loadfile: cell_link is not a valid handle.
Template Error: subst: unable to load cell_link.
Template Error: loadfile: horizontal_menu_cell is not a valid handle.
Template Error: subst: unable to load horizontal_menu_cell.
Template Error: loadfile: cell_icon is not a valid handle.
Template Error: subst: unable to load cell_icon.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: cell_icon is not a valid handle.
Template Error: subst: unable to load cell_icon.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: cell_icon is not a valid handle.
Template Error: subst: unable to load cell_icon.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: cell_icon is not a valid handle.
Template Error: subst: unable to load cell_icon.
Template Error: loadfile: cell_arrow is not a valid handle.
Template Error: subst: unable to load cell_arrow.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: cell_icon is not a valid handle.
Template Error: subst: unable to load cell_icon.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: cell_icon is not a valid handle.
Template Error: subst: unable to load cell_icon.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: cell_icon is not a valid handle.
Template Error: subst: unable to load cell_icon.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: cell_arrow is not a valid handle.
Template Error: subst: unable to load cell_arrow.
Template Error: loadfile: cell_link is not a valid handle.
Template Error: subst: unable to load cell_link.
Template Error: loadfile: horizontal_menu_cell is not a valid handle.
Template Error: subst: unable to load horizontal_menu_cell.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: template is not a valid handle.
Template Error: subst: unable to load template.
Template Error: filename: file lib/phplayers/templates/layersmenu-sub_menu.ihtml does not exist.

Warning: file_get_contents() [function.file-get-contents]: Filename cannot be empty in /home/katkins/public_html/kswiki/lib/phplayers/lib/PHPLIB.php on line 510
Template Error: loadfile: While loading tplfile, does not exist or is empty.
Template Error: setBlock: unable to load tplfile.
Template Error: loadfile: template is not a valid handle.
Template Error: setBlock: unable to load template.
Template Error: loadfile: template is not a valid handle.
Template Error: subst: unable to load template.
Template Error: loadfile: template is not a valid handle.
Template Error: subst: unable to load template.
Template Error: loadfile: template is not a valid handle.
Template Error: subst: unable to load template.
Template Error: loadfile: template is not a valid handle.
Template Error: subst: unable to load template.
Template Error: loadfile: template is not a valid handle.
Template Error: subst: unable to load template.
Template Error: loadfile: template is not a valid handle.
Template Error: subst: unable to load template.
Template Error: loadfile: template is not a valid handle.
Template Error: subst: unable to load template.
Template Error: loadfile: template is not a valid handle.
Template Error: subst: unable to load template.
Template Error: loadfile: template is not a valid handle.
Template Error: subst: unable to load template.
Template Error: loadfile: template is not a valid handle.
Template Error: subst: unable to load template.
Template Error: loadfile: template is not a valid handle.
Template Error: subst: unable to load template.
Template Error: loadfile: template is not a valid handle.
Template Error: subst: unable to load template.
Template Error: loadfile: template is not a valid handle.
Template Error: subst: unable to load template.
Template Error: loadfile: template is not a valid handle.
Template Error: subst: unable to load template.
Template Error: filename: file lib/phplayers/templates/layersmenu-vertical_menu.ihtml does not exist.

Warning: file_get_contents() [function.file-get-contents]: Filename cannot be empty in /home/katkins/public_html/kswiki/lib/phplayers/lib/PHPLIB.php on line 510
Template Error: loadfile: While loading tplfile, does not exist or is empty.
Template Error: setBlock: unable to load tplfile.
Template Error: loadfile: template is not a valid handle.
Template Error: setBlock: unable to load template.
Template Error: loadfile: vertical_menu_box is not a valid handle.
Template Error: setBlock: unable to load vertical_menu_box.
Template Error: loadfile: vertical_menu_cell is not a valid handle.
Template Error: setBlock: unable to load vertical_menu_cell.
Template Error: loadfile: vertical_menu_cell is not a valid handle.
Template Error: setBlock: unable to load vertical_menu_cell.
Template Error: filename: file lib/phplayers/templates/layersmenu-sub_menu.ihtml does not exist.

Warning: file_get_contents() [function.file-get-contents]: Filename cannot be empty in /home/katkins/public_html/kswiki/lib/phplayers/lib/PHPLIB.php on line 510
Template Error: loadfile: While loading tplfile, does not exist or is empty.
Template Error: setBlock: unable to load tplfile.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: setBlock: unable to load sub_menu_cell.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: setBlock: unable to load sub_menu_cell.
Template Error: loadfile: cell_icon is not a valid handle.
Template Error: subst: unable to load cell_icon.
Template Error: loadfile: vertical_menu_cell is not a valid handle.
Template Error: subst: unable to load vertical_menu_cell.
Template Error: loadfile: cell_icon is not a valid handle.
Template Error: subst: unable to load cell_icon.
Template Error: loadfile: vertical_menu_cell is not a valid handle.
Template Error: subst: unable to load vertical_menu_cell.
Template Error: loadfile: cell_icon is not a valid handle.
Template Error: subst: unable to load cell_icon.
Template Error: loadfile: cell_arrow is not a valid handle.
Template Error: subst: unable to load cell_arrow.
Template Error: loadfile: vertical_menu_cell is not a valid handle.
Template Error: subst: unable to load vertical_menu_cell.
Template Error: loadfile: cell_icon is not a valid handle.
Template Error: subst: unable to load cell_icon.
Template Error: loadfile: cell_arrow is not a valid handle.
Template Error: subst: unable to load cell_arrow.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: cell_icon is not a valid handle.
Template Error: subst: unable to load cell_icon.
Template Error: loadfile: cell_arrow is not a valid handle.
Template Error: subst: unable to load cell_arrow.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: cell_icon is not a valid handle.
Template Error: subst: unable to load cell_icon.
Template Error: loadfile: sub_menu_cell is not a valid handle.
Template Error: subst: unable to load sub_menu_cell.
Template Error: loadfile: vertical_menu_box is not a valid handle.
Template Error: subst: unable to load vertical_menu_box.
Template Error: loadfile: template is not a valid handle.
Template Error: subst: unable to load template.
Template Error: filename: file lib/phplayers/templates/layersmenu-sub_menu.ihtml does not exist.

Warning: file_get_contents() [function.file-get-contents]: Filename cannot be empty in /home/katkins/public_html/kswiki/lib/phplayers/lib/PHPLIB.php on line 510
Template Error: loadfile: While loading tplfile, does not exist or is empty.
Template Error: setBlock: unable to load tplfile.
Template Error: loadfile: template is not a valid handle.
Template Error: setBlock: unable to load template.
Template Error: loadfile: template is not a valid handle.
Template Error: subst: unable to load template.
Template Error: loadfile: template is not a valid handle.
Template Error: subst: unable to load template.
Template Error: loadfile: template is not a valid handle.
Template Error: subst: unable to load template.
A file-based example with two Layers Menus and two JavaScript Tree Menus
A Tree Menu
Another Tree Menu

Powered by PHP Layers Menu

Valid XHTML 1.0!

Valid CSS!
The PHP Layers Menu System 3.1.1 (development)

PHP Layers Menu is a hierarchical dynamic menu system that allows to prepare "on the fly" dynamic HTML menus relying on the PHP scripting engine for the processing of data items.

It is released under the GNU Lesser General Public License (LGPL), either Version 2.1, or (at your option) any later version.

It supports a wide range of browsers: Mozilla, Konqueror, Netscape, Opera, Internet Explorer; rather old browser versions are supported, too; accessibility is provided for text-only browsers.

It achieves a compact view and a reasonably small file size for the page also with a very large number of entries.

It provides horizontal and vertical layers-based menus whose behavior is analogous to the Gnome, KDE, and MS Windows main menus. It provides also JavaScript-based tree menus, whose look is analogous to the most widely used file managers and bookmark handling tools.


Layers-based menus require JavaScript and work at least on the following browsers:

  • Mozilla 0.6+ (versions 0.9.1+ are suggested)
  • Netscape 6.0+ and other browsers based on Mozilla, e.g. Epiphany and Galeon
  • Konqueror 2.2+ and browsers based on it, e.g. Safari
  • Opera 6.x and 7.x
  • Internet Explorer 5, 5.5, 6.

If old-style templates are used instead of the default ones, layers-based menus work also on the following browsers:

  • Netscape 4.07+
  • Opera 5.x
  • Internet Explorer 4

The PHP Layers Menu System provides also JavaScript-based tree menus, whose nodes can be expanded and collapsed on sufficiently DOM-compliant browsers (they remain completely expanded for the other browsers). They have more strict requirements w.r.t. the layers menus and provide complete functionality only to browsers sufficiently DOM-compliant for the purpose at hand, i.e.:

  • Mozilla (versions 0.9.1+ are suggested)
  • Netscape 6.0+ and other browsers based on Mozilla, e.g. Epiphany and Galeon
  • Konqueror 3.0+ and browsers based on it, e.g. Safari
  • Opera 7.x
  • Internet Explorer 4, 5, 5.5, 6

The following browsers are not supported, as supporting them is either not possible at all or really too hard:

  • Netscape 4.x
  • Konqueror 2.x
  • Lynx and Links
  • Opera 5.x and 6.x

However, full accessibility is provided for the above browsers: the Tree Menus always appear completely exploded (and no node can be collapsed) on them, and this guarantees a rather good accessibility for them.


Two classes are provided to prepare also "server-side based" tree menus (that have just the same look of the above JavaScript-based tree menus, but require the PHP support on the web server) and plain menus that do not require the JavaScript support to the browser.


An arbitrary number of vertical and horizontal menus can be used on the same page.

As much levels as needed can be used and each menu is dynamically generated using data retrieved from a file, a string, or a database table; the data format is rather simple and intuitive.

Multiple languages are supported (i18n) if data are retrieved from a database.

PHPLM is compliant with current recommendations for PHP developers: it works correctly with the following settings

  • register_globals = Off
  • safe_mode = On
  • error_reporting = E_ALL
  • allow_call_time_pass_reference = Off
  • short_open_tag = Off

If PEAR is not used (i.e. if the DB support is not used), it works correctly also if the open_basedir restriction is in effect.

It is compliant with the following standards:

  • XHTML 1.0 Transitional
  • CSS 2.0
--
Marco Pratesi