<div class="titlebox"> <div class="h1"> The PHP Layers Menu System 3.1.1 (development) </div> </div> <p> PHP Layers Menu is a hierarchical dynamic menu system that allows to prepare &quot;on the fly&quot; dynamic HTML menus relying on the PHP scripting engine for the processing of data items. </p> <p> It is released under the GNU Lesser General Public License (LGPL), either Version 2.1, or (at your option) any later version. </p> <p> 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. </p> <p> It achieves a compact view and a reasonably small file size for the page also with a very large number of entries. </p> <p> 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. </p> <hr /> <p> Layers-based menus require JavaScript and work at least on the following browsers: </p> <ul> <li><div class="phplmnormal">Mozilla 0.6+ (versions 0.9.1+ are suggested)</div></li> <li><div class="phplmnormal">Netscape 6.0+ and other browsers based on Mozilla, e.g. Epiphany and Galeon</div></li> <li><div class="phplmnormal">Konqueror 2.2+ and browsers based on it, e.g. Safari</div></li> <li><div class="phplmnormal">Opera 6.x and 7.x</div></li> <li><div class="phplmnormal">Internet Explorer 5, 5.5, 6.</div></li> </ul> <p> If old-style templates are used instead of the default ones, layers-based menus work also on the following browsers: </p> <ul> <li><div class="phplmnormal">Netscape 4.07+</div></li> <li><div class="phplmnormal">Opera 5.x</div></li> <li><div class="phplmnormal">Internet Explorer 4</div></li> </ul> <hr /> <p> 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.: </p> <ul> <li><div class="phplmnormal">Mozilla (versions 0.9.1+ are suggested)</div></li> <li><div class="phplmnormal">Netscape 6.0+ and other browsers based on Mozilla, e.g. Epiphany and Galeon</div></li> <li><div class="phplmnormal">Konqueror 3.0+ and browsers based on it, e.g. Safari</div></li> <li><div class="phplmnormal">Opera 7.x</div></li> <li><div class="phplmnormal">Internet Explorer 4, 5, 5.5, 6</div></li> </ul> <p> The following browsers are not supported, as supporting them is either not possible at all or really too hard: </p> <ul> <li><div class="phplmnormal">Netscape 4.x</div></li> <li><div class="phplmnormal">Konqueror 2.x</div></li> <li><div class="phplmnormal">Lynx and Links</div></li> <li><div class="phplmnormal">Opera 5.x and 6.x</div></li> </ul> <p> 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. </p> <hr /> <p> Two classes are provided to prepare also &quot;server-side based&quot; 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. </p> <hr /> <p> An arbitrary number of vertical and horizontal menus can be used on the same page. </p> <p> 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. </p> <p> Multiple languages are supported (i18n) if data are retrieved from a database. </p> <p> PHPLM is compliant with current recommendations for PHP developers: it works correctly with the following settings </p> <ul> <li><div class="preformatted">register_globals = Off</div></li> <li><div class="preformatted">safe_mode = On</div></li> <li><div class="preformatted">error_reporting = E_ALL</div></li> <li><div class="preformatted">allow_call_time_pass_reference = Off</div></li> <li><div class="preformatted">short_open_tag = Off</div></li> </ul> <p> 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. </p> <p> It is compliant with the following standards: </p> <ul> <li><div class="phplmnormal">XHTML 1.0 Transitional</div></li> <li><div class="phplmnormal">CSS 2.0</div></li> </ul> <!-- p class="phplmnormal"> Some interesting customizations are bundled in the PATCHES directory. </p --> <pre class="preformatted"> -- Marco Pratesi </pre>