Top-Navigation dynamisch erstellen

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

Top-Navigation dynamisch erstellen

Beitragvon bastians » 8. Mai 2009, 13:45

Hallo zusammen,

ich habe auf einer Seite eine Top-Navigation oben rechts (Kontakt | Impressum | AGB) und habe die Links bisher immer im Template direkt eingetragen. Nun hatte ich neulich einen Ansatz hier hier gelesen, wodurch die Top-Navi anhand von Artikeln im Ausgangsmenü erzeugt wurde. Die Artikel hatten vermutlich Weiterleitungen zu den richtigen Artikeln.

Leider finde ich den Thread nicht mehr. Kann jemand helfen?

Danke für eure Mühe.
Benutzeravatar
bastians
 
Beiträge: 106
Registriert: 9. Mai 2008, 16:45
Wohnort: Stuttgart

Beitragvon nitzer » 8. Mai 2009, 15:33

ich finde den beitrag auch nicht mehr, aber diese navigation hab ich grad bei einem projekt benutzt und man muß dann nur bei den metainfo ein neue "cat_MenuePosition anlegen:
Parameter --> oben|rechts|links|unten

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

// GET CURRENTS
$path1 = (isset ($PATH[1])) ? $PATH[1] : '';
$path2 = (isset ($PATH[2])) ? $PATH[2] : '';
$path3 = (isset ($PATH[3])) ? $PATH[3] : '';
$sitePath = '';
$titlePath = '';
$navLeftCol = '';



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


         // START 2nd level categories
         foreach ($lev1->getChildren() as $lev2):
                  
            if ($lev2->isOnline()):
   
            // 2nd level - active link
               if ($lev2->getId() == $path2) {
                  $navLeftCol .= '<li class="active"><a href="'.$lev2->getUrl().'">'.$lev2->getName().'</a></li>';
                  $sitePath .= ' ›› <a href="'.$lev2->getUrl().'">'.$lev2->getName().'</a>';
                  $titlePath .= ' >> '.$lev2->getName();
               }
               // 2nd level - no active link
               else {
                  $navLeftCol .= '<li><a href="'.$lev2->getUrl().'">'.$lev2->getName().'</a></li>';
               }
         
            endif;         
            
         endforeach;
         // END 2nd level categories
      
         $navLeftCol .= '</ul>';
      endif; // END by if ($lev1Size != "0"):
   
   }
   endif; // END by if ($lev1->isOnline())
}
$navLeftCol .= '</ul>';
$navLeftCol .= '</div>';
// END 1st level categories

if ($REX['CUR_CLANG'] == 1) $breadcrumb = 'You are here: <a href="/index.php?clang=1">Startpage</a> '.$sitePath;
else $breadcrumb = 'Sie befinden sich hier: <a href="/index.php">Startseite</a> '.$sitePath;


?>[quote][/quote]
nitzer
 
Beiträge: 187
Registriert: 16. Okt 2006, 21:53
Wohnort: Erkrath

Beitragvon bastians » 8. Mai 2009, 16:12

Danke für deine Ansatz.

Du erinnerst dich an den von mir beschriebenen Ansatz? Da ich diesen besser geeignet finde, hoffe ich, dass der Verfasser diesen Beitrag noch liest ;)
Benutzeravatar
bastians
 
Beiträge: 106
Registriert: 9. Mai 2008, 16:45
Wohnort: Stuttgart

Beitragvon bastians » 9. Mai 2009, 08:10

Mit der neuen Navigation in Redaxo 4.2 (rex_navigation::factory()) scheint dies ja nun einfach zu lösen sein.

Ich habe jetzt einfach eine Kategorie angelegt für die Top-Navi und dafür eine eigene Navigation die ich an der Stelle meiner Top-Navigation einfüge.
Anpassung erfolgt über CSS. Wunderbar :-)
Benutzeravatar
bastians
 
Beiträge: 106
Registriert: 9. Mai 2008, 16:45
Wohnort: Stuttgart

Beitragvon Thomas.Blum » 9. Mai 2009, 10:01

Hej ihr namenlosen ;-)

@bastians
Wenn die Navipunkte nur an einer Stelle der Seite auftauchen sollen, dann ist dein jetziger Ansatz der bessere.

Wenn du aber die Navipunkt an mehreren Stellen darstellen möchtest, ein Bspl wäre http://irish-net.de, dann ist der Ansatz von nitzer der geeignetere, da hier die Punkte im System nur einmal angelegt werden müssten.

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 bastians » 9. Mai 2009, 10:06

Ja, sie sollen nur oben rechts angezeigt werden, so wie bei der von dir genannten Beispielseite ( Neu im Irish-Net | Sitemap | Impressum).

Danke :) Und einen Namen habe ich nun auch ;)
Grüße, Bastian
Benutzeravatar
bastians
 
Beiträge: 106
Registriert: 9. Mai 2008, 16:45
Wohnort: Stuttgart

Beitragvon nitzer » 9. Mai 2009, 13:40

gestatten: Andreas :D
nitzer
 
Beiträge: 187
Registriert: 16. Okt 2006, 21:53
Wohnort: Erkrath


Zurück zu Templates/Navigationen [R4]

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast