Klixo Menu System
The menu is constructed from an xml file defining the hierarchy of menu choices. This file is typically auto-generated as a page on the your website. This is achieved by specifying a standard XSL transform http://lib.klixo.com/xsl/kxPageHierarchy.xslt. This file should be copied to the xsl directory of your website. The resulting filename is set as kxPageHierarchy.xml. The page name is set to PAGE MENU XML
A page template generates the base menu (that is the permanently visible menu) dynamically. Sample xsl is provided in http://klixo.net.nz/klixo/xsl/customers/kxLeftMenu.xsl. Standard naming conventions are given in this file for CSS and javascript function calls. This may be auto-generated as a page on your website. If so, the page name is set to HTML MENUS LEFT.
The dynamic aspect of the menu is provided by javascript functions. These load the menu definition xml and transforms it with the file http://lib.klixo.com/xsl/kxMenuFragment.xsl into XHTML code that is used to control the sub-menus.
This page must include the following files:
js/kxMenu.js
http://lib.klixo.com/js/kxXMLMenu.js
http://lib.klixo.com/js/klixo.js
http://lib.klixo.com/js/browser.js
http://lib.klixo.com/js/x-platform.js
The body onload must call kxInitMenus(xml, xsl) where xml is the auto-generated menu definition page and xsl is the template to create the html code used by the menuing system. The xml and xsl parameters default to kxPageHierarchy.xml and kxMenuFragment.xsl and may be omitted if these files are named as such.
The body onmousemove event must call kxMenuOnMouseMove(event).
kxXMLMenu.js should not be modified by the client and is a fixed, stable javascript file that is generic for all customers. No calls are made to this file from the customer's published code. Calls to this library are only made from kxMenu.js.
The kxMenu.js file is copied to the your website. This file may be modified as necessary. kxMenu.js is customer specific but is likely to remain essentially generic. This file receives the initialisation and event calls from the customer's published code.
CSS
A default CSS file is provided in http://klixo.net.nz/klixo/css/customers/kxMenu.css
This defines all A, TABLE, TD and P menu styles used by the kxMenu system.
Notes
The page names HTML MENUS LEFT and PAGE MENU XML are automatically removed from the menu system. Other pages that should not be present in the menu may be hard-coded into the kxMenu.js script by adding their names to the badmenus array in the function kxRemoveSpecificMenus function. Any such page should have a parent page.