芝麻web文件管理V1.00
编辑当前文件:/home/p/r/i/prismawe/clients/canaldegap.fr_old/plugins/function.breadcrumbs.php
GetHierarchyManager(); $thispage = $gCms->variables['content_id']; $trail = ""; #Check if user has specified a delimiter, otherwise use default if (isset($params['delimiter'])) { $delimiter = $params['delimiter']; } else { $delimiter = ">>"; } #Check if user has requested an initial delimiter if (isset($params['initial'])) { if ($params['initial'] == "1") { $trail .= $delimiter . " "; } } $root='##ROOT_NODE##'; #Check if user has requested the list to start with a specific page if (isset($params['root'])) { $root = $params['root']; } $root_url=''; #Check if user has requested to overrided the root URL if (isset($params['root_url'])) { $root_url = $params['root_url']; } $endNode = &$manager->sureGetNodeById($thispage); # build path if (isset($endNode)) { $content =& $endNode->getContent(); $path=array($endNode); $currentNode = &$endNode->getParentNode(); while (isset($currentNode) && $currentNode->getLevel() >= 0) { $content = &$currentNode->getContent(); if (isset($content)) { //Add current node to the path and then check to see if //current node is the set root //as long as it's not hidden if( $content->ShowInMenu() && $content->Active() ) { $path[] = $currentNode; } if (strtolower($content->Alias())!=strtolower($root)) { //Get the parent node and loop $currentNode = &$currentNode->getParentNode(); } else { //No need to get the parent node -- we're the set root already break; } } else { //There are more serious problems here, dump out while we can break; } } if ($root!='##ROOT_NODE##') { // check if the last added is root. if not, add id $currentNode = &$manager->sureGetNodeByAlias($root); if (isset($currentNode)) { $content = &$currentNode->getContent(); if (isset($content) && (strtolower($content->Alias()) == strtolower($root))) { $node = &$manager->sureGetNodeByAlias($root); if (isset($node)) { $content = &$node->getContent(); if( $content && $content->Id() != $thispage) $path[] = $node; # do not add if this is the current page } } } } $classid=isset($params['classid'])?(' class="' . $params['classid'] . '"'):''; $currentclassid=isset($params['currentclassid'])?(' class="' . $params['currentclassid'] . '"'):''; // now create the trail (by iterating through the path we built, backwards) for ($i=count($path)-1;$i>=0;$i--) { $node = &$path[$i]; if (isset($node)) { $onecontent = &$node->getContent(); if ($onecontent->Id() != $thispage && $onecontent->Type() != 'seperator') { if (($onecontent->getURL() != "") && ($onecontent->Type() != 'sectionheader')) { if ($onecontent->DefaultContent() && false == empty($root_url)) { $trail .= '
getURL() . '"'; } $trail .= $classid; $trail .= '>'; $trail .= cms_htmlentities($onecontent->MenuText()!=''?$onecontent->MenuText():$onecontent->Name()); $trail .= '
'; } else { $trail .= "
"; $trail .= cms_htmlentities($onecontent->MenuText()!=''?$onecontent->MenuText():$onecontent->Name()); $trail .= '
'; $trail .= ' '; } $trail .= $delimiter . ' '; } else { if (isset($params['currentclassid'])) { $trail .= "
"; } else { $trail .= '
'; } $trail .= cms_htmlentities($onecontent->MenuText()!=''?$onecontent->MenuText():$onecontent->Name()); if (isset($params['currentclassid'])) { $trail .= '
'; } else { $trail .= '
'; } } } } } if (isset($params['starttext']) && $params['starttext'] != '') { $trail = $params['starttext'] . ': ' . $trail; } return $trail; } function smarty_cms_help_function_breadcrumbs() { echo lang('help_function_breadcrumbs'); } function smarty_cms_about_function_breadcrumbs() { echo lang('about_function_breadcrumbs'); } # vim:ts=4 sw=4 noet ?>