$
var args = context.param(0, {});
var maxDepth = args["maxDepth"] || 0;
var ulClass = args["ulClass"] || "";
var ulID = args["ulID"] || "";
var submenuWrapper = args["submenuWrapper"] || ["",""];
var activeClass = args["activeClass"] || "active";
var openClass = args["openClass"] || "";
var submeuUlClass = args["submeuUlClass"] || ""; // "dropdown-menu"
var submenuLiClass = args["submenuLiClass"] || ""; // "dropdown"
if ( ulID !== "" ){
ulID = ' id="' + ulID + '"';
}
var ulAttribs = "";
if ( ulClass ){
ulAttribs = ' class = "' + ulClass + '"';
}
$>
<$= ulID $>>
<$
var pages = page.projectFolder.pages;
for ( var i = 0; i < pages.count; ++i ) {
var p = pages.item(i);
var cssClass = "";
var activeLinkClass = "";
if ( p.visible && p.active && p.level == 1) {
if ( hasVisibleChildPages(p.id) ) {
cssClass += "haschilds ";
}
cssClass += submenuLiClass;
if ( p.id === page.id ){
cssClass += " " + activeClass;
}
else if ( hasActiveChildPage(p.id) ){
cssClass += " " + activeClass + ' ' + openClass;
}
if ( p.id == page.id ){
activeLinkClass = 'class="' + activeClass + '" ';
}
cssClass = cssClass.replace(/^\s+|\s+$/gm,''); // like trim()
var liAttribs = "";
if ( cssClass ){
liAttribs = ' class="' + cssClass + '"';
}
$>
- >
<$= system.partial("zppagelink-expanded.html", p.id) $>><$= p.name.replace(/& /g,'& ') $>
<$= system.partial("submenu.html", { "pageId":p.id, "maxDepth":maxDepth, "ulClass":submeuUlClass, "liClass":submenuLiClass, "activeClass":activeClass, "wrapper":submenuWrapper, "showDescription":false, "openClass":openClass} ) $>
<$
}
}
$>
<$
function hasVisibleChildPages(pageId) {
var p = project.getPage(pageId);
if ( !isNull(p) ) {
var cps = p.pages;
for ( var i = 0; i < cps.count; ++i ) {
var cp = cps.item(i);
if ( cp.visible && cp.active ){
return true;
}
}
}
return false;
}
function hasActiveChildPage(pageId) {
var p = project.getPage(pageId);
var childPages = p.pages;
for ( var i = 0; i < childPages.count; ++i ) {
var childPage = childPages.item(i);
if ( childPage.id === page.id || hasActiveChildPage(childPage.id) ){
return true;
}
}
return false;
}
$>