[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
3 unabhängige Navigationen - 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/
Fokus
Beiträge: 7
Registriert: 11. Jun 2010, 08:54
Wohnort: Rauenberg
Kontaktdaten: Website

3 unabhängige Navigationen

26. Aug 2010, 14:12

Hallo Leute,
zuerst mal ein großes Kompliment an die Macher und Mitarbeiter von Redaxo.
Tolles CMS und eine sehr freundliche Community!

Habe folgendes Problem.
Brauche für eine Webseite 3 unabhängige Navigationen, unterschiedlich formatiert. Ich habe zwar im Forum schon Ähnliches gelesen, aber noch keine wirkliche Lösung gefunden. Man kann das wohl am besten über MetaInfos realisieren. Damit bin aber kaum vertraut. Verwende Redaxo 4.31.
Kann mir jemand weiterhelfen?

Danke und Grüße!
Christoph

69waterproof
Beiträge: 51
Registriert: 30. Okt 2009, 08:25
Kontaktdaten: Website

26. Aug 2010, 15:41

Hallo

Ist es das was du brauchst?

Code: Alles auswählen

<?php
$objNav = rex_navigation::factory();
$intCatId = 5;
$intDepth = 3;
$blnOpen = true;
$blnIgnoreOfflines = true;
echo '<div class=navistyle1>' . $objNav->get($intCatId, $intDepth, $blnOpen, $blnIgnoreOfflines) . '</div>';
?>
Dieser Code gibt das Menu (3 Stufen tief) der Kategorie 5 aus. Das kannst du nun für alle drei Kategorien machen, zum Beispiel mit unterschiedlichen CSS-Klassen.

Gruss
Adrian

Fokus
Beiträge: 7
Registriert: 11. Jun 2010, 08:54
Wohnort: Rauenberg
Kontaktdaten: Website

26. Aug 2010, 17:02

Hallo Adrian,
danke für die schnelle Antwort.

Es ist nicht das, was ich brauche/suche. Vielleicht fehlen auch noch ein paar Infos meinerseite.
Mit 3 unabhängigen Navis meine ich, das z.B. die Kategorien 1-5 (1=Home-5=Kontakt) als Navigation Oben, die Kategorien 6-10 (6=Hotel-10=Hochzeit) als Navigation Links, die Kategorien 11-15 (11=Buchung-15=Wetter) als Navigation Rechts ausgegeben werden. Es werden keine Subnavis gebraucht, alle Kategorien auf gleicher Ebene.
Vielleich habe ich auch einen groben Denkfehler drin und es ist doch einfacher zu lösen.

Grüße
Christoph

69waterproof
Beiträge: 51
Registriert: 30. Okt 2009, 08:25
Kontaktdaten: Website

26. Aug 2010, 17:13

Spannend.
Ich sehe im Moment nicht, wie bei mit der Klasse rex_navigation einzelne Kategorien separiert werden könnten.

Mögliche Lösung: Pack die zusammen gehörenden Kateogorien in jeweils eine Oberkategorie und gib die Menus mit dem oben erwähnten Code aus.

Gruss
Adrian
Azular Webdesign

Fokus
Beiträge: 7
Registriert: 11. Jun 2010, 08:54
Wohnort: Rauenberg
Kontaktdaten: Website

26. Aug 2010, 17:17

Hi,

ok. werd ich versuchen.
Danke dir,
Christoph

gupi
Beiträge: 286
Registriert: 20. Nov 2008, 13:49
Wohnort: Elsdorf/Rheinland

3. Sep 2010, 23:45

Versuchs mal damit:

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];
  $path4 = $PATH[4];
  $path5 = $PATH[5];

  // START 1st level categories 
  $nav1 .=  '<ul class="nav1">';
  $nav2 .=  '<ul class="nav2">';
  $nav3 .=  '<ul class="nav3">';
  $counter = 0;
  $boundery = 4;
  $step = 1;
  foreach (OOCategory::getRootCategories() as $lev1) {
    $counter++;
    if ($counter > $boundery) {
      $step++;
      $counter = 1;
    }
    switch ($step) {
      case 1:
      $navHeader = &$nav1;
      break;
      case 2:
      $navHeader = &$nav2;
      break;
      default:
      $navHeader = &$nav3;
    }
    if ($lev1->isOnline()){
      if ($lev1->getId() == $path1) {
        $navHeader .=  '<li class="active"><a class="current"  href="'.$lev1->getUrl().'">'.$lev1->getName().'</a></li>';
      }
      // 2nd level - no active link
      else {
        $navHeader .= '<li><a href="'.$lev1->getUrl().'">'.$lev1->getName().'</a></li>';
      }
      // 1st level had categories? -> go on
      $lev1Size = sizeof($lev1->getChildren());
      if ($lev1Size != "0"){
        // START 2nd level categories
        $navHeader .= '<ul class="nav'.$step.'_2">';
        foreach ($lev1->getChildren() as $lev2){
          if ($lev2->isOnline()){
          // 2nd level - active link
            if ($lev2->getId() == $path2) {
              $navHeader .= '<li class="active"><a class="current" href="'.$lev2->getUrl().'">'.$lev2->getName().'</a></li>';
            }
            // 2nd level - no active link
            else {
              $navHeader .= '<li><a href="'.$lev2->getUrl().'">'.$lev2->getName().'</a></li>';
            }
            // 2st level had categories? -> go on
            $lev2Size = sizeof($lev2->getChildren());
            if ($lev2Size != "0"){
              $navHeader .= '<ul class="nav'.$step.'_3">';
              foreach ($lev2->getChildren() as $lev3){
                if ($lev3->isOnline()){
                // 3rd level - active link
                  if ($lev3->getId() == $path3) {
                    $navHeader .= '<li class="active"><a class="current" href="'.$lev3->getUrl().'">'.$lev3->getName().'</a></li>';
                  }
                  // 3nd level - no active link
                  else {
                    $navHeader .= '<li><a href="'.$lev3->getUrl().'">'.$lev3->getName().'</a></li>';
                  }
                }
              }
              $navHeader .= "</ul>";
            } // END 3nd level categories
          }
        }
        $navHeader .= '</ul>';
      } // END 2nd level categories
    } 
    else {
      $counter--;
    }
  }
  $nav1 .= '</ul>';
  $nav2 .= '</ul>';
  $nav3 .= '</ul>';
  echo $nav1;
  echo $nav2;
  echo $nav3;
?>
Testhinweis:
Mach daraus ein Template, weis dieses einer Seite zu und ruf diese dann auf.

Mit der Variablen $boundery legst du die Anzahl der Menüeintäge pro Menü fest.

Viel Spass damit
Gunter
read the manual first

Fokus
Beiträge: 7
Registriert: 11. Jun 2010, 08:54
Wohnort: Rauenberg
Kontaktdaten: Website

4. Sep 2010, 17:07

hallo Gunter,

interessant, werd ich mal austesten.
Mein Problem der 3 Navis ist aber schon über Metadaten gelöst.

Trotzdem vielen Dank.
Christoph

fetuline
Beiträge: 6
Registriert: 1. Sep 2007, 10:30
Wohnort: S-H

9. Sep 2010, 18:00

Fokus hat geschrieben:Mein Problem der 3 Navis ist aber schon über Metadaten gelöst.
Kannst du mir verraten wie du das genau gemacht hast? Ich brauch 2 Navis und kann mit rex_navigation immer nur ab catID = 0 darstellen. Bei allen anderen wird nichts angezeigt. :cry:
--
Gruss Dirk

Benutzeravatar
Richard.Laing
Beiträge: 2105
Registriert: 28. Aug 2005, 00:55
Wohnort: Brühl / Rheinland
Kontaktdaten: Website

10. Sep 2010, 11:36

kinder kategorien kannst du so darstellen...

hauptnavi:

Code: Alles auswählen

<?php $rexnav = rex_navigation::factory(); echo $rexnav->get(0,1,FALSE,TRUE); ?>

Kinder der Kategorien:

Code: Alles auswählen

<?php $P = explode("|",$this->getValue("path").$this->getValue("article_id")."|"); $rexnav = rex_navigation::factory(); echo $rexnav->get($P[1],3,TRUE,TRUE); ?>

Rootartikel:

Code: Alles auswählen

<?php $articles = OOArticle::getRootArticles(true);
		$root_nav = '<ul>';
		foreach($articles as $article) {
		if ($this->getValue('article_id') == $article->getId())
		$root_nav .= '<li><a class="active" href="'.$article->getUrl().'">'.$article->getName().'</a></li>';
		else
		$root_nav .= '<li><a href="'.$article->getUrl().'">'.$article->getName().'</a></li>';
		}
		$root_nav .= '</ul>';
		print $root_nav;
?>
und hier noch ein tutorial dazu ;)
http://www.rexvideo.de/tutorials-redaxo ... ctory.html

gruß richy
REXvideo Videotutorials für Redaxo www.REXvideo.de
Webseite www.on-laing.de smokezig.de www.smokezig.de

fetuline
Beiträge: 6
Registriert: 1. Sep 2007, 10:30
Wohnort: S-H

10. Sep 2010, 13:20

Jau, das hilft, DANKE! :D
--
Gruss Dirk

Zurück zu „Allgemeines [R4]“