Navigation ab einer bestimmten Kategorie darstellen

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

Navigation ab einer bestimmten Kategorie darstellen

Beitragvon harrybrader » 1. Mai 2008, 15:21

Hallo,
was muss ich an folgender Navi ändern, damit diese erst ab einer bestimmten Kategorie aufgebaut wird.
Ich möchte verschiedene Webpräsenzen pflegen und würde die einzelnen Präsenzen gerne in Hauptkategorien ablegen.
z.B.

Website1
- Start
- Über uns
- - Team
- Kontakt
-- Anfahrt


Website 2
- Start
- Über uns
-- Team
- Kontakt
-- Anfahrt

Brauche also eine Navi die je Website nur folgendes darstellt:
- Start
- Über uns
- -Team
- Kontakt
-- Anfahrt







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 harrybrader » 26. Mai 2008, 11:16

Bitte Bitte ... helft mir ...
------------------------
Harry reloaded 2010
------------------------
harrybrader
 
Beiträge: 416
Registriert: 19. Feb 2007, 10:28

Beitragvon Markus.Staab » 26. Mai 2008, 11:43

Hi,

anstatt mit
foreach(OOCategory::getRootCategories() as $child)
zu beginnen einfach mit

$cat = OOCategory::getCategoryById($deinId);
foreach($cat->getChildren() as $child)

machen

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

Beitragvon harrybrader » 26. Mai 2008, 12:01

Danke,

aber leider die Subkategorien der aktiven Kategorie nicht dargestellt. Er bleibt dann immer in der Ebene der im Template festgelegten Kategorie

Beispiel:
(Aktive Kategorie: Das Unternehmen)

Das Unternehmen
- Philosophie
Produkte
Kontakt


angezeigt wird aber nur:

Das Unternehmen
Produkte
Kontakt
------------------------
Harry reloaded 2010
------------------------
harrybrader
 
Beiträge: 416
Registriert: 19. Feb 2007, 10:28

Beitragvon Markus.Staab » 26. Mai 2008, 12:47

Hi,

natürlich musst du auch wie in jeder anderen navi, wieder die kinder der kinder holen und diese mit einer schleife durchlaufen..

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

Beitragvon harrybrader » 26. Mai 2008, 14:54

'Danke...
mal sehen wie weit ich komme :-)
------------------------
Harry reloaded 2010
------------------------
harrybrader
 
Beiträge: 416
Registriert: 19. Feb 2007, 10:28


Zurück zu Templates/Navigationen [R3]

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast