ich verwende in einem Homepageprojekt eine Haupt- und ein Unternavigation. Bei der Unternavigation kann ich per css das Aussehen des aktiven Navigationspunktes wählen.
Wie muss ich denn das Navigationstemplate, dass ich einsetze, abändern, damit ich auch in der Hauptnavigation das Aussehen des aktiven Menüpunktes steuern kann?
Hier ein Ausschnitt aus dem Template:
- Code: Alles auswählen
<?
// OONAVIGATION CLASS
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
class OONavigation
{
var $navigation;
var $subnavigation;
var $rendererMain;
var $rendererSub;
var $countpath;
var $path;
function createNavigation($level = NULL)
{
if(!isset($level))
{
foreach(OOCategory::getRootCategories() as $level)
{
if($level->isOnline())
$this->addItem(0, $level->getName(), $level->getUrl(), $level->getId(), sizeof($level->getChildren()));
if(sizeof($level->getChildren()) > 0)
{
$this->createNavigation($level);
}
}
}
else
{
foreach($level->getChildren() as $nextLevel)
{
if($nextLevel->isOnline())
$this->addItem($level->getId(), $nextLevel->getName(), $nextLevel->getUrl(), $nextLevel->getId(), sizeof($nextLevel->getChildren()));
if(sizeof($nextLevel->getChildren()) > 0)
{
$this->createNavigation($nextLevel);
}
}
}
}
function addItem($level, $name, $url, $id, $children)
{
$this->navigation[$id][$level]['name'] = $name;
$this->navigation[$id][$level]['url'] = $url;
$this->navigation[$id][$level]['children'] = $children;
$this->navigation[$id][$level]['id'] = $id;
$this->subnavigation[$level][$id]['name'] = $name;
$this->subnavigation[$level][$id]['url'] = $url;
$this->subnavigation[$level][$id]['children'] = $children;
$this->subnavigation[$level][$id]['id'] = $id;
}
function renderNavigation($level = 0)
{
$this->rendererMain .= "<ul>\n";
foreach($this->navigation as $item)
{
if($item[$level]['name'])
{
if($level > 0)
$childs = ($item[$level]['children'] > 0) ? ' class="children"' : '';
$this->rendererMain .= "<li><a" . $childs . " href=\"" . $item[$level]['url'] . "\">".$item[$level]['name']."</a>\n";
if($item[$level]['children'] > 0)
{
$this->renderNavigation($item[$level]['id']);
}
$this->rendererMain .= "</li>\n";
}
}
$this->rendererMain .= "</ul>\n";
}
function displayMainNavigation()
{
print $this->rendererMain;
}
function renderSubNavigation($path)
{
$this->path = $path;
$this->countpath = 1;
if($this->subnavigation[0][$this->path[$this->countpath]]['children'] > 0)
{
$this->rendererSub .= "<div id=\"subnavigation\">";
$this->generateSubNavigation();
$this->rendererSub .= "</div>";
}
}
function generateSubNavigation($level = 0)
{
$this->rendererSub .= "\n<ul>\n";
$itemCount = count($this->subnavigation[$this->path[$this->countpath]]);
$itemCloser = 0;
foreach($this->subnavigation[$this->path[$this->countpath]] as $item)
{
$actClass = ($this->path[$this->countpath+1] == $item['id']) ? "class=\"active\" " : "";
$lastClass = ($itemCloser < $itemCount-1 && $level == 0) ? "" : " class=\"last\"";
$itemCloser++;
$this->rendererSub .= "<li".$lastClass."><a ".$actClass."href=\"" . $item['url'] . "\">".$item['name']."</a>";
Und hier die Live-Ansicht:
http://www.narrenzunft-furtwangen.de
Es wäre schön, wenn mir jemand helfen könnte.
Vielen Dank, Antje.

