ich hoffe, diese Frage wurde nicht schon tausendmal gestellt.
Ich habe folgende Navigation (u.a.), die die zweite und dritte Ebene darstellt und die derzeit aktive Seite mit einem "aktiven Zustand".
Soweit alles super.
Nun lege ich aber noch Seiten in der zweiten oder dritten Ebene an, nicht in einen Ordner kommen, also keine Startartikel sind. Sie sollen nicht im Menü erscheinen, was auch der Fall ist. Auf diese Seiten verlinke ich manuell.
Mein Problem: Die Menüpunkt der jeweils dazugehörigen Startartikel-Seite soll dann auch aktiv erscheinen, damit man noch weiß, wo man ist. Wie bekommt man dieses Detail auch noch hin?
Vielen Dank,
Peter.
Menü:
- Code: Alles auswählen
<?php
$artId = $this->getValue('article_id');
$path = explode( '|', $this->getValue("path").$this->getValue("article_id"));
$path1 = $path[1];
$path2 = $path[2];
$path3 = $path[3];
foreach (OOCategory::getRootCategories() as $lev1):
if($lev1->isOnline()):
if ($lev1->getId() == $path1) :
$lev1Size = sizeof($lev1->getChildren());
if($lev1Size != "0"):
echo ' <ul>
';
foreach ($lev1->getChildren() as $lev2):
if ($lev2->isOnline()):
if ($lev2->getId() == $artId) {
echo '<li><a href="'.$lev2->getUrl().'" class="active">'.$lev2->getName().'</a></li>';
} else {
echo '<li><a href="'.$lev2->getUrl().'">'.$lev2->getName().'</a></li>';
}
endif;
// ANFANG EBENE 3
$lev2Size = sizeof($lev2->getChildren());
if($lev2Size != "0" && in_array($lev2->getId(), $path)):
echo '<ul>';
foreach ($lev2->getChildren() as $lev3):
if ($lev3->isOnline()):
$class3 = $lev3->getId() == $artId ? ' class="active"' : '';
echo '<li><a href="'.$lev3->getUrl().'"'.$class3.'>'.$lev3->getName().' »</a></li>'; endif;
endforeach;
echo '</ul></li>';
endif;
// ENDE EBENE 3
endforeach;
echo '<li class="end"> </li>';
echo '
<ul>';
endif;
endif;
endif;
endforeach;
?>

