0byt3m1n1
Path:
/
data
/
applications
/
aps
/
tikiwiki
/
3.2.0-5
/
standard
/
htdocs
/
lib
/
phplayers
/
[
Home
]
File: CHANGELOG
--------------------------------------- PHP Layers Menu 3.2.0-rc (Aug 17, 2004) --------------------------------------- Successfully tested with PHP 5.0. Added support for SQLite and PHP5 scripts for importing corresponding DUMPS/sqlite.*.dump; bundled a demo SQLite DB file: DUMPS/phplayersmenu Affected files: DUMPS/sqlite.*.dump DUMPS/sqlite.*.dump.php5 DUMPS/phplayersmenu lib/layersmenu-process.inc.php (see the getSQLDump() method) DB-related examples, in particular example-filetodb.php Added a simple check in scanTableForMenu() method (i.e. in lib/layersmenu-common.inc.php) to avoid troubles if the 'phplayersmenu_i18n' table contains items not matching any item (i.e., any 'id') of the 'phplayersmenu' table. Updated the browser detection and the see-through workaround to account for Konqueror 3.3, that, just as Konqueror 3.2, is affected by the see-through effect only for 2 form elements: - the select list with size greater than 1 - the textarea Alas, at the time of this writing (Konqueror 3.2.3 and 3.3.0-rc2), hiding of such two form elements on Konqueror 3.2 and 3.3 does not work, as it is still affected by the following bug: http://bugs.kde.org/72885 A minor change to the getWindowWidth() and getWindowHeight() functions in lib/layersmenu-library.js to obtain a correct behaviour also when the page containing a layers-based menu is inside a frame. Added the DTD declaration to framed documents. Minor code clean up: removed inclusion of PHPLIB.php in example-dbtofile.php and example-filetodb.php, where it was not needed. Added 'class="normal"' here and there in example-see-through.php (Konqueror 3.3) Increased the suggested minimal version of Mozilla from 0.9.1 to 0.9.2: everything should work correctly also on 0.9.1, but the precompiled tarball of 0.9.1 downloaded from mozilla.org does not install on the distribution I am currently using (Mandrake 10.0 Official) and I am not happy to reboot to an older distribution only for testing on Mozilla 0.9.1; anyway, I suppose that really no one is still using such an old version of Mozilla and, if my memory does not fail, Mozilla 0.9.2.1 corresponds to Netscape 6.1... who is still using Netscape 6.0 nowadays??? >:-) Reorganized the home page (now the demo is demo.php) and the examples. Added a server-side (written in PHP) browser detection ( lib/layersmenu-browser_detection.php ) for the home page of the project, that now provides different menus for different browsers. Some minor changes to README.ihtml Added the "bitstream vera sans" fonts option and reduced font sizes in the stylesheets. Readded in the PATCHES/ONCLICK/ directory the patches based on code changes contributed by Alex Pagnoni. Added in the PATCHES/ICONS_I18N/ directory the icons_i18n.patch, that adds internationalization (i18n) for the "icon" field of the "phplayersmenu_i18n" table, beside the "text" and "title" fields. Added in the PATCHES/FIXEDMENU/ directory the fixedmenu.patch, that allows to keep the horizontal menu in a fixed position when the page is scrolled. --------------------------------------- PHP Layers Menu 3.2beta (July 27, 2004) --------------------------------------- Added the possibility of highlighting the current item in the tree menus. Four methods are provided in the LayersMenuCommon class to allow selection of the current item: setSelectedItemByCount() -- to select the current item in terms of its line number in the corresponding menu structure file setSelectedItemById() -- to select the current item in terms of the corresponding id in the DB table setSelectedItemByUrl() -- to select the current item specifying a string that occurs in the current URL setSelectedItemByUrlEregi() -- to select the current item of $menu_name specifying a regular expression that matches (a substring of) the current URL; just the same as the setSelectedItemByUrl() method, but using eregi() instead of strpos() This should close feature request 946429: http://sourceforge.net/tracker/index.php?func=detail&aid=946429&group_id=33447&atid=408330 Affected files: layerstreemenu.css lib/layersmenu-common.inc.php lib/phptreemenu.inc.php lib/treemenu.inc.php Added the setLinksTargets() method to the LayersMenuCommon class to allow to set the same target for all links of a menu; this method was already introduced in PgMarket 2.3.1 (shopping/navigation.php) to extend the bundled version of PHPLM (3.0.0). Affected file: lib/layersmenu-common.inc.php A minor change to lib/treemenu.inc.php to fix bug 989437 eliminating "onmousedown" where it was not sensed: http://sourceforge.net/tracker/index.php?func=detail&aid=989437&group_id=33447&atid=408327 Fixed bug 980509, that affected treemenus containing only one first-level item (being both the first one and the last one): http://sourceforge.net/tracker/index.php?func=detail&aid=980509&group_id=33447&atid=408327 Affected files: lib/phptreemenu.inc.php lib/treemenu.inc.php libjs/layerstreemenu.ijs THEMES/* menuimages/*tree_collapse_corner_first* (new images) menuimages/*tree_expand_corner_first* (new images) Replaced "addslashes" with "stripslashes" in lib/layersmenu-common.inc.php for the "title" field. In horizontal layers menus, first-level separators were not ignored. FIXED. Affected file: lib/layersmenu.inc.php Added some "text-decoration: none;" lines to the CSSs, to avoid problems with msie. Affected files: layersmenu-galaxy.css layersmenu-gtk2.css layersmenu-keramik.css layerstreemenu.css ------------------------------------ PHP Layers Menu 3.1.5 (July 4, 2004) ------------------------------------ Fixed detection of Konqueror 3.0 in libjs/layersmenu-browser_detection.js In libjs/layersmenu-see-through.js , in function scanChildren() , there was an error in the condition for Konqueror 3.2, that affected also the condition for IE; fixed. Extended the see-through workaround to cope with resizing of the browsing window. Separators: the solution proposed by Mihai Bazon is very clever, but it seems that separators are invisible (transparent) on msie 5.2.3 for MacOSX (no comment...). The Mihai's solution has been replaced with the solution proposed by Bruno in http://www.brunildo.org/test/separa3d2px.html that seems to be working also on msie 5.2.3 for MacOSX. Note: changes have affected the templates and the stylesheets. Added methods setIconsize() and unsetIconsize() to allow to avoid detection of width and height of icons, setting them to fixed values. Implemented feature request 941152 ("URI icons"), to allow to use also icons specified as URLs, e.g. to link shortcut icons of web sites without downloading them: http://sourceforge.net/tracker/index.php?func=detail&aid=941152&group_id=33447&atid=408330 Changes applied to implement this feature are analogous to the changes provided in the uri_icons-3.1.1.patch attached to the mentioned feature request. Note: such changes have affected also the templates. The "images" directory has been split in the "menuimages" and "menuicons" directories; menuicons/ contains icons of menu items; menuimages/ contains images needed by the menu system, i.e. arrows, treemenu themes, and transparent.png; methods setIcondir() and setIconwww(), analogous to setImgdir() and setImgwww(), have been added. This change was needed to cope with the situation explained in the "Help" discussion forum - "absolute path for icons": http://sourceforge.net/forum/forum.php?thread_id=1097355&forum_id=104941 Added the replaceStringInUrls() method, to allow to replace a given string in all URLs (hrefs) of menu items. As an example, this allows to use constant strings such as 'WWWROOT' in the menu structure, only for items linking pages in the site (not for items linking other sites), and then replace 'WWWROOT' with the corresponding "path", that may have different values on the development workstation and on the production server. Many people were confused about getHeader() returning the header but not preparing it; the same for getFooter(). Now getHeader() prepares the header (calling makeHeader()) if it has not been prepared yet, then it returns it; now printHeader() simply relies on getHeader() and does not call makeHeader() anymore; the same changes have been made for the footer. This slight change should eliminate the abovementioned misunderstanding. ------------------------------------- PHP Layers Menu 3.1.4 (June 27, 2004) ------------------------------------- lib/layersmenu-common.inc.php does not include PEAR.php and DB.php anymore. With this choice, if PEAR is not installed and the DB support is not used, no change to the code of the class is needed to avoid errors. This change implies that now, to use the DB support, the script using the class must include also PEAR.php and DB.php, just as lib/PHPLIB.php (whose inclusion was already needed before this change); an example is in the code of example-db-hormenu.php, that now includes also PEAR.php and DB.php: ... require_once 'lib/PHPLIB.php'; require_once 'PEAR.php'; require_once 'DB.php'; require_once 'lib/layersmenu-common.inc.php'; require_once 'lib/layersmenu.inc.php'; ... whereas, in previous versions, example-db-hormenu.php did not include PEAR.php and DB.php Some minor "cosmetic" changes to the code to match almost all PEAR coding standards: http://pear.php.net/manual/en/standards.php Currently, the PHPLM code is almost completely compliant with PEAR coding standards; basically, currently non compliance is in the following point: http://pear.php.net/manual/en/standards.php#standards.indenting PHPLM is not compliant with this point, as its indentation is made using "classical" 8-columns tabs. I absolutely do not want to restart here the "eternal holy war" about "tabs versus spaces" :-) , I simply point out that I prefer using tabs. As currently PHPLM is not included in the PEAR repository, in my opinion this non-compliance is not a problem. BTW, it has to be noted that PHPLM does not use PEAR_error, it uses its own error() method; furthermore, the PHPLIB.php bundled with PHPLM is slightly different from the original Template_PHPLIB PEAR class (but it is compatible with it). The rationale is the following one: to provide a PHPLM library that requires PEAR only if the DB support is used and that does not require PEAR otherwise. The slight changes to PHPLIB.php make it just independent from PEAR. ------------------------------------- PHP Layers Menu 3.1.3 (June 20, 2004) ------------------------------------- Replaced double quotes with single quotes in the PHP code where it was advisable. Replaced double quotes with single quotes also in many lines of JavaScript code. Updated the ACKNOWLEDGEMENTS Added the possibility of using separators in layers-based menus. The hint proposed by Mihai Bazon in http://dynarch.com/mishoo/articles.epl?art_id=620 has been used. Separators have to be indicated with three dashes, i.e. with "---", see layersmenu-horizontal-1.txt and DUMPS/[mysql|pgsql].demo_data.dump as an example. Updated links to style sheets in the templates, to obtain significant previews of templates in Quanta Plus. Updated CHANGE_TEMPLATE_CLASS_NAME.sh ------------------------------------- PHP Layers Menu 3.1.2 (June 13, 2004) ------------------------------------- Applied hover_background_color_fix_for_safari.patch to fix a rendering problem on Safari and to workaround yet another one of the countless stupid bugs of msie 5.5 and 6.0. References: http://sourceforge.net/tracker/index.php?func=detail&aid=878361&group_id=33447&atid=408327 http://sourceforge.net/tracker/index.php?func=detail&aid=878367&group_id=33447&atid=408329 http://sourceforge.net/forum/forum.php?thread_id=1075576&forum_id=104941 http://sourceforge.net/tracker/index.php?func=detail&aid=963072&group_id=33447&atid=408329 http://sourceforge.net/tracker/index.php?func=detail&aid=963477&group_id=33447&atid=408327 Applied code_clean_up-3.1.1-1.patch , that removes unused $menu_name from the _depthFirstSearch() method in lib/layersmenu-common.inc.php Reference: http://sourceforge.net/tracker/index.php?func=detail&aid=878607&group_id=33447&atid=408329 Applied galaxy-mdk92-3.1.1.patch , that updates a color of the Galaxy theme to match Mandrake 9.2. Reference: http://sourceforge.net/tracker/index.php?func=detail&aid=878610&group_id=33447&atid=408329 Applied typos_fixes-3.1.1-1.patch , that fixes some typos in templates. Reference: http://sourceforge.net/tracker/index.php?func=detail&aid=878612&group_id=33447&atid=408329 Fixed bug 913550: the example-filetodb.php script did not give correct parent id's. The bug has been fixed with a patch simpler than filetodb-fix-3.1.1.patch , i.e. changing layersmenu-process.inc.php but leaving unchanged example-filetodb.php References: http://sourceforge.net/tracker/index.php?func=detail&aid=913550&group_id=33447&atid=408327 http://sourceforge.net/tracker/index.php?func=detail&aid=931586&group_id=33447&atid=408329 Applied phplm_expand-3.1.1.patch, that changes the 'expand' and 'collapse' variable/cookie names to 'phplm_expand' and 'phplm_collapse' respectively, because 'expand' is a very generic term, that can cause conflicts with certain web applications. References: http://sourceforge.net/tracker/index.php?func=detail&aid=931661&group_id=33447&atid=408330 http://sourceforge.net/tracker/index.php?func=detail&aid=931697&group_id=33447&atid=408329 Applied treemenus_themeability-3.1.1.patch , that adds the possibility of using different themes for distinct tree menus on a page. Changed accordingly the filenames of images contained in THEMES/*.tar.gz Extended index.php , example-layersmenus_and_treemenus.php , and example-two_treemenus.php , to evidence the added feature. Reference: http://sourceforge.net/tracker/index.php?func=detail&aid=962053&group_id=33447&atid=408329 Minor code clean up: removed lines 535 and 721 of lib/layersmenu.inc.php Re-added the PATCHES directory. Added to the PATCHES directory the icons_i18n-3.1.1.patch , that adds internationalization (i18n) for the "icon" field beside the "text" and "title" fields. Reference: http://sourceforge.net/tracker/index.php?func=detail&aid=962059&group_id=33447&atid=408329 Fixed bug 940086, [Tree] "Menu open/closes for local dirs in an unpredictable way" through a small change to libjs/layerstreemenu-cookies.js Reference: http://sourceforge.net/tracker/index.php?func=detail&aid=940086&group_id=33447&atid=408327 Many thanks to Sasha Kushnirenko for this bug fix. Updated the see-through workaround for Konqueror 3.2.x, that is affected by the see-through effect only for 2 form elements: - the select list with size greater than 1 - the textarea Alas, at the time of this writing (Konqueror 3.2.2), hiding of such two form elements on Konqueror 3.2.x does not work, as it is affected by the following bug: http://bugs.kde.org/72885 ------------------------------------ PHP Layers Menu 3.1.1 (Nov 15, 2003) ------------------------------------ Eliminated from the code libdir and libjswww, that were no more used. Fixed a bug in the setTpldirCommon() method. Changed/extended some parts of code (and updated the examples accordingly) to allow to change all directory paths using only the setDirroot() method. Thanks to Morten Poulsen for his bug report and his suggestion. Removed the JavaScript tag from lib/layersmenu-browser_detection.js and updated the examples accordingly. Thanks to Philipp Kamps for his report. Changed HTML:default:default with HTML:frames:default in README.PHPDOC to avoid a warning with phpDocumentor 1.2.2; you have to undo this change if you are still using phpDocumentor 1.1. ------------------------------------ PHP Layers Menu 3.1.0 (Sep 21, 2003) ------------------------------------ I wish to start the changelog of this new development branch with some clarifications about choices I have done with this release. Recently, I have said many times that I would have eliminated the support of some old browsers (mainly Netscape 4 and Internet Explorer 4) starting from just *this* release; however, I have still not done this because a middle-ground solution has rather easily allowed to mantain support for them. Such middle-ground solution has consisted of reorganizing some stuff, so that now incompatibility with old browsers is due only to the code of templates and style sheets, and of providing, beside the default templates and style sheets, some old-style templates and style sheets that still allow you to preserve compatibility if you *really* need. Please consider that this also implies that, to avoid of accidentally loosing the support of some browsers, now you must be *much more careful* if you customize templates and style sheets. Please also consider that probably, starting from now, the old-style stuff will not be tested as widely and deeply as the new one, as now the focus is on non-ancient browsers... the need of abandoning support for Netscape 4, that has disclosed me the world of Internet, makes me sad, but it's life: time goes on, and too old software has to be abandoned at a given time. Upgraded to HTML_Template_PHPLIB-1.3.1. Reorganized the PHP code to split the classes in more classes: LayersMenu --> LayersMenuCommon, LayersMenu, TreeMenu XLayersMenu --> PHPTreeMenu, PlainMenu Switched to the look anticipated in version 3.0.0 by the NEW_GENERATION patch; now ancient browsers are no more supported unless you use old-style templates and style sheets instead of the default ones (look at example-hormenu-old.php to see an "old-style" example). Support for Mozilla 0.6 and Netscape 6.0 is available again. Support of Konqueror 2.1 has been definitively dropped, also in old-style templates and style sheets. Added a workaround for the see-through problem, as loudly and longly requested by many people. To avail of the workaround, surround the "dangerous" form elements with a div with id="phplmseethrough" and include layersmenu-see-through.js, just as in example-see-through.php. "Dangerous" elements are automatically found relying on the DOM tree properties; they are not searched for outside the "phplmseethrough" div: I have chosen this approach for performance and simplicity reasons. If you do not need this workaround, you do not have to add any such div. The workaround is available for Konqueror and Internet Explorer 5+. As Mozilla 1.4 and Opera 7 have solved the problem, I have decided to avoid any workaround for both Mozilla (that was alredy almost not affected by this weird problem) and Opera, and I *strongly* advise Mozilla and Opera users to upgrade to the new versions if possible. I do not have added any workaround for Netscape 4 and Internet Explorer 4, as it seems more difficult (they are both strongly non DOM-compliant) and as in my opinion it is not worth the effort, also because in the long term I will drop any support for both them. On Konqueror 3.x and IE 5+ I have found a reliable way[*] to hide only elements that actually overlap with popped up layers, but, alas, on the contrary, since now I have not found a way to check *reliably* for such overlaps also on Konqueror 2.2, hence the workaround is rather rough for Konqueror 2.2: each time a layer of the menu is popped up, *all* "dangerous" form elements are hidden. [*] According to the performed tests, it *seems* reliable enough ^_^ Changed the name of the "link" field: for better overall coherence, now it is called "href"; this change affects the DB and the templates (and the internal code of the classes, but this is not visible to final users). Anyway, the API allow to use data put in tables and tables fields with non default names, hence this change should not cause too many troubles. Temporarily dropped the PATCHES directory: the corresponding patches will be either integrated during this development branch (if it will appear advisable) or restored later, after needed changes. Other undocumented changes and improvements to the code. Be aware that version 3.0 of the manual is not completely suited to PHPLM 3.1.x and that, in general, version 3.0 of the manual has to be considered valid only for PHPLM 3.0.x. -------------------------------------- PHP Layers Menu 3.0.0 (Aug 31st, 2003) -------------------------------------- Added and changed many examples; a comprehensive manual has been added, as loudly and longly requested by many people; the manual is not bundled with the package, it is released as a separate document. Added a "Keramik-like" patch based on suggestions and contributions of Shai Coleman (shai@eurotexte.fr). This patch is a sort of "preview" of the future versions of PHPLM. Many thanks, Shai. Michele Antonecchia has prepared logos and shortcut icons for the PHP Layers Menu System; they have been added under the LOGOS directory. Many thanks, Michele. A minor change to the setTpldir() method; now the default filenames of templates are updated when the template directory is changed. A minor bug fix related to a workaround needed for Mozilla < 1.4 for MS Windows. A minor bug fix to the layersmenu-sub_menu*.ihtml templates (a missing 'colspan="2"'). Fixed an incompatibility with PostgreSQL 7.3 in lib/layersmenu-process.inc.php Added some checks to avoid that a new menu is requested before that its menu menu data are parsed. Renamed the _parseCommon method as parseCommon, as it can be useful with the ProcessLayersMenu extended class and hence it has to be considered a public (not private) method. Minor changes to README.PHPDOC and to lib/layersmenu*.inc.php to make things work without warnings with phpDocumentor 1.2.2. Added CHANGE_TEMPLATE_CLASS_NAME.sh to change the name of the template class from "Template" to "Template_PHPLIB" (or to something else) if needed. Commented out the first "if" statement in the _filename() method of the Template class, to workaround problems that can arise due to the buggy and stupid "file system" notation of the MS Windows environments. Some minor undocumented changes. ----------------------------------------- PHP Layers Menu 3.0beta2 (May 18th, 2003) ----------------------------------------- Added the timeout feature to the Layers Menu; this feature is enabled by default; it can be disabled setting useTimeouts = 0; in libjs/layersmenu.js; this feature is automatically disabled for browsers that have troubles with it. Now the shutdown of all layers onclick is disabled by default; it can be reenabled setting shutdownOnClick = 1; in libjs/layersmenu.js; this feature is automatically enabled for browsers that either have troubles with the timeout feature or are not able to use it. The old behaviour (no timeout, shutdown onclick) is easily restored setting useTimeouts = 0; and shutdownOnClick = 1; in libjs/layersmenu.js Thanks to Paul Adams and Shai Coleman for their suggestions about this topic. Some minor changes to the JS Tree Menu and to the PHP Tree Menu to improve the resulting html code and reduce its size. Thanks to Stephan Slabihoud for his suggestions. Added the PATCHES directory to collect some interesting contributed patches that can be used to change/customize the menu system behaviour. Added the DOCS directory where documentation has to be added; currently, it provides only a document about performed tests. --------------------------------------- PHP Layers Menu 3.0beta (May 4th, 2003) --------------------------------------- Split the "lib" directory in "lib" and "libjs"; libdir and libwww become libdir, libjsdir, libjswww. Fixed a mistake in lib/layersmenu.inc.php, line 1438 and in lib/layersmenu-noscript.inc.php, line 175. Thanks to Stepan Kadlec (steve@students.zcu.cz) for his bug report. Added the following images for the first item of the Tree Menus: tree_collapse_first.png tree_expand_first.png tree_split_first.png Thanks to Paulo R. Bagatini (arkanon@ceat.net) for his suggestion. Minor changes to layersmenu.css to obtain a better look for fonts with Mozilla 1.3 and Konqueror 3.1 on Mandrake Linux 9.1. ------------------------------------- PHP Layers Menu 2.3.5 (Mar 9th, 2003) UNSTABLE BRANCH ------------------------------------- Some little changes to obtain a better imitation of the Gnome, KDE, and MS Windows main menus' behaviour for the layers menus w.r.t. turning off popped up layers. Added setVisibility() and isVisible() to lib/layersmenu-library.js to extend the browser abstraction layer and to reduce the amount of browser-dependent code in lib/layersmenu.js A minor change to moveLayerX() (lib/layersmenu.js) and to getWindowWidth() (lib/layersmenu-library.js) to handle Netscape 4 just like Mozilla, as Netscape 4 seems able to return a correct value of the window width. Renamed popUp() as LMPopUp() and popUpL() as LMPopUpL(), to allow to use the "popUp" function name (that seems to be rather widely used) for other purposes in the same page. Added a workaround to overcome an annoying behaviour of Mozilla on MS Windows for the layers menus: now layers popped up for the first time appear on the right place without appearing with abscissa = 0 before. Added an extended class (ProcessLayersMenu) providing methods useful to process/convert menus data, e.g. to output a menu structure and a DB SQL dump corresponding to already parsed data and hence also to convert a menu structure file to a DB SQL dump and viceversa. File: lib/layersmenu-process.inc.php Some examples of use of this extended class have been added to the package. Added some examples of use of this package. ------------------------------------- PHP Layers Menu 2.3.4 (Mar 2nd, 2003) UNSTABLE BRANCH ------------------------------------- Server-side speed improvement: now the depth-first recursive search of items stored in the DB is performed on a PHP array obtained querying the DB *only once*; this strongly reduces the time needed to retrieve and process data stored in the DB. Thanks to Iacopo Spalletti for this fine suggestion. Added i18n support for items stored in the DB. Correspondingly, a non mandatory argument ($language) has been added to the scanTableForMenu() method. Improvements for the DB-related user interface. Now the customization of field names allows to disable not available (not wanted) fields and should be more comfortable and intuitive and less error prone. Now field names can be passed in whatever order and their specification is mandatory only for non-default field names; not available (not wanted) fields can be disabled simply passing empty field names. Added error handling for the DB connection request. Added $prependedUrl (and the corresponding setPrependedUrl() method) to the LayersMenu class, to allow to prepend the same string to the content of all links if needed. As an example, this is needed if the complete URLs of the links depend on the settings of the package for which you are using the PHP Layers Menu System and/or when the storing in the DB of $prependedUrl for each link item either makes no sense or is not really viable/advisable. ******** * NOTE * ******** Extended the menu structure format to foresee the default expansion state for each item: [dots]|[text]|[link]|[title]|[icon]|[target]|[expanded] The DB dumps have been changed accordingly. Due to this change, the setTreeMenuDefaultExpansion() method is no more needed and hence it has been eliminated... now you do not need anymore to guess the numerical ids of items to be expanded by default ;-) The corresponding method is still used for the PHP Tree Menu, as this new approach would be not easily viable in this case and as the default expansion of the PHP Tree Menu can be easily obtained simply looking and the URL query string. Noticeable client-side performance improvement through the use of a smarter approach in the popUp() function of lib/layersmenu.js To evidence the difference w.r.t. previous versions, you can compare versions 2.3.3 and 2.3.4; load the demos of these versions in two distinct browser tabs (if you are using a browser that *still* does not provide tabs *nowadays*, you have to load the demos in two distinct browser windows), then go to the last item of the first horizontal menu ("DOM, layers...") and, when the corresponding layer is popped up, move the mouse up and down over all the links shown in the layer; you will notice that switching of highlighting of links backgrounds now is fast, so much faster w.r.t. version 2.3.3. (You cannot note any difference if you are using Netscape 4) ******** * NOTE * ******** Some changes to functions and variables names for lib/layersmenu.js, that has been split in the following way. ------------------------- lib/layersmenu-library.js ------------------------- General purpose cross-browser functions, whose code provides a browser abstraction layer that can be useful also for the development of other projects. You do not need anymore to load this code if you want to provide only JavaScript Tree Menus on your pages. ---------------------- lib/layersmenu.js ---------------------- Code used just by the Layers Menus. You do not need anymore to load this code if you want to provide only JavaScript Tree Menus on your pages. ----------------------------- lib/layerstreemenu-cookies.js ----------------------------- Code needed to handle cookies for the JavaScript Tree Menus. You do not need anymore to load this code if you want to provide only Layer Menus on your pages. ******** * NOTE * ******** Coherently with the above change, the makeHeader() and printHeader() methods do not provide anymore the browser detection code; include layersmenu-browser_detection.js in your pages as shown in the examples; do not include it as you do for layersmenu-library.js, layersmenu.js, and layerstreemenu-cookies.js; embed it *statically* in your page's code as in the examples, otherwise you can trigger errors in Netscape 4 if loading of lib/layersmenu-browser_detection.js is completed too late. Added some simple examples related to the use of items stored in a DB: example-db-1.php, example-db-2.php, example-db-3.php A minor change in layersmenu.css to have on Konqueror, for the demo title, the same look provided by Mozilla. ------------------------------------- PHP Layers Menu 2.3.3 (Feb 9th, 2003) UNSTABLE BRANCH ------------------------------------- Minor improvements to the JS Tree Menu code to obtain a correct behaviour on Konqueror 3.1. Changes to the JS Tree Menu code to show icons specified for leaf items in the menu structure. The images/tree* images have been changed too: now their size is 16x18, no more 20x18, to match better the size of shortcut icons (16x16). BTW, 16x18 is just the image size that leads to a perfect imitation of the "Manage Bookmarks..." window of Mozilla. Added for the Tree Menus some themes consisting of tarballs of images that can be used replacing the default ones; available themes are in the "THEMES" directory: galeon-theme, gmc-theme (the one used until version 2.3.2), kde-theme, mozilla-theme (the new default one), nautilus-gnome-theme. Abandoned the use of tables for the PHP Tree Menu; now it uses exactly the same tags (layers) used for the JavaScript Tree Menu and it has *exactly* the same look, also w.r.t. icons specified for leaf items. This solves also some formatting problems that can occur on Netscape 4 and that seem to be non solvable without abandoning the use of tables. Please note that Netscape 4 ignores the "white-space: nowrap" CSS property, hence, if you want to be sure to obtain a correct formatting also on Netscape 4, you may need to use the tree inside a nowrap environment, as in the index.php example bundled with the package. Thanks to Paulo R. Bagatini, that has evidenced the problem. Minor changes to handle correctly Opera >= 7, which provides a much better DOM support w.r.t. previous versions. A minor improvement to sub-menu templates of the layers menu. Completely switched to XHTML 1.0 Transitional. Added the possibility to get the menu content from a DB table. PEAR DB is used to provide independence of the PHP code from the DBMS; dumps for PostgreSQL and MySQL are bundled with the package together with demo data dumps, and an example script is provided, too: example-db.php Renamed the parseMenuStructure() method as parseStructureForMenu() hoping that now its name is less misleading ;^) Changed debian-icon-mini.png, php-bugs-icon-mini.png, and phplib-logo-mini.png to obtain corresponding 16x16 icons. -------------------------------------- PHP Layers Menu 2.3.2 (Jan 12nd, 2003) UNSTABLE BRANCH -------------------------------------- Some look improvements, especially for the JavaScript Tree Menu on Netscape 4, IE 4.0, IE 5.0, Opera 5 and 6. In particular, now the JavaScript Tree Menu is well formatted on all browsers and, in particular, on Netscape 4. ******** * NOTE * ******** Now two stylesheets are used: layersmenu.css has been split in layersmenu.css and layerstreemenu.css; layerstreemenu.css is included with a different syntax (see the demo example, i.e. index.php) because it has to be used *only* by newer browsers and, in particular, it must *not* be used by Netscape 4, to avoid the Tree Menu formatting problems that can be noted on version 2.3.1. Added support for IE 4.0 to the JavaScript Tree Menu. Added cookies to the JavaScript Tree Menu to allow the browser to remember the expansion state of the tree during a browsing session. ------------------------------------- PHP Layers Menu 2.3.1 (Jan 4th, 2003) UNSTABLE BRANCH ------------------------------------- Added a JavaScript Tree Menu to the LayersMenu() class, to provide tree menus that work completely on the client side. Only browser sufficiently compliant to the DOM are supported, i.e. Mozilla (and Mozilla-based browsers, such as Galeon and Netscape >= 6), Konqueror >= 3.0, IE 5.0, 5.5, and 6.0; everything should run rather well also on Opera 7. The following browsers are *not* supported, as supporting them is either not possible at all or really too hard, even though full accessibility is provided for them: Netscape 4.x, Konqueror 2.x, lynx, links, Opera 5 and 6, IE 4.0. Sorry for Netscape 4; my choice of not supporting it for the JavaScript Tree Menu makes me very sad, also because it has been the browser that has disclosed me the world of Internet; but, alas, it is time to begin abandoning it... thank you so much, and goodbye... Note: due to the addition of the JavaScript Tree Menu, some name changes have occurred in the code of the PHP Tree Menu, to avoid conflicts. Now the Tree Menu uses the text label without any link if the link field is empty in the menu structure. Added treeMenuImagesType and setTreeMenuImagesType() to the XLayersMenu class to allow to use image types different from png in the Tree Menu without changing the code of the class. Added treeMenuDefaultExpansion and setTreeMenuDefaultExpansion() to the XLayersMenu class to allow to set which nodes have to be expanded by default in the Tree Menu. Thanks to Paulo R. Bagatini <arkanon@ceat.net> for his suggestions. Fixed the use of "name=" tags in the Tree Menu. Some undocumented minor changes and code clean up. -------------------------------------- PHP Layers Menu 2.3.0 (Dec 15th, 2002) UNSTABLE BRANCH -------------------------------------- Dropped support of Mozilla 0.6 and Netscape 6.0; supported versions are Mozilla >= 0.7 and Netscape >= 6.1. Dropped support of PHP < 4.1. Moved to the PEARified version of the PHPLib Template class. Changed the code to use a PEAR-like syntax: ---------------- LayersMenu class ---------------- ---------------------------------------------------------------------- methods: -------- set_abscissa_step -> setAbscissaStep set_ordinate_step -> setOrdinateStep set_thresholdY -> setThresholdY set_dirroot -> setDirroot set_libdir -> setLibdir set_libwww -> setLibwww set_tpldir -> setTpldir set_imgdir -> setImgdir set_imgwww -> setImgwww set_horizontal_menu_tpl -> setHorizontalMenuTpl set_vertical_menu_tpl -> setVerticalMenuTpl set_sub_menu_tpl -> setSubMenuTpl set_forward_arrow_img -> setForwardArrowImg set_forward_arrow -> setForwardArrow set_down_arrow_img -> setDownArrowImg set_down_arrow -> setDownArrow set_menu_structure_file -> setMenuStructureFile set_menu_structure_string -> setMenuStructureString set_separator -> setSeparator parse_menu_structure -> parseMenuStructure parse_common -> _parseCommon update_footer -> _updateFooter new_horizontal_menu -> newHorizontalMenu new_vertical_menu -> newVerticalMenu make_header -> makeHeader get_header -> getHeader print_header -> printHeader get_menu -> getMenu print_menu -> printMenu make_footer -> makeFooter get_footer -> getFooter print_footer -> printFooter ---------------------------------------------------------------------- variables: ---------- package_name -> _packageName halt_on_error -> haltOnError horizontal_menu_tpl -> horizontalMenuTpl vertical_menu_tpl -> verticalMenuTpl sub_menu_tpl -> subMenuTpl menu_structure -> menuStructure nodes_count -> _nodesCount max_level -> _maxLevel first_level_cnt -> _firstLevelCnt first_item -> _firstItem last_item -> _lastItem first_level_menu -> _firstLevelMenu forward_arrow_img -> forwardArrowImg forward_arrow -> forwardArrow down_arrow_img -> downArrowImg down_arrow -> downArrow abscissa_step -> abscissaStep ordinate_step -> ordinateStep ---------------------------------------------------------------------- ----------------- XLayersMenu class ----------------- ---------------------------------------------------------------------- methods: -------- set_tree_menu_separator -> setTreeMenuSeparator set_tree_menu_images_width -> setTreeMenuImagesWidth new_tree_menu -> newTreeMenu get_tree_menu -> getTreeMenu print_tree_menu -> printTreeMenu set_plain_menu_separator -> setPlainMenuSeparator set_plain_menu_tpl -> setPlainMenuTpl new_plain_menu -> newPlainMenu get_plain_menu -> getPlainMenu print_plain_menu -> printPlainMenu set_horizontal_plain_menu_separator -> setHorizontalPlainMenuSeparator set_horizontal_plain_menu_tpl -> setHorizontalPlainMenuTpl new_horizontal_plain_menu -> newHorizontalPlainMenu get_horizontal_plain_menu -> getHorizontalPlainMenu print_horizontal_plain_menu -> printHorizontalPlainMenu ---------------------------------------------------------------------- variables: ---------- tree_menu_separator -> treeMenuSeparator tree_menu_images_width -> treeMenuImagesWidth tree_menu -> _treeMenu plain_menu_separator -> plainMenuSeparator plain_menu_tpl -> plainMenuTpl plain_menu -> _plainMenu horizontal_plain_menu_separator -> horizontalPlainMenuSeparator horizontal_plain_menu_tpl -> horizontalPlainMenuTpl horizontal_plain_menu -> _horizontalPlainMenu ---------------------------------------------------------------------- Fixed a bug that caused an incorrect behaviour on the Tree Menu links for the [+] and [-] icons when the http port was not 80. Thanks to Yves Mettier <ymettier@libertysurf.fr> and Jesus M. Castagnetto <jmcastagnetto@php.net> for their bug reports and fixes. Other undocumented changes and improvements, e.g. to the templates and to the style sheet. -------------------------------------- PHP Layers Menu 2.2.0 (Oct 13th, 2002) -------------------------------------- lib/layersmenu-noscript.inc.php3, new_tree_menu(): fixed the detection of the https protocol. Thanks to Danny Jovica <danny@e-pc.com.au> for his bug report. ---------------------------------------- PHP Layers Menu 2.2beta (Sep 29th, 2002) UNSTABLE BRANCH ---------------------------------------- Moved the browser detection from lib/layersmenu.js to the body of the HTML code returned by the PHP parsing. This change has been needed to avoid JavaScript errors that on Netscape 4 often occurred loading the page for the first time (a reload was needed to make things work). To this end, the browser detection code has been put in a new file, i.e. lib/layersmenu-browser_detection.js , which is included by the template lib/layersmenu-header.ijs , and a minor change to the make_header() method of the LayersMenu class has been needed in lib/layersmenu.inc.php3 . Some minor changes to provide compliance with XHTML 1.0 Transitional. Now PHP Layers Menu is compliant at least with the following DTDs: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> A minor "cosmetic" change in the setX() function in lib/layersmenu.js A minor change in the yaresizeHandler() function in lib/layersmenu.js Changed all the Tree Menu images to use all 20x18 images and provide a better look, especially on Konqueror. -------------------------------------- PHP Layers Menu 2.1.0 (Sep 21st, 2002) UNSTABLE BRANCH -------------------------------------- Now the vertical coordinates of links are obtained simply as DOM properties. Hence it is no more needed to estimate their coordinates through the detection of the position of the mouse pointer, and it is no more necessary to compute and set reasonable coordinates for the layers (this was needed for browsers not able to detect the mouse pointer position). Detection of the position of the mouse pointer is still employed, but only for Netscape 4, which does not seem able to return the vertical coordinate of links relying on the DOM tree. Many thanks to Iacopo Spalletti for this very fine hint, which strongly improves the behaviour of this menu system. A clean up in lib/layersmenu.js for the code handling the document.onmousedown and the document.onclick events. Changed the default value of $ordinate_margin, that now is 12 and no more 20. Updated the README and some comments in the code. Minor corrections to the README. -------------------------------------- PHP Layers Menu 2.0.0 (Sep 15th, 2002) -------------------------------------- Functions setwidth() and setheight(): the bug fix provided in version 2.0beta3 causes problems to IE 5.5 and IE 6.0, and Mozilla does not need it in that functions (it needs it only in functions setleft() and settop()); hence the same code used in version 2.0beta2 has been restored for that functions. The bug fix provided in version 2.0beta3 also prevents the menu system from working on Opera 5; extended functions setleft() and settop() to handle Opera 5 as a distinct case and use the non-fixed code for it. Some extensions to lib/layersmenu.js and minor changes to the templates to obtain also with IE 6.0 a correct behaviour with the long DTD for HTML 4.01 Transitional. ---------------------------------------- PHP Layers Menu 2.0beta3 (Sep 1st, 2002) UNSTABLE BRANCH ---------------------------------------- A bug fix in lib/layersmenu.js (functions setleft(), settop(), setwidth(), setheight()); now the menu system works also on Mozilla also with the long DTD for HTML 4.01 Transitional, i.e. with <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> Many thanks to Iacopo Spalletti for this fine bug fix. Changed the Tree Menu images according to Debian Woody's Gmc and Galeon. ----------------------------------------- PHP Layers Menu 2.0beta2 (Aug 11th, 2002) UNSTABLE BRANCH ----------------------------------------- Fixed some typos. ----------------------------------------- PHP Layers Menu 2.0beta (July 28th, 2002) UNSTABLE BRANCH ----------------------------------------- Commented the code of PHP classes according to the PHPDocumentor syntax. Added the set_separator() method to allow to change the separator, that by default is still "|". Added the possibility of commenting out a line in the menu structure inserting a "#" as the first character of the line, in analogy with shell scripts. Thanks to Normando Marcolongo <normando@lugroma.org> for his suggestion. Some other minor undocumented changes. Added an extended class to provide menu solutions not requiring JavaScript, i.e. Tree Menu (based on the Tree Menu 1.1 package by Bjorge Dijkstra), Plain Menu, and Horizontal Plain Menu. Slightly changed the menu structure format: added a separator between dots and text to allow text of links to begin with one or more dots; now the menu structure format is [dots]|[text]|[link]|[title]|[icon]|[target] (obviously, the separator can be different from "|", which is the default, if the set_separator() method is used). More precisely, now only the number of chars before the first separator is counted, hence it is also possible to use chars different from dots, even though I discommend to do this and I suggest to continue considering a format that foresees usage of dots. -------------------------------------- PHP Layers Menu 1.1.7 (May 26th, 2002) UNSTABLE BRANCH -------------------------------------- Reorganization and extension of code, data structures, variables names, and templates. Clean up of the style sheet. Added some variables to the class, in particular, dirroot and libdir. Thanks to Claudio Bandaloukas <rdfm@lugroma.org> for his bug report. Added titles to links and support for icons; this implies a format change for the menu structure, that now is [dots][text]|[link]|[title]|[icon]|[target] Now horizontal menus cells can have arbitrary widths. This allows to save space in the browser window, with menu layers still correctly placed. -------------------------------------- PHP Layers Menu 1.1.6 (May 19th, 2002) UNSTABLE BRANCH -------------------------------------- Renamed the class as LayersMenu; renamed methods and added some useful new methods. Added the possibility of reading each menu structure from a string instead of from a file; this is useful if, e.g., the menu structure is returned by some code that retrieves informations from a data base. Eliminated inclusion of template.inc.php3 from layersmenu.inc.php3; now template.inc.php3 has to be included by the script that employs the LayersMenu class. Moved some files in suited sub directories and added methods to choose paths and to choose templates for each menu; changed the demo script to make more evident this change. Eliminated $abscissa_stepx5, which was not used. Added the JavaScript variable IE, to indicate *each version* of IE (>= 4.0); now the IE4 variable indicates *only* version 4 of IE. Some minor changes to adapt the code to this choice. Added an elementary error handling. Other undocumented changes and improvements. -------------------------------------- PHP Layers Menu 1.1.5 (May 12th, 2002) UNSTABLE BRANCH -------------------------------------- Added handling of window resizing. Better handling of horizontal autorepositioning of layers. Some little changes to validate as HTML 4.01 Transitional. Added methods to allow a more clean use of the menu system in pages using templating. Other undocumented improvements and changes. ------------------------------------- PHP Layers Menu 1.1.4 (May 5th, 2002) UNSTABLE BRANCH ------------------------------------- Added the LICENSE file and changed the license to include the option of later versions of the GNU LGPL. Added detection of layers widths (for browsers able to detect them), and then set the position of each layer just in correspondence of the "father" layer. Added detection of the document width and of width and scroll of the browsing window, and then implemented horizontal and vertical "autowrap" of menu layers. Added explicit detection of Konqueror, as Konqueror 3 implements useful features but sets IE4 = 1 ... AAAAAAAAAARGHHH!!! Extended Opera detection, as Opera 6 provides useful features not available or completely unreliable in Opera 5. Some code cleanups in layermenu.js Provided methods makeheader() and makefooter() beside printheader() and printfooter(), to allow the use of the menu system in pages using templating (now $this->header and $this->footer can be used). A minor change to README to avoid problems with e-mail addresses inside the "pre" tag. Updated README and corrected some typos. Minor changes to the demo menu structure files to evidence new features. Minor undocumented changes. ---------------------------------------- PHP Layers Menu 1.1.3.1 (Apr 14th, 2002) UNSTABLE BRANCH ---------------------------------------- Restored popUp calls in leaf node links, they were needed!!! Thanks to Hanno Saks <hanno@lv.parnu.ee> for his bug report. Eliminated a spurious tag. Affected file: layersmenu.inc.php3 -------------------------------------- PHP Layers Menu 1.1.3 (Feb 24th, 2002) UNSTABLE BRANCH -------------------------------------- A better and more reliable choice of the layer identifying the first level menu both for horizontal and vertical menus. Now the layer is defined inside a td tag to avoid problems with menus not left aligned. New workarounds to cope with IE's oddities related to this choice. Centered the menu hormenu1 in the demo to make more evident the effects of the change. Eliminated the no more useful moveLayerY() call in links belonging to the first level menu of horizontal menus; consequently added the call of moveLayers() in popUp() when needed (it results to be needed if the first submenu popped up belongs to a horizontal menu). Eliminated from the templates the tags identifying layers, to avoid accidental removal of tags essential for the menus operation; now such tags are inserted through the PHP code. Some speed enhancements obtained minimizing the number of function calls in moveLayers() and removing unuseful popUp calls in leaf nodes links (such enhancements can be noted mainly on Mozilla and IE4). Renamed layersmenu-footer.ihtml as layersmenu-submenu.ihtml Renamed the printfirstleveltable() method as printfirstlevelmenu() Minor undocumented changes. -------------------------------------- PHP Layers Menu 1.1.2 (Feb 17th, 2002) UNSTABLE BRANCH -------------------------------------- Extended the set of functions provided in layersmenu.js. Now the menu system is able to detect itself the position of menus. Hence it is no more needed to estimate and provide the corresponding coordinates when defining a menu, and the phplm() and newmenu() calls are simpler. Thanks to this ability, a better support is provided for Konqueror. Support for Netscape 4: version >= 4.07 is required now (version 4.05 simply crashes). Delayed the positioning of hidden layers after the page loading to preserve support of Mozilla < 0.9 and Netscape 6.0; this also provides a better support for Opera. Now setwidth() is no more used in layersmenu.inc.php3 (it resulted to be unnecessary); some changes have been made to layersmenu-footer.ihtml; these changes achieve a better support for Netscape 6.0 and a better look of layers for the other browsers. Some changes to provide correct working of the package also if in php.ini it is set error_reporting = E_ALL ("error_reporting = 8" in PHP3) Thanks to Tomas J. Fulopp <Tomi@uia.be> - <tomas.fulopp@skynet.be> for his bug report. ------------------------------------- PHP Layers Menu 1.1.1 (Feb 3rd, 2002) UNSTABLE BRANCH ------------------------------------- Fixed a bug in the detection of non leaf nodes. On version 1.1.0, the bug can be evidenced deleting the last line of layersmenu.txt and realizing that the link "Find Files" does not pop up the corresponding layer, that contains the link "RPM Find". In practice, in version 1.1.0, if the last entry of the menu structure file is the only child of the previous entry, it is not possible to pop up the corresponding layer. Thanks to Michele Conte <ceu@libero.it> for his bug report. Renamed phplayersmenu.inc.php3 as layersmenu.inc.php3 Documentation fixes. Minor undocumented changes. -------------------------------------- PHP Layers Menu 1.1.0 (Jan 13th, 2002) UNSTABLE BRANCH -------------------------------------- Object Oriented rewrite of the package. Now an arbitrary number of vertical and horizontal menus can be used on the same page, and the package's use should be easier.