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>';
?>

