Meta Info an Navigation weitergeben

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

Meta Info an Navigation weitergeben

Beitragvon alexschuengel » 26. Mär 2009, 11:09

Hallo,

ich möchte das Standard-Navigation aus der Demo klassen mit geben, damit ich die entsprechenden <li> mit CSS speziell stylen kann.
Im Grunde doch ganz simple. Ich erstelle eine neue Meta-Info für Kategorien und gebe dort individuell die Klasse für den entsprechenden Navigationspunkt ein.

Wie aber kann ich die Daten jetzt in meine Navigation integrieren? Bin in PHP nicht so fit leider.

Für Hilfe bin ich jeder Zeit dankbar.

Grüße Alex
Benutzeravatar
alexschuengel
 
Beiträge: 150
Registriert: 18. Mär 2008, 17:43

Beitragvon zehbaeh » 26. Mär 2009, 17:56

Hallo,
das ist ein geändertes Template der vertikalen Navigation aus der 4.1_rc1.
Code: Alles auswählen
<?php
/**
* Ausgabe einer vertikalen Kategorien Navigation in ein div mit der id "navheight_vert"
*
* Änderungen gegenüber original Redaxo 4.1_rc1 Demo:
* - CSS-Klassen Auszeichnung der Kategorien li über MetaInfo der Kategorien
* - CSS-Klasse "active" in zugehörigen Anker verschoben!
*/

/**
* Bezeichnung der Kategorien-Metainfo
*
* @global string $catMetaClass
*/
$catMetaClass = 'cat_class';
/**
* preg_replace Muster zum filtern der CSS Klassenbezeichnung.
* Leerzeichen aus dem Muster entfernen für Beschränkung auf einzelne Klassen.
*
* @global string $catMetaClassFilter
*/
$catMetaClassFilter = '~[^a-z 0-9-_]~i';


// 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()):

        $lev1Class = trim(preg_replace($catMetaClassFilter, '', $lev1->getValue($catMetaClass)));
        if('' != $lev1Class) { $lev1Class = ' class="'.$lev1Class.'"'; }

      if ($lev1->getId() == $path1) {
         $navLeftCol .= '<li'.$lev1Class.'><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'.$lev1Class.'><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()):

                    $lev2Class = trim(preg_replace($catMetaClassFilter, '', $lev2->getValue($catMetaClass)));
                    if('' != $lev2Class) { $lev2Class = ' class="'.$lev2Class.'"'; }

                    // 2nd level - active link
               if ($lev2->getId() == $path2) {
                  $navLeftCol .= '<li'.$lev2Class.'><a class="active" 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'.$lev2Class.'><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;
?>
zehbaeh
 
Beiträge: 563
Registriert: 17. Okt 2006, 10:52
Wohnort: Solingen

Beitragvon alexschuengel » 26. Mär 2009, 18:14

super. danke. geht genau in die richtung wie ich es brauche.
allerdings brauche ich das template "navigation - horizontal - vertical" mit der funktion.

gibt es das auch in der abgeänderten version? das wäre glaub ich dann genau das was ich brauche.
Benutzeravatar
alexschuengel
 
Beiträge: 150
Registriert: 18. Mär 2008, 17:43


Zurück zu Templates/Navigationen [R4]

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast