Navi erst ab Kaegorie XY darstellen

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

Navi erst ab Kaegorie XY darstellen

Beitragvon harrybrader » 29. Feb 2008, 09:30

Hallo,

Ich würde gerne die Navigation ab einer bestimmten Kategorie ausgeben.
D.h. nur die Kategorien und Subkategorien z.B. eines Service-Bereiches mit der ID 50.

Kann mir jemand erklären, was ich dazu in dieser Navi ändern muss?


Code: Alles auswählen
<?php
//---TEMPLATE MODIFIED BY------------------------
//-- Michael Seifried
//-- michael@m-seifried.de
//-- www.tanzclub-hanau.de
//-----------------------------------------------


/*  Einbinden wie folgt:

<div id="navigation">
  <?php print $navLeftCol; ?>
</div>
verwendet nur eine ul liste, für beliebige viele Ebenen
Ebenen werden durch CSS formatiert
Aktive Seite markiert
Folgende Optionen:
1. Es wird immer die Top Ebene angezeigt, Brotkrümel bis zur aktuellen Ebene, dann die aktuelle Ebene komplett.
2. Brotkrümel bis zur aktuellen Ebene, dann Ebene komplett
3. Alle aktiven Ebenen

*/

function NavigationsListe(&$navLeftCol ,$lev,$Path,$PathIndex)
{
    if(! $lev->isOnline())                  // offline ausblenden
        return;
    $time = time();
    // Falls zur Zeit nicht online --> ausblenden
    if(($lev->getValue("online_from") > $time) || ($lev->getValue("online_to") < $time))
        return;

    if ($lev->getId() == $Path[$PathIndex])         // Eintrag ist im aktuellen Pfad, also selbst oder Subkategorie aktiv
    {
        $levSize = sizeof($lev->getChildren());
        if($levSize != "0")                   // es gibt Kinder
        {
            if((count($Path) > $PathIndex) &&($Path[$PathIndex + 1] >0))
            {
                // History $lev
                $navLeftCol .= '<li class="navhistory"><a class="level'.$PathIndex.'" href="'.$lev->getUrl().'">'.$lev->getName().'</a></li>';
            }
            else
            {
                // aktiv $lev                                   // wir sind aktiv
                $navLeftCol .= '<li class="active"><a class="level'.$PathIndex.'" href="'.$lev->getUrl().'">'.$lev->getName().'</a></li>';
            }
            // die Kinder noch anzeigen
            foreach($lev->getChildren() as $sublevel)       // Subebene normal anzeigen
            {
                NavigationsListe($navLeftCol,$sublevel,$Path,$PathIndex + 1);
            }
        }
        else
        {
            // aktiv $lev
            $navLeftCol .= '<li class="active"><a class="level'.$PathIndex.'" href="'.$lev->getUrl().'">'.$lev->getName().'</a></li>';
            return;
        }
    }
    else
    {
         if(
1 ||                          // alle Ebenen anzeigen
            ($PathIndex == 1) ||            // Top Level anzeigen
            ((count($Path) > $PathIndex) && ($Path[$PathIndex + 1] == 0))    //unterste Ebene anzeigen
            )
        {
            // normal $lev
            $navLeftCol .= '<li><a class="level'.$PathIndex.'" href="'.$lev->getUrl().'">'.$lev->getName().'</a></li>';
        }
    }
}


/* START 1st level categories */
$Path = explode("|",$this->getValue("path").$this->getValue("article_id")."|");
$navLeftCol .= '<ul class="nav1st">'; // die ID #nav ist nur für das javascript für den IE wichtig.

foreach (OOCategory::getRootCategories() as $lev1)
{
    NavigationsListe($navLeftCol,$lev1,$Path,1);
}
$navLeftCol .= '</ul>';





?>
------------------------
Harry reloaded 2010
------------------------
harrybrader
 
Beiträge: 416
Registriert: 19. Feb 2007, 10:28

Beitragvon Oliver.Kreischer » 29. Feb 2008, 10:55

Hi,

guck Dir doch das mal an.

http://www.redaxo.de/168-Templatedetail ... late_id=84

Sieht So aus als würde das damit funktionieren...

Grüße
Oliver
http://kreischer.de - "It's very simple - you read the protocol and write the code." - Bill Joy
Benutzeravatar
Oliver.Kreischer
 
Beiträge: 1821
Registriert: 16. Dez 2004, 23:03
Wohnort: Feldafing


Zurück zu Templates/Navigationen [R3]

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast