Navigatiion Horizontal, Vertikal und Artikel

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

Navigatiion Horizontal, Vertikal und Artikel

Beitragvon pitbullracer » 11. Aug 2007, 21:40

Hallo zusammen,

ich habe die Navi aus der Demo ( 1. Ebene Horizontal, 2. Ebene Vertikal ) so angepasst, dass die einzelnen Artikel einer Kategorie mit angezeigt werden.

Link 1 Link 2 Link 3
ULink 1.1
ULink 1.2
1. Artikel 1.2
2. Artikel 1.2


Link 1 Link 2 Link 3
1. Artikel 2
2. Artikel 2

Und habe dafür folgenden Code verwendet.
Eine Mischung der Navi und dem Modul Artikelliste

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];

$user_typ = 1;
if ($FORM['USR_TYP'] != 0) {
   $user_typ = $FORM['USR_TYP'];
}

/* START 1st level categories */

$navHeader .= '<ul class="nav1st">';
foreach (OOCategory::getRootCategories() as $lev1) {
   
        if ($lev1->getTypeID()==1 || $user_typ == $lev1->getTypeId()) {
   if ($lev1->isOnline()):
      if ($lev1->getId() == $path1) {
         $navHeader .= '<li class="active"><a class="current" href="'.$lev1->getUrl().'">'.$lev1->getName().'</a>';
         if ($lev1->getId() != "1") {
            $sitePath .= ' ›› <a href="'.$lev1->getUrl().'">'.$lev1->getName().'</a>';
         }
         $titlePath .= ' >> '.$lev1->getName();
      }
      // 2nd level - no active link
      else {
         $navHeader .= '<li><a href="'.$lev1->getUrl().'">'.$lev1->getName().'</a>';
      }
         
      // 1st level had categories? -> go on
      $lev1Size = sizeof($lev1->getChildren());

if ($lev1->getId() == $path1) {
if($lev1Size = "")
    {
         $navarts .='<ul class="nav2nd">';
             $cat = OOCategory::getCategoryById($this->getValue(category_id));
          $articles = $cat->getArticles( true); // Alle Artikel der Kategorie auslesen, die Online sind


               if ( is_array( $articles) && count( $articles) > 0) {
                  foreach ( $articles as $article) {
                     // Den aktuellen Artikel nicht verlinken
                     // if ( $article->getId() == REX_ARTICLE_ID) continue;
                     // Startartikel ausblenden
                 if ( $article->isStartPage()) continue;
                 $navarts .= '<a class="artnav" href="'.$article->getUrl().'">'.$article->getName().'</a>';

                  }
               }
         $navarts .='</ul>';
             }        
}       
   

      if ($lev1->getId() == $path1) {
      if ($lev1Size != "0"):
         $navLeftCol .= '<ul class="nav2nd">';
         $navLeftCol .= '<li><strong></strong></li>';


         // START 2nd level categories
$cat = OOCategory::getCategoryById($this->getValue(category_id));
$articles = $cat->getArticles( true); // Alle Artikel der Kategorie auslesen, die Online sind

      if ( is_array( $articles) && count( $articles) > 0) {
         foreach ( $articles as $article) {
            // Den aktuellen Artikel nicht verlinken
            // if ( $article->getId() == REX_ARTICLE_ID) continue;
            // Startartikel ausblenden
        if ( $article->isStartPage()) continue;
        $nav .= '<a class="artnav" href="'.$article->getUrl().'">'.$article->getName().'</a>';

         }
      }
         foreach ($lev1->getChildren() as $lev2):
                  
            if ($lev2->isOnline()):
   
            // 2nd level - active link
               if ($lev2->getId() == $path2) {
                  $navLeftCol .= '<li class="active"><a class="current" href="'.$lev2->getUrl().'">'.$lev2->getName().'</a></li>'.$nav;
                  $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"):
      }
      $navHeader .= '</li>';

   endif; // END by if ($lev1->isOnline())
   }
}
$navHeader .= '</ul>';
// 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;


?>


Mein Problem ist, es werden nur die Artikel einer Subkategorie angezeigt, aber nicht die einer Hauptkategorie ...

Wer kann mir hier helfen???

Danke und einen schönen Abend!
pitbullracer
 
Beiträge: 38
Registriert: 7. Jan 2007, 21:34

Beitragvon n.ruediger » 11. Aug 2007, 22:36

Hallo,

du fragst in der Zeile 39 mit

Code: Alles auswählen
if($lev1Size = "")
    {
    }


ab, ob Unterkategorien vorhanden sind. Nur, wenn die leer ist (was aber nie ist, da sonst '0' in der Variable steht), trifft das dann nicht zu.

Liebe Grüße,
Nicole
Benutzeravatar
n.ruediger
 
Beiträge: 418
Registriert: 21. Mär 2007, 11:25
Wohnort: Frankfurt (Oder)

Beitragvon pitbullracer » 12. Aug 2007, 08:34

Habe das ganze jetzt folgendermasen gelöst

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];

$user_typ = 1;
if ($FORM['USR_TYP'] != 0) {
   $user_typ = $FORM['USR_TYP'];
}
/* START 1st level categories */

$navHeader .= '<ul class="nav1st">';
foreach (OOCategory::getRootCategories() as $lev1) {
   
        if ($lev1->getTypeID()==1 || $user_typ == $lev1->getTypeId()) {
   if ($lev1->isOnline()):
      if ($lev1->getId() == $path1) {
         $navHeader .= '<li class="active"><a class="current" href="'.$lev1->getUrl().'">'.$lev1->getName().'</a>';
         if ($lev1->getId() != "1") {
            $sitePath .= ' ›› <a href="'.$lev1->getUrl().'">'.$lev1->getName().'</a>';
         }
         $titlePath .= ' >> '.$lev1->getName();
      }
      // 2nd level - no active link
      else {
         $navHeader .= '<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")
{
         $navLeftCol .= '<ul class="nav2nd">';
         $navLeftCol .= '<li><strong></strong></li>';


         // START 2nd level categories
$cat = OOCategory::getCategoryById($this->getValue(category_id));
$articles = $cat->getArticles( true); // Alle Artikel der Kategorie auslesen, die Online sind

      if ( is_array( $articles) && count( $articles) > 0) {
         foreach ( $articles as $article) {
            // Den aktuellen Artikel nicht verlinken
            // if ( $article->getId() == REX_ARTICLE_ID) continue;
            // Startartikel ausblenden
        if ( $article->isStartPage()) continue;
        $nav .= '<a class="artnav" href="'.$article->getUrl().'">'.$article->getName().'</a>';

         }
      }
         foreach ($lev1->getChildren() as $lev2):
                  
            if ($lev2->isOnline()):
   
            // 2nd level - active link
               if ($lev2->getId() == $path2) {
                  $navLeftCol .= '<li class="active"><a class="current" href="'.$lev2->getUrl().'">'.$lev2->getName().'</a></li>'.$nav;
                  $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>';
}
else
    {
$navarts .='<ul class="nav2nd">';
    $cat = OOCategory::getCategoryById($this->getValue(category_id));
$articles = $cat->getArticles( true); // Alle Artikel der Kategorie auslesen, die Online sind


      if ( is_array( $articles) && count( $articles) > 0) {
         foreach ( $articles as $article) {
            // Den aktuellen Artikel nicht verlinken
            // if ( $article->getId() == REX_ARTICLE_ID) continue;
            // Startartikel ausblenden
        if ( $article->isStartPage()) continue;
        $navarts .= '<a class="artnav" href="'.$article->getUrl().'">'.$article->getName().'</a>';

         }
      }
$navarts .='</ul>';
    }        
}       
   


      endif; // END by if ($lev1Size != "0"):
      }
      $navHeader .= '</li>';

}
$navHeader .= '</ul>';
// 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]
pitbullracer
 
Beiträge: 38
Registriert: 7. Jan 2007, 21:34


Zurück zu Templates/Navigationen [R3]

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast