0
我想在Concrete5中的下拉菜單中結合兩件事情,並且似乎無法使其工作並想知道是否有人可以幫助我。將nav-selected添加到混凝土的下拉菜單中5
我有此代碼爲菜單
<?
defined('C5_EXECUTE') or die(_("Access Denied."));
$aBlocks = $controller->generateNav();
global $c;
if ($c->isEditMode()) {
echo("<div class=\"menu\" style=\"position:inherit!important;\"><ul>");
}
else {
echo("<div class=\"menu\"><ul>");
}
$nh = Loader::helper('navigation');
foreach($aBlocks as $ni) {
$_c = $ni->getCollectionObject();
if (!$_c->getCollectionAttributeValue('exclude_nav')) {
$thisLevel = $ni->getLevel();
if ($thisLevel > $lastLevel) {
echo("<!--[if IE 7]><!--></a><!--<![endif]-->\n<!--[if lte IE 6]><table><tr><td><![endif]-->\n<ul>\n");
} else if ($thisLevel < $lastLevel) {
for ($j = $thisLevel; $j < $lastLevel; $j++) {
echo("</a></li>\n</ul>\n<!--[if lte IE 6]></td></tr></table></a><![endif]--></li>\n");
}
}
if ($thisLevel == $lastLevel && $i >0) {
echo "</a></li>\n";
}
$pageLink = false;
if ($_c->getCollectionAttributeValue('replace_link_with_first_in_nav')) {
$subPage = $_c->getFirstChild();
if ($subPage instanceof Page) {
$pageLink = $nh->getLinkToCollection($subPage);
}
}
if (!$pageLink) {
$pageLink = $ni->getURL();
}
if ($_c->getCollectionAttributeValue('placeholder')) {
$pageLink="javascript:void(0)";
}
echo '<li><a href="'.$pageLink.'">' . $ni->getName();
$lastLevel = $thisLevel;
$i++;
}
}
$thisLevel = 0;
for ($i = $thisLevel; $i <= $lastLevel; $i++) {
echo("</a></li></ul>");
}
echo '</div>';
?>
,但還沒有任何運氣造型的導航選擇,所以我想線下加開始的foreach:
$classes = array();
if ($ni->isCurrent) {
//class for the page currently being viewed
$classes[] = 'nav-selected';
}
if ($ni->inPath) {
//class for parent items of the page currently being viewed
$classes[] = 'nav-path-selected';
}
從另一個菜單,導航選擇可以風格化,但沒有什麼區別。有沒有人看到我做錯了什麼,或者有人能給我一個提示如何使這項工作?我真的很感謝幫助。謝謝!
感謝您的答案喬丹!我確實嘗試過這個模板,並且無法按照我想要的方式工作,這就是爲什麼我試圖拼湊兩件事,但感謝嘗試。 – user691066 2013-02-28 16:57:34
噢,我在5.6.0.2中使用該模板時遇到了一個大錯誤。不知道這是否是我的問題。我只是將該文件原樣複製並加載到root/autonav/templates中。然後我在頁面上看到垃圾。 – user691066 2013-02-28 17:27:01