The <navigation> directive.
If the website is to have a navbar pull down menu, it will be necessary to specify which headings should appear and in what order, and which pages should appear under each heading. This is the purpose of the <navigation> tag working in conjunction with the the 'subject' attribute of the pages themselves. Consider the example below:-
<navigation> <subject name="About us"/> <subject name="Services"/> <subject name="Products"/> <subject name="Members Area"/> </navigation>
This will create a navbar with possible headings from left to right of 'About us', 'Services', 'Products' and 'Members Area'. The headings only become visible if there is at least one page that is both accessible to the visitor and has the applicable subject. The <navigation> tag is not exclusive however. If a page names a subject not listed under the <navigation> tag, the subject will be added to the navbar, but at the end. Note this will also happen if you add a page in which the subject is misspelt or has the wrong case (e.g. subject="products" with a lower case 'p'). In this example 'products' would appear to the right of 'Members Area'. This looks horrible but is at least easy to fix.
Note that in the current version of Dissemino the <navigation> tag is a singleton and has no attributes (as there is no need to name it). This will change in the next version which will support sites with multiple navigation bars.
But setting up the <navigation> tag won't make it start appearing in your pages. Nothing ever appears in a page unless explicitly directed by tags. And the tag for the navigation bar to appear is the <navbar> tag. If as is often the case, the navigation bar is to sppear in more than one page (or all the pages), the <navbar> tag can be placed within an <xinclude> along with anything else that is common to multiple pages.
The <navbar> tag has no attributes or sub-tags and so must be self closing. It is the functional equivelent to the following set of tags:-
<xwho user="none"><script language="javascript" src="/jsc/nav-public.js"></xwho> <xwho user="admin"><script language="javascript" src="/jsc/nav-admin.js"></xwho> <xwho user="userclass1"><script language="javascript" src="/jsc/nav-userclass1.js"></xwho> ..... <xwho user="userclassN"><script language="javascript" src="/jsc/nav-userclassN.js"></xwho> <script language="javascript" src="/jsc/navhdl.js"></script>
Of the above, the javascript navhdl.js impliments the pull down menu itself while the javascripts like nav-public.js provide the data (the list of headings and items). Note that these javascripts are within <xwho> tags. This is done to avoid presenting menu items a user may not be permitted to access. Naturally, these javascripts are generated by Dissemino although only upon startup. They are then served from memory.
Clearly nav_public.js, nav_admin.js, navhdl.js and the nav_userclass series are reserved words and should not appear anywhere in the configs.