Wie unterdrücke ich den letzten Trenner in der Navigation?

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

Wie unterdrücke ich den letzten Trenner in der Navigation?

Beitragvon medienarbeiter » 16. Mär 2007, 13:47

Hallo,
ich stelle mit dem folgenden Code die zweite Ebene meiner Navigation dar, wobei die einzelnen Einträge durch "|" getrennt werden sollen. Sicher nicht optimal, aber es geht.
Code: Alles auswählen
<?php
               $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()):
      echo '';
      if ($lev1->getId() == $path1) :
         $lev1Size = sizeof($lev1->getChildren());

         if($lev1Size != "0"):
            foreach ($lev1->getChildren() as $lev2):
               if ($lev2->isOnline()):
                  echo '<a href="'.$lev2->getUrl().'" class="subnav">'.$lev2->getName().' | </a>';
               endif;
            endforeach;
         endif;
      endif;
   endif;
endforeach;
?>


Jedoch habe ich ein "kosmetisches" Problem mit dem folgenden Abschnitt:

Code: Alles auswählen
<a href="'.$lev2->getUrl().'" class="subnav">'.$lev2->getName().' | </a>


Und zwar führt dieser dazu, daß auch hinter dem letzten Eintrag ein "|" erscheint. Das sieht natürlich nicht schön aus. Daher meine Frage: Wie kann ich das letzte "|" unterdrücken bzw. vermeiden, daß es überhaupt erzeugt wird?

Wie stets sehr dankbar für Tipps und Hinweise
Georg
medienarbeiter
 
Beiträge: 87
Registriert: 18. Apr 2006, 16:32

Beitragvon Thomas.Blum » 16. Mär 2007, 15:31

Hej,

es gibt mehere Methoden:

Code: Alles auswählen
<?php
               $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()):
      echo '';
      if ($lev1->getId() == $path1) :
         $lev1Size = sizeof($lev1->getChildren());

         if($lev1Size != "0"):
            foreach ($lev1->getChildren() as $lev2):
               if ($lev2->isOnline()):
                  $navi .= '<a href="'.$lev2->getUrl().'" class="subnav">'.$lev2->getName().' | </a>';
               endif;
            endforeach;
            $navi = substr($navi, 0, -7).'</a>';
         endif;
      endif;
   endif;
endforeach;
print $navi;
?>


vg Thomas
blumbeet - web.studio - Dresden - 0351 217 6225
webbude - Blog über CSS.XHTML.REX
Ein Wunschzettel
Benutzeravatar
Thomas.Blum
Entwickler
 
Beiträge: 4670
Registriert: 24. Aug 2004, 21:11
Wohnort: Dresden

Beitragvon medienarbeiter » 16. Mär 2007, 15:55

Hej! Super! 1000 Dank! Georg
medienarbeiter
 
Beiträge: 87
Registriert: 18. Apr 2006, 16:32

Beitragvon melody » 20. Sep 2007, 06:42

Ich habe eine "navigation - horizontal - vertical" Template und würde auch gerne den letzten Trenner unterdrücken (nur bei der horizontale nav.), nun ich habs schon versucht leider ohne Erfolg.


Code: Alles auswählen
<?php
// 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 */
$navHeader .= '<ul class="nav1st">';
foreach (OOCategory::getRootCategories() as $lev1) {
      
   if ($lev1->isOnline()):
      if ($lev1->getId() == $path1) {
         $navHeader .= '<li class="active"><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="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 class="current" 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>';
               }
         
            endif;         
            
         endforeach;
         // END 2nd level categories
      
         $navLeftCol .= '</ul>';
      endif; // END by if ($lev1Size != "0"):
      }
      $navHeader .= '</li>';

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


?>


Bin für jeden Hinweis dankbar!
melody
 
Beiträge: 70
Registriert: 17. Sep 2007, 07:49

Beitragvon Thomas.Blum » 20. Sep 2007, 08:34

Hej,

suche
Code: Alles auswählen
$navHeader .= '</ul>';


ersetze
Code: Alles auswählen
$navHeader = substr($navHeader, 0, -8).'</li>';
$navHeader .= '</ul>';


vg Thomas
blumbeet - web.studio - Dresden - 0351 217 6225
webbude - Blog über CSS.XHTML.REX
Ein Wunschzettel
Benutzeravatar
Thomas.Blum
Entwickler
 
Beiträge: 4670
Registriert: 24. Aug 2004, 21:11
Wohnort: Dresden

Beitragvon melody » 20. Sep 2007, 20:24

Dankeschön Thomas! Du hast mir den Tag gerettet.

Gruß, Melody
melody
 
Beiträge: 70
Registriert: 17. Sep 2007, 07:49


Zurück zu Templates/Navigationen [R3]

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste