Navi mit 3 Ebenen - 2 Horizontal / 1 Vertikal

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

Navi mit 3 Ebenen - 2 Horizontal / 1 Vertikal

Beitragvon Nicolaus » 6. Feb 2006, 19:28

Hallo, ich möchte eine Navigation mit 3 Ebenen machen. Zwei Horizontal und die dritte (bei Bedarf) Vertikal.
Ähnlich wie bei "https://www.cortalconsors.de".
Hat jemand sowas schon gemacht? Ich kriegs nich hin :-(
Wär dankbar für Hilfe :-)

Gruß
Nic
Nicolaus
 

Beitragvon Markus.Staab » 6. Feb 2006, 19:47

Hi Nic,

Setze an den Kopf deines Templates eine 2 Ebenen Navi ein und am "Seitenrand" eine Weitere Navi, die ab der 3. Ebene alles aufblendet. ;)

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

Beitragvon Nicolaus » 7. Feb 2006, 08:45

:-) So ähnlich hatte ich mir das auch gedacht. Aber irgendwie hapert es noch an der Umsetzung.... :oops:
Nicolaus
 

Beitragvon Thomas.Blum » 7. Feb 2006, 09:12

Hej,

vielleicht hilft dir dieses Script weiter.

vg 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 Nicolaus » 7. Feb 2006, 11:07

Vielleicht ja ... Bei mir haperts noch mit dem Einbau des Scripts.
Ich hab die Navigation ja dann erstmal stumpf oben links in der Ecke.
Die jetzt so anzupassen dass an der richtigen Stelle horizontal angezeigt wird und die 3te Ebene vertikal - das klappt nich so wie es soll.

Naja, magucken...

Danke
Nicolaus
 

Beitragvon svenalbert » 7. Feb 2006, 11:34

der html-code der navis wird immer in einer variable zusammengestellt, die dann im haupttemplate ausgelesen wird.

du mußt einfach nur alles was mit den navis erster und zweiter ebene zu tun hat in eine Var schreiben (zb. $headernav) und das was deine 3te ebene ist, in eine andere (zb. $navleftcol).

je nachdem ob es in der zweiten ebene 'eine' unterkategorie gibt, würde diese dann in die andere variable geschrieben und dann an anderer stelle ausgegeben.

verstehst du die logik???
Benutzeravatar
svenalbert
 
Beiträge: 1295
Registriert: 24. Nov 2005, 16:21
Wohnort: Clausthal-Zellerfeld / lower saxony

Beitragvon Nicolaus » 7. Feb 2006, 14:41

In dem Script was ttaddade oben angesprochen hat, sind die Teile die zu den Navis der ersten und zweiten Ebene gehören ja schon einer Variablen zugeordnet und die der dritten auch - oder? Wie heissen die beiden Variablen denn z.B. in dem Script? Entschuldigung für die blöden Fragen, aber ich kämpfe mich zum ersten mal durch ein cms und so Scripte.

Zum Vertändnis hier die Seite: http://www.time42.de/

Achja, im Firefox liegt der Footer schön unten am Bildrand und im IE nich. Da steht er noch halb im Text und ich krieg ihn einfach nich so hin dass er immer ein Stück unter dem Content steht. :(

Gruß
Nicolaus
Nicolaus
 

Beitragvon svenalbert » 7. Feb 2006, 15:44

die variable heißt bei diesem beispiel $nav

wenn du die 3 kat separat haben willst, dann ersetze den teil in deinem script durch das schnipsel.

Code: Alles auswählen
                  if ($lev2->getId() == $path2) {
                     if ($lev2Size != "0") {
                        $navleft .= '<ul class="nav3rd">';

                        // START 3rd level categories
                        foreach ($lev2->getChildren() as $lev3):
                           if ($lev3->isOnline(true)) {
                              // 3rd level - active link
                              if ($lev3->getId() == $path3) {
                                 $navleft .= '<li class="active"><a class="current" href="'.$lev3->getUrl().'">'.$lev3->getName().'</a></li>';
                              }
                              // 3rd level - no active link
                              else {
                                 $navleft .= '<li><a href="'.$lev3->getUrl().'">'.$lev3->getName().'</a></li>';
                              }
                           }
                        endforeach;
                        // END 3rd level categories
     
                        $navleft .= '</ul>';


und gib dann an der stelle wo das menü zu sehen sein soll die var $navleft aus.

Sven
Benutzeravatar
svenalbert
 
Beiträge: 1295
Registriert: 24. Nov 2005, 16:21
Wohnort: Clausthal-Zellerfeld / lower saxony

Beitragvon svenalbert » 7. Feb 2006, 15:55

der IE nimmt das
Code: Alles auswählen
position: fixed;
nicht. darum wird das nicht funktionieren.


Sven
Benutzeravatar
svenalbert
 
Beiträge: 1295
Registriert: 24. Nov 2005, 16:21
Wohnort: Clausthal-Zellerfeld / lower saxony

Beitragvon Nic » 8. Feb 2006, 08:39

Dann brauch ich mich durch das Script garnich durchwurschteln weil es eh im IE nicht funktioniert?
Nic
 
Beiträge: 82
Registriert: 18. Jan 2006, 15:20
Wohnort: Steinfurt/Westf.

Beitragvon Thomas.Blum » 8. Feb 2006, 08:52

Hej,

nein. Das Script funktioniert auch im IE. Das liegt nicht am Browser. Was der IE hier nicht versteht, sind die CSS-Anweisungen. Der IE ist einfach zu fehlerbehaftet. Er interpretiert manches gar nicht anderes wiederum total verkehrt.

vg 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 Nic » 8. Feb 2006, 10:17

Ups, der Kommentar "position: fixed;" bezog sich auf mein Prob mit dem Footer - kann das sein?

Der hängt bei Firefox und einigen IE Versionen am unteren Bildschirmrand, bei einigen IE's aber eben auch unten im Content-Text.
Nic
 
Beiträge: 82
Registriert: 18. Jan 2006, 15:20
Wohnort: Steinfurt/Westf.

Beitragvon Thomas.Blum » 8. Feb 2006, 10:19

Nic hat geschrieben:Ups, der Kommentar "position: fixed;" bezog sich auf mein Prob mit dem Footer - kann das sein?

Ja
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 Nic » 8. Feb 2006, 11:48

Das von tbaddade vorgeschlagene Script verwende ich ja so auf meiner Seite. Und da kann ich ja bis zu 3 Nav-Ebenen verwenden. Ich krieg aber nur 2 dargestellt - die erste oben horizontal und die zweite links vertikal. Hab ich da vergessen was freizuschalten?.
Die Vertikale will ich aber oben unter die horizontale Hauptnavi haben und die dritte ggf. dann links vertikal.

Also muss ich doch im Template unter der ersten Navi-Ebene die zweite einfügen und die jetzige zweite durch die dritte ersetzen - oder???
Nic
 
Beiträge: 82
Registriert: 18. Jan 2006, 15:20
Wohnort: Steinfurt/Westf.

Beitragvon Nic » 8. Feb 2006, 15:34

Ich kriegn Fön ...

Vom Prinzip funktioniert es ja jetzt schon mal so wie es soll.
Nur, die Menüpunkte 2ter Ebene verschieben die der 1sten und sollen eigentlich auch linksbündig mit dem ersten Menüpunkt "Startseite" sein.

Die Nav der 3ten Ebene kann ich jetzt über das css nich mehr ansprechen, obwohl ich glaube alles entsprechend angepasst zu haben.

Das Navi-Template sieht jetzt so aus:
Code: Alles auswählen
<?php
// EXPLODE PATH
$PATH = explode("|",$this->getValue("path").$this->getValue("article_id")."|");

// GET CURRENTS
$path1 = $PATH[1];
$path2 = $PATH[2];
$path3 = $PATH[3];


/* START 1st level categories */
$nav .= '<ul class="nav1st">';
foreach (OOCategory::getRootCategories() as $lev1) {
     
   if ($lev1->isOnline(true)):
      if ($lev1->getId() == $path1) {
         $nav .= '<li class="active"><a class="current" href="'.$lev1->getUrl().'">'.$lev1->getName().'</a>';
      }
      // 2nd level - no active link
      else {
         $nav .= '<li><a href="'.$lev1->getUrl().'">'.$lev1->getName().'</a>';
      }
         
      // 1st level had categories? -> go on
      $lev1Size = sizeof($lev1->getChildren());
   
      if ($lev1->getId() == $path1) {
         if ($lev1Size != "0") {
            $nav .= '<ul class="nav2nd">';

            // START 2nd level categories
            foreach ($lev1->getChildren() as $lev2):
               if ($lev2->isOnline(true)) {
                  // 2nd level - active link
                  if ($lev2->getId() == $path2) {
                     $nav .= '<li class="active"><a class="current" href="'.$lev2->getUrl().'">'.$lev2->getName().'</a>';
                  }
                  // 2nd level - no active link
                  else {
                     $nav .= '<li><a href="'.$lev2->getUrl().'">'.$lev2->getName().'</a>';
                  }
                 
                  // 2nd level had categories? -> go on
                  $lev2Size = sizeof($lev2->getChildren());
   
                  if ($lev2->getId() == $path2) {
                     if ($lev2Size != "0") {
                        $navleft .= '<ul class="nav3rd">';

                        // START 3rd level categories
                        foreach ($lev2->getChildren() as $lev3):
                           if ($lev3->isOnline(true)) {
                              // 3rd level - active link
                              if ($lev3->getId() == $path3) {
                                 $navleft .= '<li class="active"><a class="current" href="'.$lev3->getUrl().'">'.$lev3->getName().'</a></li>';
                              }
                              // 3rd level - no active link
                              else {
                                 $navleft .= '<li><a href="'.$lev3->getUrl().'">'.$lev3->getName().'</a></li>';
                              }
                           }
                        endforeach;
                        // END 3rd level categories
     
                        $navleft .= '</ul>';

                     } // END by if ($lev2Size != "0"):
                  }
                  $nav .= '</li>';
               }
            endforeach;
            // END 2nd level categories
     
            $nav .= '</ul>';
         } // END by if ($lev1Size != "0"):
      }
      $nav .= '</li>';

   endif; // END by if ($lev1->isOnline())
}
$nav .= '</ul>';
// END 1st level categories

print $nav;
?>


Wie lautet denn die genaue Ansprache der 3 einzelnen Navis?
Meine Birne platzt gleich. *grrrr*
Nic
 
Beiträge: 82
Registriert: 18. Jan 2006, 15:20
Wohnort: Steinfurt/Westf.

Nächste

Zurück zu Templates/Navigationen [R3]

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast