[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
navi::factory für Left Navi mit ArtikelListe - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
CleverHosting
Beiträge: 8
Registriert: 4. Sep 2006, 18:26
Wohnort: London
Kontaktdaten: Website

navi::factory für Left Navi mit ArtikelListe

25. Jan 2010, 20:14

Hallo,

ich hab die Forensuche wirklich ausgiebig bemüht und nichts gefunden. :roll:
Gibt es eine Möglichkeit mit der neuen Factory zusätzlich zu den Kategorien auch die Artikel der aktuellen Kategorie mit aufzuzeigen?

Mit OOCategorie->getArticles bekomme ich zwar die Liste aber eben nicht mit einsortiert. Ich hätte gern ein Menue in der Art:

Kategorie0
- Kategorie1 .... ist aktiv
-- Artikel1
-- Artikel2
-- Artikel3
- Kategorie2
- Kategorie3

Ich vermute ich muss was in der class.rex_navigation.php basteln, aber evtl. hat das ja schon jemand verstanden und fertig.

h0d3nt3uf3l
Beiträge: 17
Registriert: 2. Jan 2010, 21:57
Wohnort: Nürnberg
Kontaktdaten: ICQ Website

25. Jan 2010, 23:01

Ich glaube wenn, dann müsstest du die funktion ändern die factory hervorruft.
Vielleicht hilft dir auch der Code aus dem OpenSource-Template weiter, dort kannste das dann alles selbst einfügen, ohne dass du in ner rex-datei rumpfuschen musst:

Code: Alles auswählen

<div id="avmenu">
<?php
// EXPLODE PATH
$PATH = explode("|",$this->getValue("path").$this->getValue("article_id")."|");
// GET CURRENTS
$path1 = $PATH[1];
$path2 = $PATH[2];
$path3 = $PATH[3];

$navbild = '<img class="navbild" src="files/css1/navbild.gif" />';

/* 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().$navbild.'</a>';
      }
      // 2nd level - no active link
      else {
         $nav .= '<li><a href="'.$lev1->getUrl().'">'.$lev1->getName().$navbild.'</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().$navbild.'</a>';
                  }
                  // 2nd level - no active link
                  else {
                     $nav .= '<li><a href="'.$lev2->getUrl().'">'.$lev2->getName().$navbild.'</a>';
                  }
                  
                  // 2nd level had categories? -> go on
                  $lev2Size = sizeof($lev2->getChildren());
   
                  if ($lev2->getId() == $path2) {
                     if ($lev2Size != "0") {
                        $nav .= '<ul class="nav3rd">
						';

                        // START 3rd level categories
                        foreach ($lev2->getChildren() as $lev3):
                           if ($lev3->isOnline(true)) {
                              // 3rd level - active link
                              if ($lev3->getId() == $path3) {
                                 $nav .= '<li class="active"><a class="current" href="'.$lev3->getUrl().'">'.$lev3->getName().$navbild.'</a> </li>';
                              }
                              // 3rd level - no active link
                              else {
                                 $nav .= '<li><a href="'.$lev3->getUrl().'">'.$lev3->getName().$navbild.'</a> </li>';
                              }
                           }
                        endforeach;
                        // END 3rd level categories
      
                        $nav .= '
						</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;
Ansehen kannste dir den code auf http://hodenteufel.de/Planet74/redaxo/index.php

Sie allerdings genauso aus wie factory, denke ich.

lg

Benutzeravatar
timo.huber
Beiträge: 305
Registriert: 22. Dez 2009, 13:26

26. Jan 2010, 09:47

Hallo,

es gibt noch eine Möglichkeit.

Und zwar kannst du für alle "Artikel" die in der Navi erscheinen sollen einfach eine Kategorie anlegen ;)

also
[kat] Kategorie 1
[kat] Kategorie 2
[kat] Kategorie 3 (aktiv)
-- [kat] Artikel 1
-- [kat] Artikel 2
[kat] Kategorie 4

Somit musst du nichts im Code ändern.
Da jede Kategorie ja zumindest den Startartikel hat, musst du nichteinmal darüber nachdenken.

Beachte aber auch die Nachteile, z.b. eine schwieriger auszuführende Artikelliste usw.

MFG

Zurück zu „Allgemeines [R4]“