Ich verwende die gute alte 3 Ebenen / Liste mit li-Tags Navigation.
Nun möchte ich sie um eine Kleinigkeit anpassen aber bekomme es nicht hin.
Es geht nur darum das die angezeigte Seite in der Navigation ein ">" dem aktiven Menüpunkt vorangestellt bekommt. Ich habe es quick'n dirty einfach erst mal so in die Navi reingeschrieben.
if ($lev1->isOnline(true)):
if ($lev1->getId() == $path1) {
$nav .= '<li id="active"><a id="current" href="'.$lev1->getUrl().'"> > '.$lev1->getName().'</a>';
}
Das Problem ist jetzt nur das eine Kategorie immer noch mit der spitzen Klammer ausgezeichnet wird wenn ich eigentlich schon in einer Unterkategorie bin. Dadurch werden beide Navpunkte hervorgehoben was ich nicht will. Ich möchte wirklich nur die angezeigte Seite in der Navi auszeichnen.
So siehts aus:

Aber eigentlich soll eben nur "Kat 1.1" einen Haken haben.
Hier der Code:
- Code: Alles auswählen
<?php
// EXPLODE PATH
$PATH = explode("|",$this->getValue("path").$this->getValue("article_id")."|");
// GET CURRENTS
$path1 = $PATH[1];
$path2 = $PATH[2];
$path3 = $PATH[3];
/* START 1st level categories */
$nav .= '<ul class="nav1st">';
foreach (OOCategory::getRootCategories() as $lev1) {
if ($lev1->isOnline(true)):
if ($lev1->getId() == $path1) {
$nav .= '<li class="active"><a class="current" href="'.$lev1->getUrl().'"> > '.$lev1->getName().'</a>';
}
// 2nd level - no active link
else {
$nav .= '<li><a href="'.$lev1->getUrl().'">'.$lev1->getName().'</a>';
}
// 1st level had categories? -> go on
$lev1Size = sizeof($lev1->getChildren());
if ($lev1->getId() == $path1) {
if ($lev1Size != "0") {
$nav .= '<ul class="nav2nd">';
// START 2nd level categories
foreach ($lev1->getChildren() as $lev2):
if ($lev2->isOnline(true)) {
// 2nd level - active link
if ($lev2->getId() == $path2) {
$nav .= '<li class="active"><a class="current" href="'.$lev2->getUrl().'"> > '.$lev2->getName().'</a>';
}
// 2nd level - no active link
else {
$nav .= '<li><a href="'.$lev2->getUrl().'">'.$lev2->getName().'</a>';
}
// 2nd level had categories? -> go on
$lev2Size = sizeof($lev2->getChildren());
if ($lev2->getId() == $path2) {
if ($lev2Size != "0") {
$nav .= '<ul class="nav3rd">';
// START 3rd level categories
foreach ($lev2->getChildren() as $lev3):
if ($lev3->isOnline(true)) {
// 3rd level - active link
if ($lev3->getId() == $path3) {
$nav .= '<li class="active"><a class="current" href="'.$lev3->getUrl().'">'.$lev3->getName().'</a></li>';
}
// 3rd level - no active link
else {
$nav .= '<li><a href="'.$lev3->getUrl().'">'.$lev3->getName().'</a></li>';
}
}
endforeach;
// END 3rd level categories
$nav .= '</ul>';
} // END by if ($lev2Size != "0"):
}
$nav .= '</li>';
}
endforeach;
// END 2nd level categories
$nav .= '</ul>';
} // END by if ($lev1Size != "0"):
}
$nav .= '</li>';
endif; // END by if ($lev1->isOnline())
}
$nav .= '</ul>';
// END 1st level categories
print $nav;
?>
Stehe auf dem Schlauch. Kann jemand helfen?

