<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 5.5.2653.12">
<TITLE>RE: [opencms-dev] How to use a  navigation</TITLE>
</HEAD>
<BODY>
<BR>

<P><FONT SIZE=2> Hi,</FONT>
</P>

<P><FONT SIZE=2>Thanks for your reply. As your suggestion, here is what I did yesterday.</FONT>
<BR><FONT SIZE=2> </FONT>
<BR><FONT SIZE=2>Define 2 navigation: top_nav, and left_nav.</FONT>
<BR><FONT SIZE=2>Put them in the same frame template.</FONT>
<BR><FONT SIZE=2>Create two new pages to see how the templates work. Here is my result:</FONT>
</P>

<P><FONT SIZE=2> Because we have only one input navigation name, so the navigations appearing on the top and the left are the same.</FONT>
<BR><FONT SIZE=2> But their behaviours are different;</FONT>
<BR><FONT SIZE=2> The left navigation is "ON" when selected, the top one is  always "OFF".</FONT>
</P>

<P><FONT SIZE=2>I don't know how to declare the navigation names for the left, and the top ones seperately.</FONT>
</P>

<P><FONT SIZE=2>Below are my left_nav, and top_nav contents. </FONT>
<BR><FONT SIZE=2>If possible please tell me what wrong I've made.</FONT>
</P>

<P><FONT SIZE=2>Thank you,</FONT>
</P>

<P><FONT SIZE=2>Yendung</FONT>
</P>
<BR>

<P><FONT SIZE=2>1.left_nav</FONT>
</P>

<P><FONT SIZE=2><?xml version="1.0" encoding="ISO-8859-1"?></FONT>
<BR><FONT SIZE=2><XMLTEMPLATE></FONT>
</P>

<P><FONT SIZE=2><naventry></FONT>
<BR><FONT SIZE=2>  <![CDATA[</FONT>
<BR><FONT SIZE=2>    <TR></FONT>
<BR><FONT SIZE=2>      <td > </FONT>
<BR><FONT SIZE=2>        <a </FONT>
<BR><FONT SIZE=2>           href="]]><process>navlink</process><![CDATA["</FONT>
<BR><FONT SIZE=2>           onmouseover="JavaScript:document.image_]]></FONT>
<BR><FONT SIZE=2>           <![CDATA[.value=']]><LINK>/system/galleries/pics/pics/</LINK><process>navtext</process><![CDATA[_over.gif'"</FONT>
<BR><FONT SIZE=2>           onmouseout="JavaScript:document.image_]]></FONT>
<BR><FONT SIZE=2>           <![CDATA[.value=']]><LINK>/system/galleries/pics/pics/</LINK><process>navtext</process><![CDATA[.gif'"></FONT>
<BR><FONT SIZE=2>           <img name="image_]]></FONT>
<BR><FONT SIZE=2>           <![CDATA["src="]]><LINK>/system/galleries/pics/pics/</LINK><process>navtext</process><![CDATA[.gif"></FONT>
<BR><FONT SIZE=2>        </a></FONT>
<BR><FONT SIZE=2>      </td></TR></FONT>
<BR><FONT SIZE=2>  ]]></FONT>
<BR><FONT SIZE=2></naventry></FONT>
</P>

<P><FONT SIZE=2><navcurrent></FONT>
<BR><FONT SIZE=2>  <![CDATA[</FONT>
<BR><FONT SIZE=2>    <TR></FONT>
<BR><FONT SIZE=2>      <td></FONT>
<BR><FONT SIZE=2>        <img</FONT>
<BR><FONT SIZE=2>           src="]]><LINK>/system/galleries/pics/pics/</LINK><process>navtext</process><![CDATA[_over.gif"></FONT>
<BR><FONT SIZE=2>      </td></TR></FONT>
<BR><FONT SIZE=2>  ]]></FONT>
<BR><FONT SIZE=2></navcurrent></FONT>
<BR><FONT SIZE=2><TEMPLATE></FONT>
<BR><FONT SIZE=2>  <![CDATA[</FONT>
<BR><FONT SIZE=2>    <TABLE border=0 width="100%" height="100%" ></FONT>
<BR><FONT SIZE=2>       ]]><method name="getNavCurrent"/><![CDATA[</FONT>
<BR><FONT SIZE=2>    </TABLE>]]></FONT>
</P>

<P><FONT SIZE=2></TEMPLATE></FONT>
<BR><FONT SIZE=2></XMLTEMPLATE></FONT>
</P>

<P><FONT SIZE=2>2.top_nav</FONT>
</P>

<P><FONT SIZE=2><?xml version="1.0" encoding="ISO-8859-1"?></FONT>
<BR><FONT SIZE=2><XMLTEMPLATE></FONT>
<BR><FONT SIZE=2><naventry></FONT>
<BR><FONT SIZE=2>  <![CDATA[</FONT>
<BR><FONT SIZE=2>      <td align=middle></FONT>
<BR><FONT SIZE=2>        <a </FONT>
<BR><FONT SIZE=2>           href="]]><process>navlink</process><![CDATA["</FONT>
<BR><FONT SIZE=2>           onmouseover="JavaScript:document.image_</FONT>
<BR><FONT SIZE=2>           ]]><process>count</process><![CDATA[.value=/opencms/opencms/system/galleries/pics/pics/]]><process>navtext</process></FONT></P>

<P><FONT SIZE=2>           <![CDATA[_over.gif"</FONT>
<BR><FONT SIZE=2>           onmouseout="JavaScript:document.image_]]></FONT>
<BR><FONT SIZE=2>           <![CDATA[.value=/opencms/opencms/system/galleries/pics/pics/]]><process>navtext</process><![CDATA[.gif"></FONT>
<BR><FONT SIZE=2>           <img name="image_]]><![CDATA[ "</FONT>
<BR><FONT SIZE=2>            src="/opencms/opencms/system/galleries/pics/pics/]]><process>navtext</process><![CDATA[.gif"></FONT>
<BR><FONT SIZE=2>        </a></FONT>
<BR><FONT SIZE=2>      </td></FONT>
<BR><FONT SIZE=2>  ]]></FONT>
<BR><FONT SIZE=2></naventry></FONT>
<BR><FONT SIZE=2><navcurrent></FONT>
<BR><FONT SIZE=2>  <![CDATA[</FONT>
<BR><FONT SIZE=2>      <td align=middle></FONT>
<BR><FONT SIZE=2>        <img</FONT>
<BR><FONT SIZE=2>           src="/opencms/opencms/system/galleries/pics/pics/]]><process>navtext</process><![CDATA[.gif"></FONT>
<BR><FONT SIZE=2>      </td></FONT>
<BR><FONT SIZE=2>  ]]></FONT>
<BR><FONT SIZE=2></navcurrent></FONT>
<BR><FONT SIZE=2><TEMPLATE></FONT>
<BR><FONT SIZE=2>  <![CDATA[</FONT>
<BR><FONT SIZE=2>    <TABLE border=0 width="100%" height="100%" align=center></FONT>
<BR><FONT SIZE=2>     <TR></FONT>
<BR><FONT SIZE=2>       ]]><method name="getNavRoot">2</method><![CDATA[</FONT>
<BR><FONT SIZE=2>     </TR></FONT>
<BR><FONT SIZE=2>     </TABLE>]]></FONT>
</P>

<P><FONT SIZE=2></TEMPLATE></FONT>
<BR><FONT SIZE=2></XMLTEMPLATE></FONT>
</P>
<BR>
<BR>
<BR>
<BR>

<P><FONT SIZE=2>-----Original Message-----</FONT>
<BR><FONT SIZE=2>From: David Seikel [<A HREF="mailto:david.seikel@icemedia.com.au">mailto:david.seikel@icemedia.com.au</A>]</FONT>
<BR><FONT SIZE=2>Sent: Friday, July 11, 2003 12:07 PM</FONT>
<BR><FONT SIZE=2>To: opencms-dev@opencms.org</FONT>
<BR><FONT SIZE=2>Subject: Re: [opencms-dev] How to use a navigation</FONT>
</P>
<BR>

<P><FONT SIZE=2>Time for another of my quickie howtos.  Who ever it was that was </FONT>
<BR><FONT SIZE=2>archiving howtos may want to keep this.</FONT>
</P>

<P><FONT SIZE=2>Nguyen La Yen Dung wrote:</FONT>
<BR><FONT SIZE=2>> But I don't know how to write these templates in XML language.</FONT>
<BR><FONT SIZE=2>>  </FONT>
<BR><FONT SIZE=2>> If you know howto or have any idea to help me solve the below problem, </FONT>
<BR><FONT SIZE=2>> please guide me.</FONT>
</P>

<P><FONT SIZE=2>Note, this applies to XML templates, it may be completely different for </FONT>
<BR><FONT SIZE=2>JSP.  Also note, these are generic instructions, they may not apply to </FONT>
<BR><FONT SIZE=2>your problem.  They may give some clues though.</FONT>
</P>
<BR>

<P><FONT SIZE=2>First you need to define a navigation element or two -</FONT>
</P>

<P><FONT SIZE=2><ELEMENTDEF name="nav"></FONT>
<BR>        <FONT SIZE=2><CLASS>com.opencms.defaults.CmsXmlNav</CLASS></FONT>
<BR>        <FONT SIZE=2><TEMPLATE>../elements/navigation</TEMPLATE></FONT>
<BR><FONT SIZE=2></ELEMENTDEF></FONT>
</P>

<P><FONT SIZE=2>Next, include <ELEMENT name="nav/> in your frametemplate as usual.</FONT>
</P>

<P><FONT SIZE=2>Then write elements/navigation, here is a skeleton to fill out -</FONT>
</P>

<P><FONT SIZE=2><XMLTEMPLATE></FONT>
<BR><FONT SIZE=2>     <naventry></FONT>
<BR><FONT SIZE=2>         <![CDATA[</FONT>
<BR><FONT SIZE=2>         ]]></FONT>
<BR><FONT SIZE=2>     </naventry></FONT>
</P>

<P><FONT SIZE=2>     <navcurrent></FONT>
<BR><FONT SIZE=2>         <![CDATA[</FONT>
<BR><FONT SIZE=2>         ]]></FONT>
<BR><FONT SIZE=2>     </navcurrent></FONT>
</P>

<P><FONT SIZE=2><TEMPLATE></FONT>
<BR><FONT SIZE=2><![CDATA[</FONT>
<BR><FONT SIZE=2>             ]]><method name="getNavRoot">2</method><![CDATA[</FONT>
<BR><FONT SIZE=2>]]></FONT>
<BR><FONT SIZE=2></TEMPLATE></FONT>
<BR><FONT SIZE=2></XMLTEMPLATE></FONT>
</P>

<P><FONT SIZE=2>(Insert HTML as needed in the above.)</FONT>
</P>

<P><FONT SIZE=2><naventry> is used for all navigation links except for the currently </FONT>
<BR><FONT SIZE=2>active page, which will use <navcurrent>.  The method getNavRoot is one </FONT>
<BR><FONT SIZE=2>of the many methods you can use to create navigation menus, which one </FONT>
<BR><FONT SIZE=2>you use depends on what you want to do exactly.  To create a second </FONT>
<BR><FONT SIZE=2>navigation menu, define an element called "nav2" that uses a different </FONT>
<BR><FONT SIZE=2>template file and also include it in your frametemplate.</FONT>
</P>

<P><FONT SIZE=2>Now for the problems.</FONT>
</P>

<P><FONT SIZE=2>OpenCMS's menu code acts differently if it is creating the menu for </FONT>
<BR><FONT SIZE=2>index.html, the jury is still out about wether to call this a bug or a </FONT>
<BR><FONT SIZE=2>feature. For this reason, we have to be carefull about this. It works </FONT>
<BR><FONT SIZE=2>fine for every file except for the index file, where I get different </FONT>
<BR><FONT SIZE=2>results depending on wether it is called index.html or index.jsp. Since </FONT>
<BR><FONT SIZE=2>I am not using JSP, it doesn't really matter what I call it. To get it </FONT>
<BR><FONT SIZE=2>to work as advertised, the index page has to be called index.html in the </FONT>
<BR><FONT SIZE=2>leaf nodes, and index.jsp everywhere else. For example with a directory </FONT>
<BR><FONT SIZE=2>structure like this -</FONT>
</P>

<P><FONT SIZE=2>     * project</FONT>
<BR><FONT SIZE=2>     *</FONT>
<BR><FONT SIZE=2>           o sub1</FONT>
<BR><FONT SIZE=2>           o sub2</FONT>
<BR><FONT SIZE=2>           o</FONT>
<BR><FONT SIZE=2>                 + sub2_1</FONT>
<BR><FONT SIZE=2>                 + sub2_2</FONT>
</P>

<P><FONT SIZE=2>I need to have these index files for it all to work -</FONT>
</P>

<P><FONT SIZE=2>     * project/index.jsp</FONT>
<BR><FONT SIZE=2>     * project/sub1/index.html</FONT>
<BR><FONT SIZE=2>     * project/sub2/index.jsp</FONT>
<BR><FONT SIZE=2>     * project/sub2/sub2_1/index.html</FONT>
<BR><FONT SIZE=2>     * project/sub2/sub2_2/index.html</FONT>
</P>

<P><FONT SIZE=2>They all use the same template for the navigation element. While I am </FONT>
<BR><FONT SIZE=2>developing this, it is fine as I can keep track of this and change the </FONT>
<BR><FONT SIZE=2>names as needed (adding a new folder inside sub2_1 would require a name </FONT>
<BR><FONT SIZE=2>change for project/sub2/sub2_1/index.html). But we hand this over to the </FONT>
<BR><FONT SIZE=2>client soon, and they may want to add sub folders, and when they do the </FONT>
<BR><FONT SIZE=2>navigation will break.</FONT>
</P>
<BR>

<P><FONT SIZE=2>Only the currently active page uses <navcurrent> ALL others use </FONT>
<BR><FONT SIZE=2><naventry>, including the current directory.  I got around this by </FONT>
<BR><FONT SIZE=2>changing the com.opencms.defaults.CmsXmlNav java class to do the right </FONT>
<BR><FONT SIZE=2>thing.  Since XML templates are deprecated, I doubt if the authors will </FONT>
<BR><FONT SIZE=2>include this.  I had previously sent in a patch for some other problem </FONT>
<BR><FONT SIZE=2>but received no feedback.  What exactly is the proceedure for submitting </FONT>
<BR><FONT SIZE=2>patches?</FONT>
</P>

<P><FONT SIZE=2>_______________________________________________</FONT>
<BR><FONT SIZE=2>This mail is send to you from the opencms-dev mailing list</FONT>
<BR><FONT SIZE=2>To change your list options, or to unsubscribe from the list, please visit</FONT>
<BR><FONT SIZE=2><A HREF="http://mail.opencms.org/mailman/listinfo/opencms-dev" TARGET="_blank">http://mail.opencms.org/mailman/listinfo/opencms-dev</A></FONT>
</P>

</BODY>
</HTML>