1: #set ($Boolean = true) 2: #set($level = 1) 3: #set($levelClass = "") 4: #set($ulClass = "navbar-nav") 5: #set($liClass = "nav-item parent") 6: #set($aClass = "nav-link") 7: #set($disabled = "") 8: #set ($mega = $!request.getAttribute("component-navbar-split-mega")) 9: #set ($flex = $!request.getAttribute("component-navbar-split-flex")) 10: #set ($column = $!request.getAttribute("component-navbar-split-column")) 11: #set ($icons = $!request.getAttribute("component-navbar-split-icons")) 12: #set ($scheme = $!request.getAttribute("component-navbar-split-scheme")) 13: #set ($bg = $!request.getAttribute("component-navbar-split-bg")) 14: #set ($logo = $!request.getAttribute("component-navbar-split-logo")) 15: #set ($transparency = $!request.getAttribute("component-navbar-split-transparency")) 16: #set ($details = $!request.getAttribute("component-navbar-split-details")) 17: #set ($showTitle = $!request.getAttribute("component-navbar-split-show-title")) 18: #set ($brandUrl = $!request.getAttribute("component-navbar-split-brandurl")) 19: #set ($parentPage = $!request.getAttribute("component-navbar-split-page")) 20: 21: #if ($request.getParameter("level").length() > 0) 22: #set($level = $request.getParameter("level")) 23: #set($level = $tool.math.add($level, 1)) 24: #set($levelClass = "level-${level}") 25: #set($ulClass = "dropdown-menu") 26: #set($liClass = "nav-item child") 27: #set($aClass = "${aClass} dropdown-item") 28: #end 29: 30: #set($id = "") 31: #if ($request.getParameter("id").length() > 0) 32: #set($id = $request.getParameter("id")) 33: #end 34: #if ($request.getParameter("logo").length() > 0) 35: #set($logo = $request.getParameter("logo")) 36: #end 37: #set($ariaLabelledby = "") 38: #if ($request.getParameter("ariaLabelledby").length() > 0) 39: #set($ariaLabelledby = $request.getParameter("ariaLabelledby")) 40: #end 41: #if ($request.getParameter("flex").length() > 0) 42: #set($flex = $request.getParameter("flex")) 43: #set($flex = $flex.parseBoolean($flex)) 44: #end 45: #if ($request.getParameter("column").length() > 0) 46: #set($column = $request.getParameter("column")) 47: #set($column = $column.parseBoolean($column)) 48: #end 49: #if ($request.getParameter("mega").length() > 0) 50: #set($mega = $request.getParameter("mega")) 51: #set($mega = $mega.parseBoolean($mega)) 52: #end 53: #if ($request.getParameter("icons").length() > 0) 54: #set($icons = $request.getParameter("icons")) 55: #set($icons = $Boolean.parseBoolean($icons)) 56: #end 57: 58: #macro (thumbnail) 59: #if ($page.thumbnailURL.length() > 0) 60: <div class="split-navigation-thumbnail d-none d-lg-block d-lg-flex justify-content-lg-center align-items-lg-center"> 61: <picture> 62: <img class="img-fluid" src="$page.thumbnailURL" alt="$!page.title"> 63: </picture> 64: </div> 65: #end 66: #end 67: 68: #macro(navbarBrandSplit $class) 69: #if($details == true) 70: #if($page.title.length() > 0 && $showTitle || $page.thumbnailURL.length() > 0 || $logo.length() > 0) 71: <a class="navbar-brand d-flex justify-content-between align-items-center flex-column $class" href="${brandUrl}"> 72: #if ($page.thumbnailURL.length() > 0) 73: <picture class="#if($page.title.length() > 0 && $showTitle)me-2 #end"> 74: <img class="d-inline-block align-text-top" src="${page.thumbnailURL}" alt="$!page.title"> 75: </picture> 76: #elseif ($logo.length() > 0) 77: <picture class="#if($page.title.length() > 0 && $showTitle)me-2 #end"> 78: <img class="d-inline-block align-text-top" src="$logo" alt="$!website.profile.siteName"> 79: </picture> 80: #end 81: #if($page.title.length() > 0 && $showTitle) 82: <span class=navbar-title-text>$page.title</span> 83: #end 84: </a> 85: #end 86: #end 87: #end 88: 89: #macro (list $ul $li $a $lev $i) 90: 91: #if($level == 1) 92: #set ($topLevelClass = "top-level") 93: #else 94: #set ($topLevelClass = "") 95: #end 96: 97: #set ($splitIndex = $tool.math.ceil($tool.math.div($entries.size(), 2))) 98: <ul class="navbar-${scheme} bg-${bg} #if($transparency == true)bg-transparent#end ${ul} ${lev} ${topLevelClass}" #if($i.length() > 0)id="${i}" #end data-mega="${mega}" data-flex="${flex}" data-column="${column}" data-pageurl="$page.url" #if($ariaLabelledby.length() > 0)aria-labelledby="${ariaLabelledby}"#end> 99: #foreach ($entry in $entries) 100: #set ($dropdownId = "dropdownId-1") 101: #set($li = $li.replace(" dropdown","")) 102: #set($li = $li.replace(" has-megamenu","")) 103: #set($a = $a.replace(" dropdown-old-toggle","")) 104: 105: #if ($entry.toString().split("@").size() > 1) 106: #set ($dropdownId = $entry.toString().split("@").get(1)) 107: #set ($dropdownId = "dropdownId-${dropdownId}") 108: #end 109: #if ($entry.secondaryURL.length() > 1) 110: #set($li = "${li} dropdown") 111: #set($a = "${a} dropdown-old-toggle") 112: #else 113: #set($a = $a.replace(" dropdown-old-toggle","")) 114: #set($li = $li.replace(" dropdown","")) 115: #end 116: 117: #if ($mega || $entry.secondaryURL.contains("yammContent=true") || $entry.secondaryURL.contains("mega=true")) 118: #set($li = "${li} has-megamenu") 119: #else 120: #set($li = $li.replace(" has-megamenu","")) 121: #end 122: 123: #if ($request.getParameter("ariaLabel").length() > 0) 124: #set ($ariaLabel = "${request.getParameter('ariaLabel')}: ${entry.label}") 125: #else 126: #set ($ariaLabel = $entry.label) 127: #end 128: 129: #set ($isBrand = false) 130: #set ($brands = ["facebook", "twitter", "instagram", "youtube", "flickr", "twitch", "tiktok", "trophy"]) 131: #foreach ($brand in $brands) 132: #if ($entry.label.toLowerCase().contains($brand) && $flex == true) 133: #set ($isBrand = true) 134: #end 135: #end 136: 137: #if ($isBrand == true) 138: #set($li = $li.replace(" brand-icon","")) 139: #set($li = "${li} brand-icon") 140: #else 141: #set($li = $li.replace(" brand-icon","")) 142: #end 143: 144: #set ($isIcon = false) 145: #if($icons == true) 146: #set ($iconList = ["schedule", "roster", "stats", "calendar", "news"]) 147: #foreach ($icon in $iconList) 148: #if ($entry.label.toLowerCase().contains($icon) && $flex == true) 149: #set ($isIcon = true) 150: #end 151: #end 152: #end 153: 154: #if ($isIcon == true) 155: #set($li = $li.replace(" secondary-icon","")) 156: #set($li = "${li} secondary-icon") 157: #else 158: #set($li = $li.replace(" secondary-icon","")) 159: #end 160: 161: 162: 163: <li class="${li}#if($mega == true) has-megamenu #end"> 164: #if($entry.label.contains("hr")) 165: <hr class="dropdown-divider"> 166: #else 167: #if ($entry.secondaryURL.length() == 0) 168: <a class="${a} ${disabled} #if($entry.targetURL.length() < 2 && $isBrand == true) disabled #end" href="${entry.targetURL}" #if ($website.isExternalLink($entry.targetURL)) target="_blank" #end aria-label="${ariaLabel}"> 169: #if ($isBrand == true) 170: <span class="fa-brands fa-${entry.label.toLowerCase()}"></span> 171: <span class="social-brand-name ms-1 d-lg-none">$entry.label</span> 172: #elseif ($isIcon == true) 173: <span class="fak fa-${entry.label.toLowerCase()}"></span> 174: <span class="secondary-icon-name ms-1 d-lg-none">$entry.label</span> 175: #else 176: $entry.label 177: #end 178: </a> 179: #end 180: #if ($entry.secondaryURL.length() > 1) 181: <span class="${a}" aria-label="${ariaLabel}"> 182: #if ($isBrand == true) 183: <span class="fa-brands fa-${entry.label.toLowerCase()}"></span> 184: <span class="social-brand-name ms-1 d-lg-none">$entry.label</span> 185: #else 186: <span class="d-flex flex-dropdown align-items-stretch justify-content-between w-100"> 187: <a class="${a} p-0 #if($entry.targetURL.length() < 2 && $isBrand == true) disabled #end" href="$entry.targetURL" #if($website.isExternalLink($entry.targetURL)) target="_blank" #end aria-label="${ariaLabel}">$entry.label</a> 188: <span class="dropdown-toggle d-flex align-items-center justify-content-between " data-bs-target="#${dropdownId}" data-bs-toggle="collapse" role="button" aria-expanded="false"></span> 189: </span> 190: #end 191: </span> 192: #if ($entry.secondaryURL.contains("tmpl=")) 193: #set ($secondaryURL = ${entry.secondaryURL}) 194: #else 195: #set ($poweredby = ${entry.secondaryURL}) 196: #set ($extraparams = "") 197: #set ($tmpl = "component-navbar-split-submenu-template") 198: 199: #if ($entry.secondaryURL.contains("?")) 200: #set ($poweredby = $entry.secondaryURL.toString().split("\?").get(0)) 201: #set ($extraparams = $entry.secondaryURL.toString().split("\?").get(1)) 202: #end 203: #if ($mega || $entry.secondaryURL.contains("yammContent=true") || $entry.secondaryURL.contains("mega=true")) 204: #set ($tmpl = "component-navbar-split-submenu-template") 205: #end 206: #set ($secondaryURL = "${poweredby}?tmpl=${tmpl}&level=${level}&id=${dropdownId}&ariaLabel=${tool.esc.url($entry.label)}&${extraparams}") 207: #end 208: $website.includeAgain("${secondaryURL}") 209: #end 210: #end 211: </li> 212: #if ($level == 1 && $splitIndex == $velocityCount) 213: </ul> 214: #navbarBrandSplit("navbar-brand-centered d-none d-lg-flex flex-lg-column gap-2") 215: <ul class="navbar-${scheme} bg-${bg} #if($transparency == true)bg-transparent#end ${ul} ${lev} ${topLevelClass}" #if($i.length() > 0)id="${i}" #end data-mega="${mega}" data-flex="${flex}" data-column="${column}" data-pageurl="$page.url" #if($ariaLabelledby.length() > 0)aria-labelledby="${ariaLabelledby}"#end> 216: #end 217: #end 218: </ul> 219: #if($i.length() == 0) 220: ## show thumbnail only if menu group is not the parents. 221: #thumbnail 222: #end 223: $wiki 224: #end 225: 226: 227: #macro (megamenu $mmId) 228: <div class="dropdown-menu megamenu navbar-${scheme} bg-${bg} $ulClass $levelClass" #if($mmId.length() > 0)id="${mmId}"#end> 229: <div class="megamenu-inner w-100"> 230: #list("list-unstyled megamenu-list", "nav-item flex-fill", "nav-link", "", "") 231: </div> 232: #if ($website.ads.isAdvertisingEnabled('INDEX_PAGES')) 233: <!-- 728x90/300x250/320x50 --> 234: <div id="waldo-tag-navigation"></div> 235: #end 236: </div> 237: #end 238: 239: #macro (submenu $mmId) 240: <div class="dropdown-menu navbar-${scheme} bg-${bg} $ulClass $levelClass" #if($mmId.length() > 0)id="${mmId}"#end> 241: <div class="dropdown-menu-inner"> 242: #list("list-unstyled dropdown-menu-list", "nav-item", "nav-link", "", "") 243: </div> 244: </div> 245: #end 246: 247: #if($mega == true) 248: #megamenu($id) 249: #elseif ($request.getParameter("level").length() > 0) 250: #submenu($id) 251: #else 252: #list($ulClass, $liClass, $aClass, $levelClass, $id) 253: #end