Mal wieder aktive Navigationspunkte

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

Mal wieder aktive Navigationspunkte

Beitragvon Peter.Bickel » 23. Nov 2005, 19:17

Hi Leute,

ich hoffe, diese Frage wurde nicht schon tausendmal gestellt.

Ich habe folgende Navigation (u.a.), die die zweite und dritte Ebene darstellt und die derzeit aktive Seite mit einem "aktiven Zustand".
Soweit alles super.
Nun lege ich aber noch Seiten in der zweiten oder dritten Ebene an, nicht in einen Ordner kommen, also keine Startartikel sind. Sie sollen nicht im Menü erscheinen, was auch der Fall ist. Auf diese Seiten verlinke ich manuell.
Mein Problem: Die Menüpunkt der jeweils dazugehörigen Startartikel-Seite soll dann auch aktiv erscheinen, damit man noch weiß, wo man ist. Wie bekommt man dieses Detail auch noch hin?

Vielen Dank,
Peter.

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

   if($lev1Size != "0"):
    echo '   <ul>
   ';
    foreach ($lev1->getChildren() as $lev2):
     if ($lev2->isOnline()):
     if ($lev2->getId() == $artId) {
      echo '<li><a href="'.$lev2->getUrl().'" class="active">'.$lev2->getName().'</a></li>';
      } else {
      echo '<li><a href="'.$lev2->getUrl().'">'.$lev2->getName().'</a></li>';
     }
     endif;
     // ANFANG  EBENE 3
     $lev2Size = sizeof($lev2->getChildren());
     if($lev2Size != "0" && in_array($lev2->getId(), $path)):
     echo '<ul>';
      foreach ($lev2->getChildren() as $lev3):
       if ($lev3->isOnline()):
      $class3 = $lev3->getId() == $artId ? ' class="active"' : '';
      echo '<li><a href="'.$lev3->getUrl().'"'.$class3.'>'.$lev3->getName().'&nbsp;&raquo;</a></li>';       endif;
      endforeach;
    echo '</ul></li>';
     endif;
     // ENDE EBENE 3
    endforeach;
    echo '<li class="end">&nbsp;</li>';
    echo '
    <ul>';
   endif;
  endif;
endif;
endforeach;
?>
Benutzeravatar
Peter.Bickel
 
Beiträge: 1642
Registriert: 25. Jan 2005, 20:17
Wohnort: Schleswig-Holstein

Beitragvon Thomas.Blum » 23. Nov 2005, 19:37

Hej Peter,

das
if ($lev2->getId() == $artId)

müsste so heissen
if ($lev2->getId() == $path2)


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 Markus.Staab » 23. Nov 2005, 19:45

Hi

und gleiches auch bei $lev3...

das
if ($lev3->getId() == $artId)

müsste so heissen
if ($lev3->getId() == $path3)


Gruß,
Markus
Benutzeravatar
Markus.Staab
Entwickler
 
Beiträge: 9781
Registriert: 29. Jan 2005, 14:50
Wohnort: Aschaffenburg/Germany

Beitragvon Thomas.Blum » 23. Nov 2005, 19:50

Genau, hatte ich übersehen, sorry.

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 Peter.Bickel » 24. Nov 2005, 06:54

Danke, danke!
Ich hätte es auch schon fast selber gehabt. Ich lern's noch ...

Schönen Tag,
Peter.
Benutzeravatar
Peter.Bickel
 
Beiträge: 1642
Registriert: 25. Jan 2005, 20:17
Wohnort: Schleswig-Holstein

Beitragvon Markus.Staab » 24. Nov 2005, 15:09

pbickel hat geschrieben:Ich hätte es auch schon fast selber gehabt. Ich lern's noch ...


Sicher lernst du das. Üben üben üben... ;-)
Benutzeravatar
Markus.Staab
Entwickler
 
Beiträge: 9781
Registriert: 29. Jan 2005, 14:50
Wohnort: Aschaffenburg/Germany


Zurück zu Templates/Navigationen [R3]

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast