PHP Layers Menu is a hierarchical menu system to prepare "on the fly" DHTML 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, Safari, Opera, Internet Explorer; rather old browser versions are supported, too; accessibility is provided for text-only browsers.
It achieves a compact layout and a compact output code also for menus with a large number of entries.
It provides horizontal and vertical layers-based menus whose behavior is analogous to menus of commonly used GUI-based applications. It also provides JavaScript-based tree menus, whose look is analogous to the most widely used file managers and bookmark handling tools.
Note: SiteBar can act as a backend for PHPLM; visit the SiteBar web site for details.
Layers-based menus require JavaScript and work at least on the following browsers:
If old-style templates are used instead of the default ones, layers-based menus work also on the following browsers:
The PHP Layers Menu System also provides 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.:
The following browsers are not supported, as supporting them is either not possible at all or really too hard:
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 accessibility solutions, i.e. "server-side based" tree menus (that have just the same look of the above mentioned 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
To use the DB support, PEAR DB is required; obviously, if the open_basedir restriction is in effect, PEAR must be installed somewhere inside the allowed path.
PHPLM is compliant with the following web standards:
Some interesting customizations are bundled in the PATCHES directory.
-- Marco Pratesi - http://www.marcopratesi.it/