Wie verwendet man Templates oder erstellt Navigationen und passt diese an.
von alexschuengel » 23. Jan 2009, 12:33
tach zusammen.
habe zur zeit die navigation aus der redaxo 4 demo im einsatz.
jetzt würde ich in der vertikalen navigation gerne auch noch die dritte ebene als liste ausgeben lassen.
kann mir da jemand weiterhelfen? ist ein bisschen (zu) viel php für mich.
danke schonmal
-

alexschuengel
-
- Beiträge: 150
- Registriert: 18. Mär 2008, 17:43
-
von heppi » 23. Jan 2009, 13:17
hallo,
einfach weitere foreach schleife einbauen
- Code: Alles auswählen
foreach ($lev2->getChildren() as $lev3):
if ($lev3->isOnline()):
if ($lev3->getId() == $path3) {
$navLeftCol .= '<li class="active"><a href="'.$lev3->getUrl().'">'.$lev3->getName().'</a></li>';
$sitePath .= ' ›› <a href="'.$lev3->getUrl().'">'.$lev3->getName().'</a>';
$titlePath .= ' >> '.$lev3->getName();
} else {
$navLeftCol .= '<li><a href="'.$lev3->getUrl().'">'.$lev3->getName().'</a></li>';
}
endif;
endforeach;
-
heppi
-
- Beiträge: 30
- Registriert: 20. Jan 2009, 21:19
von alexschuengel » 23. Jan 2009, 13:18
danke. an welcher stelle im template muss ich das reinkopieren?
-

alexschuengel
-
- Beiträge: 150
- Registriert: 18. Mär 2008, 17:43
-
von Niki » 9. Apr 2009, 08:58
Die dritte Ebene wird immer angezeigt. Was könnte falsch sein?
- Code: Alles auswählen
<?php
// EXPLODE PATH
$PATH = explode("|",$this->getValue("path").$this->getValue("article_id")."|");
// GET CURRENTS
$path1 = (isset ($PATH[1])) ? $PATH[1] : '';
$path2 = (isset ($PATH[2])) ? $PATH[2] : '';
$path3 = (isset ($PATH[3])) ? $PATH[3] : '';
$sitePath = '';
$titlePath = '';
$navLeftCol = '';
/* START 1st level categories */
$navLeftCol .= '<div id="navheight_vert">';
$navLeftCol .= '<ul class="nav1st">';
foreach (OOCategory::getRootCategories() as $lev1) {
if ($lev1->isOnline()):
if ($lev1->getId() == $path1) {
$navLeftCol .= '<li><a class="current" href="'.$lev1->getUrl().'">'.$lev1->getName().'</a></li>';
if ($lev1->getId() != "1") {
$sitePath .= ' ›› <a href="'.$lev1->getUrl().'">'.$lev1->getName().'</a></li>';
}
$titlePath .= ' >> '.$lev1->getName();
}
// 1st level - no active link
else {
$navLeftCol .= '<li><a href="'.$lev1->getUrl().'">'.$lev1->getName().'</a></li>';
}
// 1st level had categories? -> go on
$lev1Size = sizeof($lev1->getChildren());
if ($lev1->getId() == $path1) {
if ($lev1Size != "0"):
$navLeftCol .= '<ul class="nav2nd">';
// START 2nd level categories
foreach ($lev1->getChildren() as $lev2):
if ($lev2->isOnline()):
// 2nd level - active link
if ($lev2->getId() == $path2) {
$navLeftCol .= '<li class="active"><a href="'.$lev2->getUrl().'">'.$lev2->getName().'</a></li>';
$sitePath .= ' ›› <a href="'.$lev2->getUrl().'">'.$lev2->getName().'</a>';
$titlePath .= ' >> '.$lev2->getName();
}
// 2nd level - no active link
else {
$navLeftCol .= '<li><a href="'.$lev2->getUrl().'">'.$lev2->getName().'</a></li>';
}
// START 3rd level categories
foreach ($lev2->getChildren() as $lev3):
if ($lev3->isOnline()):
if ($lev3->getId() == $path3) {
$navLeftCol .= '<li class="active"><a href="'.$lev3->getUrl().'">'.$lev3->getName().'</a></li>';
$sitePath .= ' ›› <a href="'.$lev3->getUrl().'">'.$lev3->getName().'</a>';
$titlePath .= ' >> '.$lev3->getName();
} else {
$navLeftCol .= '<li><a href="'.$lev3->getUrl().'">'.$lev3->getName().'</a></li>';
}
endif;
endforeach;
// END 3rd level categories
endif;
endforeach;
// END 2nd level categories
$navLeftCol .= '</ul>';
endif; // END by if ($lev1Size != "0"):
}
endif; // END by if ($lev1->isOnline())
}
$navLeftCol .= '</ul>';
$navLeftCol .= '</div>';
// END 1st level categories
if ($REX['CUR_CLANG'] == 1) $breadcrumb = 'You are here: <a href="/index.php?clang=1">Startpage</a> '.$sitePath;
else $breadcrumb = 'Sie befinden sich hier: <a href="/index.php">Startseite</a> '.$sitePath;
?>
-

Niki
-
- Beiträge: 222
- Registriert: 24. Aug 2004, 21:11
- Wohnort: Frankfurt Main
-
von tscho » 12. Apr 2009, 07:31
Hey - wenn du möchtest dass die Kategorien der 3. Ebene nur angezeigt werden, wenn das Elternelement ausgewählt wurde musst du die foreach Schleife weiter oben in die Abfrage packen.
- Code: Alles auswählen
if ($lev2->isOnline()):
// 2nd level - active link
if ($lev2->getId() == $path2) {
$navLeftCol .= '<li class="active"><a href="'.$lev2->getUrl().'">'.$lev2->getName().'</a></li>';
$sitePath .= ' ›› <a href="'.$lev2->getUrl().'">'.$lev2->getName().'</a>';
$titlePath .= ' >> '.$lev2->getName();
foreach ($lev2->getChildren() as $lev3):
if ($lev3->isOnline()):
if ($lev3->getId() == $path3) {
$navLeftCol .= '<li class="active"><a href="'.$lev3->getUrl().'">'.$lev3->getName().'</a></li>';
$sitePath .= ' ›› <a href="'.$lev3->getUrl().'">'.$lev3->getName().'</a>';
$titlePath .= ' >> '.$lev3->getName();
} else {
$navLeftCol .= '<li><a href="'.$lev3->getUrl().'">'.$lev3->getName().'</a></li>';
}
endif;
endforeach;
}
// 2nd level - no active link
else
{
$navLeftCol .= '<li><a href="'.$lev2->getUrl().'">'.$lev2->getName().'</a></li>';
}
-
tscho
-
- Beiträge: 7
- Registriert: 12. Apr 2009, 07:23
Zurück zu Templates/Navigationen [R4]
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast