## Some constants #set ( $defaultPage = "index" ) #set ( $separator = "»" ) ## Gather items for breadcrumb #set ( $trail = $_XPathTool.selectNodes($contentRoot, "//system-folder") ) ## Reference the current page #set ( $page = $_XPathTool.selectSingleNode($contentRoot, "//system-page[@current]") ) ## Define a loop #foreach ( $crumb in $trail ) ## Value of the link node #set ( $link = "#outputFolderLink($crumb)" ) ## Check for 'current' attribute #if ( $crumb.getAttribute("current") ) ## Test page name #if ( $page.getChild("name").value == "${defaultPage}" ) #set ($folderTitle = "#outputTitle($crumb)") ${folderTitle.trim()} #else #set ($pageTitle = "#outputTitle($page)") ${link.trim()} ${pageTitle.trim()} #end #else ${link.trim()} #end #end #macro (outputTitle $crumb) ## Reference to the title node ## Reference to the display-name node #set ( $folderTitle = $_XPathTool.selectSingleNode($crumb, "title") ) #set ( $folderDisplayName = $_XPathTool.selectSingleNode($crumb, "dynamic-metadata[name='breadcrumb']/value") ) #if ( $_XPathTool.selectSingleNode($crumb, "dynamic-metadata[name='breadcrumb']/value") && $folderDisplayName.value != "" ) #set ( $theFolderTitle = $folderDisplayName ) #elseif ( $_XPathTool.selectSingleNode($crumb, "title") && $folderTitle.value != "" ) #set ( $theFolderTitle = $folderTitle ) #else #set ( $theFolderTitle = $crumb.getChild("name") ) #end $_EscapeTool.xml($theFolderTitle.value) #end #macro (outputFolderLink $folder) #set ($title = "#outputTitle($folder)") #set ($link = $folder.getChild("link").value) #set ($landingPage = $_XPathTool.selectSingleNode($folder, "system-page[name='${defaultPage}']")) #if ($landingPage) ${title.trim()} ${separator} #else ${title.trim()} ${separator} #end #end