3. ebene bei navi aus demo

Wie verwendet man Templates oder erstellt Navigationen und passt diese an.

3. ebene bei navi aus demo

Beitragvon 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
Benutzeravatar
alexschuengel
 
Beiträge: 150
Registriert: 18. Mär 2008, 17:43

Beitragvon heppi » 23. Jan 2009, 13:17

hallo,

einfach weitere foreach schleife einbauen :wink:

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

Beitragvon alexschuengel » 23. Jan 2009, 13:18

danke. an welcher stelle im template muss ich das reinkopieren?
Benutzeravatar
alexschuengel
 
Beiträge: 150
Registriert: 18. Mär 2008, 17:43

Beitragvon 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;


?>
Benutzeravatar
Niki
 
Beiträge: 222
Registriert: 24. Aug 2004, 21:11
Wohnort: Frankfurt Main

Beitragvon 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