Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

There is a "navigation.jar" file which must live in the /WEB-INF/lib directory of the webapp.  It defines a JSP tag library which can be used to get navigation/breadcrumb/sitetree information.  This library causes the webapp to crawl its structure constantly in the background (on in a low priority thread).  The webapp periodically updates a global "SiteTree" object representing all the navigation information about the site.  

Note
titleNote

 In the virtualization server environment with many webapps, this can be slow.  That means that for people using the Preview button , you may have to wait some time before any changes to the global SiteTree are picked up.  This does not mean that people they have to wait to see something; they just that they see an older version of the information.  If they refresh after enough time has gone by, they will see the newest information.  

 On a production system, which is running (probably) just the one webapp, this will be fast.  I have tested this system on a Tomcat instance running on a local machine, crawling a site with 3,000 files in it.  It took approximately one half of a second between updates.  Again, no user has to wait an extra half of a second for their browser to show a page; the page will be rendered at the normal time, but with information which may be up to a half of a second old.

...

The web application automatically generates navigation information for your web project.  If you do not tell it to do something differently, it will generate default titles for the sections and pages in your site.  By default, every folder (except /META-INF and /WEB-INF) in the site will be a Section whose title is the same as the name of the folder.  Also, every file in the site with an "html-like" extension : (one of "jsp", "jspf", "jspx", "htm", "html", "xht", "xhtm", "xhtml", "sht", "shtm", or "shtml") will be a Page whose title is the same as the name of the file without the extension.  In some cases this default behavior will be what you want.  In other cases, you will want to alter the default behavior by controlling the navigation information yourself.:

You may control the navigation information on a per-folder level in your Alfresco Web Project via the web form named "Navigation Information".  This web form manages a file in the current folder called "navigation.xml".  If you have just created a new folder and you want to control its navigation information, you must choose Create > Create Web Content.: Image Added
 
Then you should create content via the "Navigation Information" web form as shown below:

...

If you have already created the navigation.xml file for a folder and you want to alter it, you can do so by clicking the edit (pencil) icon on the navigation.xml file.:

Image Added
 

Warning
titleNote

If, instead, you do perform the "create web content" steps above instead, you will end up clobbering the existing navigation.xml file.  It is more likely you'd rather edit the file than write over it, but it's up to you.

...

No Format
<nav:setSiteTreeVar var="theSiteTree" />
<h3><ul><li>
  <nav:treeWalk root="${theSiteTree.homeSection}" var="page">
     <a href="${page.url}"                        ><c:out value="${page.title}" /></a>:<br/>
       <ul><c:forEach items="${page.subpages}" var="subpage">
         <li><nav:subtreeWalk subroot="${subpage}" /></li>
       </c:forEach></ul>
  </nav:treeWalk>
</li></ul></h3>

...

No Format
<nav:setBreadcrumbVar var="breadcrumb" />
<c:forEach var="page" items="${breadcrumb}" varStatus="status">
<c:if test="${not status.first}">&gt;</c:if><a href="${page.url}"                     ><c:out value="${page.title}" /></a>
</c:forEach>

...

No Format
<nav:setPageVar var="page"/>
<c:forEach var="subpage" items="${page.subpages}" >
&bull; <a href="${subpage.url}"                     ><c:out value="${subpage.title}" /></a><br/>
</c:forEach>

...