Navigation: 3 Ebenen / Liste mit li-Tags
Thomas Blum [blumbeet - web.studio]
http://www.redaxo.de/168-Templatedetails.html?template_id=14
Guten Tag,
seit gestern versuche ich nun dieses Navi-Template anzupassen und die Startartikel zu verbergen wenn kein Artikel-Inhalt vorhanden ist.
Bisher konnte ich dieses Template erfolgreich meinen Bedürfnissen anpassen und erweitern. Habe es nun auch auf 4 Unterpunkte erweitert und es funktioniert wunderbar. (siehe Code).
Nun mein Problem:
----------------------
Ich möchte, wenn die Navigation aufklappt und der jeweilige angeklickte Menüpunkt (Startartikel) keinen Inhalt hat, im Conten-Bereich die aktuelle Ansicht erhalten bleibt.
Noch kürzer: Navigation klappt auf ohne den Startartikel aufzurufen.
Kann mir bitte jemand einen Hinweis geben wo ich ansetzen muss, ich bin am verzweifeln. Ist es überhaupt möglich mit diesem Navi-Template?
Über einen kleinen Hinweis würde ich mich sehr freuen.
Hier der aktuelle Code:
- Code: Alles auswählen
<?php
//Navigation mit 4 Ebenen
// 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>';
}
// 3rd level - no active link
else {
$nav .= '<li><a href="'.$lev3->getUrl().'">'.$lev3->getName().'</a>';
}
// ********** neu ************
//*****************************
// 3nd level had categories? -> go on
$lev3Size = sizeof($lev3->getChildren());
if ($lev3->getId() == $path3) {
if ($lev3Size != "0") {
$nav .= '<ul class="nav4th">';
// START 4th level categories
foreach ($lev3->getChildren() as $lev4):
if ($lev4->isOnline(true)) {
// 4th level - active link
if ($lev4->getId() == $path4) {
$nav .= '<li class="active"><a class="current" href="'.$lev4->getUrl().'">'.$lev4->getName().'</a></li>';
}
// 4th level - no active link
else {
$nav .= '<li><a href="'.$lev4->getUrl().'">'.$lev4->getName().'</a></li>';
}
}
endforeach;
// END 4th level categories
$nav .= '</ul>';
} // END by if ($lev3Size != "0"):
} // END by if ($lev3->getId() == $path3)
// ********** neu ************
// ****************************
$nav .= '</li>'; /*ergänzt*/
}
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;
?>
Vielen Dank!!!

