[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Navigation über 4 Ebenen ohne Startartikel - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
silkiflower
Beiträge: 6
Registriert: 3. Jan 2008, 19:40

Navigation über 4 Ebenen ohne Startartikel

10. Jan 2008, 12:23

Hallo liebe Redaxo-Gemeinde,

ich stehe auf dem Schlauch, ich habe das Demo-Template aus der 4er Version nun so erweitert, dank des super Forums, dass ich mir die 3. und die 4. Ebene anzeigen lasse in der Navigation.

Im Template läuft oben horizontal die Hauptnavigation (Also konkret Home, Über uns, Mitglieder, Kontakt...)
und rechts an der Seite werden die Unterkategorien ausgeben,
also im Falle von "über uns" steht dann z.b. dort
-> Über uns (Subkategorie
->Über uns (der Startartikel),
-> Profil (Subsubkategorie)
-> Werdegang (Subsubkategorie)

Nun möchte ich aber bei den Submenüs nur die Kategorien angezeigt bekommen, aber nicht die Startartikel in der Navigation. Dort soll er eben automatisch hinspringen, den Artikel aber nicht auch noch in die Navigation mitschreiben, dass sieht sonst so doppelt gemoppelt aus.

Also nur so
-> Über uns (Subkategorie
*** ->Über uns (der Startartikel),*** der soll entfallen
-> Profil (Subsubkategorie)
-> Werdegang (Subsubkategorie)

Ich hoffe, Ihr versteht mich einigermassen. Ich probiere jetzt schon alles mögliche aus, immerhin gibts im Forum ja auch schon einiges darüber, aber ich packs irgendwie nicht, das richtig umzusetzen.

Mein Code des Templates "navigation horizontal-vertikal :

<?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] : '';
$path4 = (isset ($PATH[4])) ? $PATH[4] : '';



$sitePath = '';
$titlePath = '';
$navLeftCol = '';



/* START 1st level categories */
$navHeader .= '<ul>';
$navLeftCol .= '<div id="navheight_horiz_vert">';
foreach (OOCategory::getRootCategories() as $lev1) {

if ($lev1->isOnline()):
if ($lev1->getId() == $path1) {
$navHeader .= '<li><a class="current" href="'.$lev1->getUrl().'">'.$lev1->getName().'</a>';
if ($lev1->getId() != "1") {
$sitePath .= ' ›› <a href="'.$lev1->getUrl().'">'.$lev1->getName().'</a>';
}
$titlePath .= ' >> '.$lev1->getName();
}
// 2nd level - no active link
else {
$navHeader .= '<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"):
$navLeftCol .= '<ul class="nav1st">';
$navLeftCol .= '<li>'.$lev1->getName();

$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>';
}




// 2st level had categories? -> go on
$lev2Size = sizeof($lev2->getChildren());

if ($lev2->getId() == $path2) {
if ($lev1Size != "0"):
$navLeftCol .= '<ul class="nav2st">';
$navLeftCol .= '<li>'.$lev2->getName();

$navLeftCol .= '<ul class="nav2nd">';

// START 2nd level categories
foreach ($lev2->getChildren() as $lev3):

if ($lev3->isOnline()):

// 3nd level - active link
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();
}
// 3nd level - no active link
else {
$navLeftCol .= '<li><a href="'.$lev3->getUrl().'">'.$lev3->getName().'</a></li>';
}



// 3st level had categories? -> go on
$lev3Size = sizeof($lev3->getChildren());

if ($lev3->getId() == $path3) {
if ($lev2Size != "0"):
$navLeftCol .= '<ul class="nav2st">';
$navLeftCol .= '<li>'.$lev3->getName();

$navLeftCol .= '<ul class="nav2nd">';

// START 3nd level categories
foreach ($lev3->getChildren() as $lev4):

if ($lev4->isOnline()):

// 4nd level - active link
if ($lev4->getId() == $path4) {
$navLeftCol .= '<li class="active"><a href="'.$lev4->getUrl().'">'.$lev4->getName().'</a></li>';
$sitePath .= ' ›› <a href="'.$lev4->getUrl().'">'.$lev4->getName().'</a>';
$titlePath .= ' >> '.$lev4->getName();
}
// 4nd level - no active link
else {
$navLeftCol .= '<li><a href="'.$lev4->getUrl().'">'.$lev4->getName().'</a></li>';
}



endif;


endforeach;
// END 4nd level categories
$navLeftCol .= '</ul>';
$navLeftCol .= '</li></ul>';
endif; // END by if ($lev1Size != "0"):
}
$navHeader .= '</li>';


endif;


endforeach;
// END 3nd level categories
$navLeftCol .= '</ul>';
$navLeftCol .= '</li></ul>';
endif; // END by if ($lev1Size != "0"):
}
$navHeader .= '</li>';

endif;


endforeach;
// END 2nd level categories
$navLeftCol .= '</ul>';
$navLeftCol .= '</li></ul>';
endif; // END by if ($lev1Size != "0"):
}
$navHeader .= '</li>';

endif; // END by if ($lev1->isOnline())
}
$navHeader .= '</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;



?>


Es wäre super, wenn mir jemand auf die Sprünge hilft.
Vielen Dank,

Lg

Silki

Rexado 4.0.1

silkiflower
Beiträge: 6
Registriert: 3. Jan 2008, 19:40

10. Jan 2008, 12:49

OK, wie immer, wenn man um Hilfe geschrien hat, findet man kurz darauf ne Lösung, das Brett war mal wieder echt groß, habe mal wieder viel zu kompliziert gedacht, die Methode ist wahrscheinlich nicht besonders gut, aber sie funktioniert, ich kommentiere einfach die Zeile
//$navLeftCol .= '<li>'.$lev2->getName();
unter den jeweiligen Unterebenen aus, und Problem ist gelöst.

Wie gesagt, ist wahrscheinlich nicht besonders stilvoll, aber hilft.

LG

Silke

Zurück zu „Allgemeines [R4]“