%-- #RevizeProperties USE REVIZE MENU (DOCUMENT PROPERTIES) TO EDIT DATA BELOW:
status=new
options=
server=localhost:8080
projectName=rendlake
label=index
location=menus/menus_leftnav_section_list_include.jsp
version=
docType=include
subType=include
moduleName=
fieldName=
channels=|
description=
--%><%@ include file="/plugins/setup/setup_include_header.jsp" %><%--
__________________________________________________________________________________________
Used to implement leftnav (or rightnav) menu
Parameters:
filter (required) defines filter used on rz:list
if contains "::", template filter is before and Menu Manager is after
minLevel (required) starting level for links used on all pages in section
numberoflevels (optional) number of link levels (default = 2)
outer_ul_id (optional) used as id on outer
tag
outer_ul_class (optional) String used as class on outer tag (default none)
inner_ul_used (optional) true (default) add inner level ul(s) ; false no inner ul(s)
debug (optional) boolean true for debug print.out
-------
Updates:
-------
10-09-2012 Released 08-30-2012 version containing latest embedded link changes
(should have been released 08-30-2012).
__________________________________________________________________________________________
--%><% String VERSION = "v08-30-2012"; %>
<%--
defines more varibles than needed but it works (and backward compatible)
--%><%@ include file="/plugins/menus/global_menu_variables.jsp" %><%
//----- input parameters
filter = StringUtils.getParameter(request,"filter");
int offset = filter.indexOf("::");
if (offset != -1)
filter = filter.substring(0,offset);
minLevel = StringUtils.toInt(StringUtils.getParameter(request,"minlevel"));
String numberoflevels = StringUtils.getParameter(request,"numberoflevels");
if (numberoflevels.equals("")) numberoflevels = "2";
String outer_ul_id = StringUtils.getParameter(request,"outer_ul_id");
if (outer_ul_id.length() > 0) outer_ul_id = " id=\"" + outer_ul_id + "\"";
String outer_ul_class = StringUtils.getParameter(request,"outer_ul_class");
if (outer_ul_class.length() > 0) outer_ul_class += " ";
boolean inner_ul_used = !StringUtils.getParameter(request,"inner_ul_used").equals("false");
boolean debug = StringUtils.getParameter(request,"debug").equals("true");
if (debug) out.println("entering plugin (debug enabled): menus_section_list.include (" + VERSION + ")");
if (debug) out.println("minLevel=" + minLevel + " numberoflevels=" + numberoflevels);
if (debug) out.println("filter=" + filter);
//----- local variables
String tabs = "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
String ulTabs = "";
HashMap first = new HashMap();
menuLevel = minLevel;
out.println("");
%>"
filter="<%=filter%>"><%
if (debug) out.println("rz.listlength (before sort): " + rz.listlength);
//----- sort menu items
String menuopts = "pageid=" + rz.pageid;
if (filter.indexOf("linkrte") != -1) //if linkrte in specified filter, select rte links
menuopts += ",showrte";
rz.menusorter(menuopts);
//rz.menusorter("pageid="+rz.pageid);
if (debug) out.println("rz.listlength (after sort): " + rz.listlength);
%><%
//----- Loop through all menu items for this section (all levels)
while (rz.listnext() && rz.listindex >= 0)
{
//----- Look ahead to next item level (requires groupbyfield="linklevel")
linkLevel = StringUtils.toInt(rz.fetch("links","linklevel"));
//********** Reset minlevel to value of first link **********\\
//10-10-2012 DCO: ignore minLevel passed as input parameter
if (rz.listindex == 0)
{
minLevel = linkLevel;
menuLevel = minLevel;
}
//***********************************************************//
linkID = rz.fetch("links","linkid");
if (rz.listindex < rz.listlimit)
nextLevel = StringUtils.toInt(rz.groupnextvalue);
else
nextLevel = minLevel; //move all the way up
//----- Get primary link properties (rz.content, rz.link, rz.target).
// Also executes link code to create dependent template page.
String linkstyle = rz.fetch("links","linkstyle");
rz.linkmanager("","noscript"); //same as
//----- Adjust rz.link
if (rz.linktype.equals("none"))
rz.link = "#";
// supresses javascript alert passed via rz.link
if (rz.link.toLowerCase().indexOf("javascript") != -1)
rz.link = "#";
// remove leading ../ if it existing (needed when template in sub-folder)
while(rz.link.indexOf("../") == 0)
rz.link = rz.link.substring(3);
linkUrl = rz.link;
linkContent = rz.content;
linkTarget = rz.target;
if(linkTarget.equals("_new"))
{
linkTarget = "_blank";
}
// determine styles
String levelClass = "level"+(linkLevel-minLevel);
String childrenClass = "";
String firstClass = "";
if (linkstyle.indexOf("Selected") != -1 && first.get(linkLevel+"") == null)
{
firstClass = " first";
first.put(linkLevel+"",rz.pagerecordid);
}
levelClass += " " + linkstyle;
/*
if (linkstyle.indexOf("SelectedParent") != -1)
levelClass += " selectedParent";
if (linkstyle.indexOf("SelectedItem") != -1)
levelClass += " selected";
*/
if (linkUrl.equals("#"))
levelClass += " menuNone";
// moving down a level (should only be down one level)
while (linkLevel > menuLevel)
{
menuLevel++;
ulTabs = StringUtils.sub(tabs,0,(menuLevel-minLevel)*2);
if (inner_ul_used)
out.println( "\n" + ulTabs + ""); // terminate sub-list
first.remove(menuLevel+"");
menuLevel--;
ulTabs = StringUtils.sub(tabs,0,(menuLevel-minLevel)*2);
if (inner_ul_used)
out.println(ulTabs+"\t"); // terminate prior list item
}
} //end list (while loop)
%><%
%><%
%>