[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
rex_navigation::factory() - Seite 4 - 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/
Benutzeravatar
DNDDE
Beiträge: 87
Registriert: 23. Aug 2006, 09:57

28. Mai 2009, 13:28

HI Richard.Laing,

danke Dir für deine Hilfe. Ich habs jetzt soweit auch hinbekommen. Mein Problem ist jetzt nur noch das neudefinieren des CSS-Files. Da die Zuweisung unterschiedlicher Designelemente für UL und LI noch nicht klappt.

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

28. Mai 2009, 13:40

hi
bitte etwas genauer?

oder wo man mal schauen kann.
über css kannst du das ganze anhamnd von:

ul
ul li
ul li a

ul li ul
ul li ul li
ul li ul li a

usw.. ansprechen

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

decpoint
Beiträge: 67
Registriert: 4. Jan 2007, 04:25
Wohnort: Bad Bellingen
Kontaktdaten: ICQ Website

Start-Artikel nicht doppelt anzeigen in der Breadcrumb

2. Jun 2009, 12:50

Hallo zusammen,

habe meine erste Seite mit Redaxo 4.2.1 gemacht und bin soweit echt zufrieden.

Leider habe ich ein kleines Problem mit der Breadcrumb:
Habe das ganze etwas angepasst, nur leider wird der Start-Artikel doppelt angezeigt, obwohl er das ja nicht sollte. Hat jemand das gleiche Problem oder kann mir sagen warum?
Das Ganze könnt Ihr Euch unter http://www.abenteuer-reisen-mexiko.de anschauen.

Bin um jeden Tipp dankbar, weil dann ist die Seite perfekt ;-)


Greetz, Karl
Das Licht am Ende des Tunnels, ist immer das, des entgegen kommenden Zuges :-O

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

2. Jun 2009, 12:54

hi decpoint

poste mal bitte deinen Breadcrumb.
gruß richy
REXvideo Videotutorials für Redaxo www.REXvideo.de
Webseite www.on-laing.de smokezig.de www.smokezig.de

decpoint
Beiträge: 67
Registriert: 4. Jan 2007, 04:25
Wohnort: Bad Bellingen
Kontaktdaten: ICQ Website

2. Jun 2009, 13:04

Also hier das Template:

Code: Alles auswählen

<?php

// ---------- BREADCRUMB

// Beginne in der Wurzelkategorie
// 1 Ebene Tief
// Nicht aufklappen (hier egal da nur 1 Ebene)
// Offline ausblenden 

$category_id = 0;
$includeCurrent = TRUE;

// navigation generator erstellen
$nav = rex_navigation::factory();

echo '<div id="breadcrumb">';
if ($REX['CUR_CLANG'] == 1)
{
  echo '<p>You are here:</p>'. $nav->getBreadcrumb('abenteuer-reisen-mexiko.de', $includeCurrent, $category_id);
}
else
{
  echo '<p>Sie befinden sich hier:</p>'. $nav->getBreadcrumb('abenteuer-reisen-mexiko.de', $includeCurrent, $category_id);
}
echo '</div>';
?>
und hier die etwas umgebaute class.rex_navigation.inc.php:

Code: Alles auswählen

<?php

/**
 * Klasse zum Erstellen von Navigationen, v0.1
 *
 * @package redaxo4
 * @version svn:$Id$
 */

/*
 * Beispiel:
 *
 * UL, LI Navigation von der Rootebene aus,
 * 2 Ebenen durchgehen, Alle unternavis offen
 * und offline categorien nicht beachten
 *
 * Navigation:
 * 
 * $nav = rex_navigation::factory();
 * $nav->setClasses(array('lev1', 'lev2', 'lev3'));
 * echo $nav->get(0,2,TRUE,TRUE);
 *
 * Sitemap:
 *
 * $nav = rex_navigation::factory();
 * $nav->show(0,-1,TRUE,TRUE);
 * 
 * Breadcrump:
 * 
 * $nav = rex_navigation::factory();
 * $nav->showBreadcrump(true);
 */

class rex_navigation
{
	var $depth; // Wieviele Ebene tief, ab der Startebene
	var $open; // alles aufgeklappt, z.b. Sitemap
	var $ignore_offlines;
	var $path = array();
	var $classes = array();

	var $current_article_id = -1; // Aktueller Artikel
	var $current_category_id = -1; // Aktuelle Katgorie

	/*private*/ function rex_navigation()
	{
	}

  /*public*/ function factory()
  {
    static $class = null;

    if(!$class)
    {
      // ----- EXTENSION POINT
      $class = rex_register_extension_point('REX_NAVI_CLASSNAME', 'rex_navigation');
    }

    return new $class();
  }
  
  /**
   * Generiert eine Navigation
   * 
   * @param $category_id Id der Wurzelkategorie
   * @param $depth Anzahl der Ebenen die angezeigt werden sollen
   * @param $open True, wenn nur Elemente der aktiven Kategorie angezeigt werden sollen, sonst FALSE
   * @param $ignore_offlines FALSE, wenn offline Elemente angezeigt werden, sonst TRUE
   */
	/*public*/ function get($category_id = 0,$depth = 3,$open = FALSE, $ignore_offlines = FALSE)
	{
    if(!$this->_setActivePath()) return FALSE;
    
	  $this->depth = $depth;
    $this->open = $open;
    $this->ignore_offlines = $ignore_offlines;
	  
		return $this->_getNavigation($category_id,$this->ignore_offlines);
	}

  /**
   * @see get()
   */
	/*public*/ function show($category_id = 0,$depth = 3,$open = FALSE, $ignore_offlines = FALSE)
	{
		echo $this->get($category_id, $depth, $open, $ignore_offlines);
	}
	
  /**
   * Generiert eine Breadcrumb-Navigation
   * 
   * @param $startPageLabel Label der Startseite, falls FALSE keine Start-Page anzeigen
   * @param $includeCurrent True wenn der aktuelle Artikel enthalten sein soll, sonst FALSE
   * @param $category_id Id der Wurzelkategorie
   */
	/*public*/ function getBreadcrumb($startPageLabel, $includeCurrent = FALSE, $category_id = 0)
	{
	  if(!$this->_setActivePath()) return FALSE;
	  
	  global $REX;
    
	  $path = $this->path;
            
    $i = 1;
    $lis = '';
    
    if($startPageLabel)
    {
      $lis .= '<li class="rex-lvl'. $i .'"><a href="'. rex_getUrl($REX['START_ARTICLE_ID']) .'">'. htmlspecialchars($startPageLabel) .'</a></li>';
      $i++;

      // StartArticle nicht doppelt anzeigen
      if(isset($path[0]) && $path[0] == $REX['START_ARTICLE_ID'])
      {
        unset($path[0]);
      }
    }
    
    foreach($path as $pathItem)
    {
      $cat = OOCategory::getCategoryById($pathItem);
      $lis .= '<li class="rex-lvl'. $i .'"><a href="'. $cat->getUrl() .'">'. htmlspecialchars($cat->getName()) .'</a></li>';
      $i++;
    }
    
    if($includeCurrent)
    {
      if($art = OOArticle::getArticleById($this->current_article_id))
        if(!$art->isStartpage())
        {
          $lis .= '<li class="rex-lvl'. $i .'"><p>>> </p><a href="'. $art->getUrl() .'">'. htmlspecialchars($art->getName()) .'</a></li>';
        }else
        {
        	$cat = OOCategory::getCategoryById($this->current_article_id);
          $lis .= '<li class="rex-lvl'. $i .'"><p>>> </p><a href="'. $cat->getUrl() .'">'. htmlspecialchars($cat->getName()) .'</a></li>';
        }
    }
    
    return '<ul class="rex-breadcrumb">'. $lis .'</ul>';
	}
	
	/**
	 * @see getBreadcrumb()
	 */
  /*public*/ function showBreadcrumb($includeCurrent = FALSE, $category_id = 0)
  {
    echo $this->getBreadcrumb($includeCurrent, $category_id);
  }
  
	/*public*/ function setClasses($classes)
	{
	  $this->classes = $classes;
	}

	/*private*/ function _setActivePath()
	{
		global $REX;

		$article_id = $REX["ARTICLE_ID"];
		if($OOArt = OOArticle::getArticleById($article_id))
		{
		  $path = trim($OOArt->getValue("path"), '|');
		  
		  $this->path = array();
		  if($path != "")
			 $this->path = explode("|",$path);
			 
      $this->current_article_id = $article_id;
			$this->current_category_id = $OOArt->getCategoryId();
			return TRUE;
		}
		
		return FALSE;
	}

	/*protected*/ function _getNavigation($category_id,$ignore_offlines = TRUE)
	{
	  static $depth = 0;
	  
    if($category_id < 1)
	  	$nav_obj = OOCategory::getRootCategories($ignore_offlines);
		else
	  	$nav_obj = OOCategory::getChildrenById($category_id, $ignore_offlines);

  	$return = "";

		if(count($nav_obj)>0)
		  $return .= '<ul class="rex-navi'. ($depth+1) .'">';

		foreach($nav_obj as $nav)
		{
		  $liClass = '';
		  $linkClass = '';
		  
		  // classes abhaengig vom pfad
			if($nav->getId() == $this->current_category_id)
			{
			  $liClass .= ' rex-current';
			  $linkClass .= ' rex-current';
			}
			elseif (in_array($nav->getId(),$this->path))
			{
        $liClass .= ' rex-active';
			  $linkClass .= ' rex-active';
			}
			else
			{
        $liClass .= ' rex-normal';
			}
			
      // classes abhaengig vom level
      if(isset($this->classes[$depth]))
        $liClass .= ' '. $this->classes[$depth];
      
			$liClass   = $liClass   == '' ? '' : ' class="'. ltrim($liClass) .'"';
			$linkClass = $linkClass == '' ? '' : ' class="'. ltrim($linkClass) .'"';
			  
      $return .= '<li id="rex-article-'. $nav->getId() .'"'. $liClass .'>';
			$return .= '<a'. $linkClass .' href="'.$nav->getUrl().'">'.htmlspecialchars($nav->getName()).'</a>';

			$depth++;
			if(($this->open || 
			    $nav->getId() == $this->current_category_id || 
			    in_array($nav->getId(),$this->path))
         && ($this->depth > $depth || $this->depth < 0))
			{
				$return .= $this->_getNavigation($nav->getId(),$ignore_offlines);
			}
			$depth--;

			$return .= '</li>';
		}

		if(count($nav_obj)>0)
	  	$return .= '</ul>';

		return $return;
	}
}
Greetz, Karl
Das Licht am Ende des Tunnels, ist immer das, des entgegen kommenden Zuges :-O

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

2. Jun 2009, 13:18

hi
wenn du das meinst:

Sie befinden sich hier:

Code: Alles auswählen

abenteuer-reisen-mexiko.de >> Startseite
das hast du ja im code reingeschrieben:

Code: Alles auswählen

  echo '<p>Sie befinden sich hier:</p>'. $nav->getBreadcrumb('abenteuer-reisen-mexiko.de', $includeCurrent, $category_id);
} 
dort kannst du es ja rausnehmen.

z.B.: so:

Code: Alles auswählen

  echo '<p>Sie befinden sich hier:</p>'. $nav->getBreadcrumb('', $includeCurrent, $category_id);
} 
oder habe ich dich falsch verstanden?
gruß richy
REXvideo Videotutorials für Redaxo www.REXvideo.de
Webseite www.on-laing.de smokezig.de www.smokezig.de

decpoint
Beiträge: 67
Registriert: 4. Jan 2007, 04:25
Wohnort: Bad Bellingen
Kontaktdaten: ICQ Website

2. Jun 2009, 13:38

Hallo,

bisschen falsch verstanden ;-)
Das "abenteuer-reisen-mexiko.de" habe ist anstatt "Startseite" reingeschrieben.

Der Fehler besteht nur auf der tatsächlichen Startseite.
Früher (vor meinen Änderungen) stand in der Breadcrumb auf der Startseit immer "Sie befinden sich hier: Startseite > Startseite
Nach meinen Änderungen steht jetzt "Sie befinden sich hier: abenteuer-reisen-mexiko.de > Startseite
Aber ich will das letzte Startseite raus haben.

In allen anderen Seiten ist es ja OK.
In der navigation.php steht auch ein Code dafür, aber es scheint, dass es nicht funktioniert.

Im "alten" Redaxo 4.1 und 3 war es standardmäßig so, dass auf der Startseite der letzte Punkt verschwand.
Siehe z.B. http://www.restaurant-leonardo.eu

Greetz, Karl
Das Licht am Ende des Tunnels, ist immer das, des entgegen kommenden Zuges :-O

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

2. Jun 2009, 17:31

hi
hast du das mal probiert?
http://www.redaxo.de/168-0-templatedeta ... plate_id=6

ungetestet, aber sollte eigendlich auch in redaxo 4.2 gehen. man muß ja nicht die neue navi verwenden, habe derzeit leider nciht die zeit zum testen.

template einbinden mit:

Code: Alles auswählen

$navTemplate = new rex_template(TEMPLATE_ID); include $navTemplate->getFile();
gruß richy
REXvideo Videotutorials für Redaxo www.REXvideo.de
Webseite www.on-laing.de smokezig.de www.smokezig.de

Benutzeravatar
gseilheimer
Beiträge: 78
Registriert: 3. Jan 2008, 01:31

How To: if("" == $nav_sub->get(...)) REX_ARTICL

8. Jun 2009, 12:03

Hallo liebe Community,

kann mir bitte jemand beantworten wie ich das obige machen kann?
// ---------- SUBMENU

// Beginne in der Wurzelkategorie
// 3 Ebenen Tief
// Aufklappen (hier egal da nur 1 Ebene)
// Offline ausblenden

// navigation generator erstellen
$nav_sub = rex_navigation::factory();

$category = explode("|",$this->getValue("path").$this->getValue("article_id")."|");
$depth = 3;
$open = FALSE;
$ignore_offlines = TRUE;

if ("" == $nav_sub->get($category[1], $depth, $open, $ignore_offlines))
{
echo "REX_ARTICLE[2]";
}
else
{
echo $nav_sub->get($category[1], $depth, $open, $ignore_offlines);
}
Ich habe das im NAV-Template und im CONTENT-Template versucht, leider ohne Artikelausgabe, wenn keine Untermenues existieren...?

Danke für einen kurzen Tipp.

Gruß, Gilbert

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

8. Jun 2009, 12:17

hi gilbert,
puh ich lösch das mal lieber ;(
war ein versuch...

gruß richy
Zuletzt geändert von Richard.Laing am 8. Jun 2009, 12:52, insgesamt 1-mal geändert.
REXvideo Videotutorials für Redaxo www.REXvideo.de
Webseite www.on-laing.de smokezig.de www.smokezig.de

Benutzeravatar
Gregor.Harlan
Entwickler
Beiträge: 1130
Registriert: 4. Jun 2007, 10:35
Wohnort: Frankfurt am Main

Re: How To: if("" == $nav_sub->get(...)) REX_AR

8. Jun 2009, 12:36

Hallo Gilbert,

probier es mal so:

Code: Alles auswählen

// ---------- SUBMENU 

// Beginne in der Wurzelkategorie 
// 3 Ebenen Tief 
// Aufklappen (hier egal da nur 1 Ebene) 
// Offline ausblenden 

   // navigation generator erstellen 
   $nav_sub = rex_navigation::factory(); 
    
   $category = explode("|",$this->getValue("path").$this->getValue("article_id")."|"); 
   $depth = 3; 
   $open = FALSE; 
   $ignore_offlines = TRUE; 
   
   if ("" == $nav_sub->get($category[1], $depth, $open, $ignore_offlines))
   {
   		$artikel_2 = new rex_article;
   		$artikel_2->setCLang($REX['CUR_CLANG']);
   		$artikel_2->setArticleID(2);
   		echo $article_2->getArticle();
   }
   else
   { 
   		echo $nav_sub->get($category[1], $depth, $open, $ignore_offlines); 
   }
Gruß, Gregor

Benutzeravatar
ralf.schlott
Beiträge: 625
Registriert: 5. Dez 2007, 21:22
Wohnort: Hamburch
Kontaktdaten: Website

Breadcrumb

9. Jun 2009, 17:12

Hier war ja schon die Sprache vom Breadcrumb. Ich finde der Funktioniert ganz gut.

Aber wie bekommt man es hin, dass dort wieder Trennzeichen wie '>>' oder ähnliches zwischen den einzelnen Elementen sind.
Über den Listenstyle wollte ich nicht unbedingt gehen...

Gruss
Ralf

Benutzeravatar
ralf.schlott
Beiträge: 625
Registriert: 5. Dez 2007, 21:22
Wohnort: Hamburch
Kontaktdaten: Website

19. Jun 2009, 18:50

Habe mich geirrt, der Listenstyle ist doch klasse. Alles in allem eine gute Navi! Für Breadcrumb, Navi und (Sitemap?)!

Benutzeravatar
katharina
Beiträge: 61
Registriert: 28. Jan 2006, 15:08

26. Jun 2009, 11:38

Hallo!

Gibt es bei der factory auch die Möglichkeit einzustellen, ob die aktuelle Seite als Link ausgegeben wird?
Bsp.:
Punkt 1
-Punkt 1.1
-Punkt 1.2
Punkt 2

Wenn ich auf Punkt 1 bin, müßte der Menüpunkt nur ein Listenpunkt ohne Link sein (am besten stattdessen als span). Wenn ich auf Punkt 1.1 bin ebenso, dann aber Punkt 1 natürlich wieder als Link.

Noch eine Frage:
Automatisches Zufügen der Klasse first bzw. last - ist das möglich?

Danke!
Katharina

Benutzeravatar
Thomas.Blum
Entwickler
Beiträge: 5063
Registriert: 24. Aug 2004, 22:11
Wohnort: Dresden
Kontaktdaten: Website

26. Jun 2009, 13:00

Hej Katharina,

ohne Anpassungen an der Klasse selbst ist dies nicht möglich. Dafür würde ich ein eigenes Naviscript schreiben.

vg Thomas

killray
Beiträge: 8
Registriert: 12. Jul 2009, 23:58
Kontaktdaten: ICQ

20. Jul 2009, 13:24

Hi, kann man die rex_factory eventuell so umbauen, dass die <li> tags eine vom Artikel unabhängige ID bekommen (also z.B. id1 id 5 in den Unterkategorien)?

Möchte nämlich immer 3 Links einer Subnavigation zusammenfassen und eine formatierte Liste draus machen, also ungefähr so:

Subnavi enthält 7 Punkte:

ul 1
li
li
li

ul 2
li
li
li

ul 3
li

Und dann jeweils formatieren mit einem eigenen CSS. Kann wie gesagt alternativ auch eine einzelne Liste sein, dann müssen die li Tags aber eine jeweils eindeutig zuordnungsfähige ID haben, die nicht auf den Artikeln beruhen soll, da ich ja sonst 100 verschiedene CSS Definitionen dafür brauche.

bastians
Beiträge: 104
Registriert: 9. Mai 2008, 17:45
Wohnort: Stuttgart
Kontaktdaten: Website

19. Okt 2009, 22:54

Hallo,

in diesem Thread wurde die "Auslagerung" der Subnavigation an eine andere Stelle der Seite stark diskutiert. Wäre es für die Fortentwicklung rex_navigation::factory nicht interessant, die Get-Methode um einen weiteren Punkt zu erweitern: get(1,2,3,4,5)

1 = Id der Wurzelkategorie
2 = Anzahl der Ebenen die angezeigt werden sollen
3 = True, wenn nur Elemente der aktiven Kategorie angezeigt werden sollen, sonst FALSE
4 = FALSE, wenn offline Elemente angezeigt werden, sonst TRUE
5 = Ab welcher Ebene soll Navigation beginnen

Und je nach Ebene müsste auch die Klasse angepasst werden (Ebene 1: rex-navi1, Ebene 2: rex-navi2,...)

Kann man das in die Roadmap mit aufnehmen?

Und eventuell hat jemand noch eine Idee, wie man die PHP-Schnipsel, die hier für Ausgabe der 2. Ebene gepostet wurden so umschreiben kann, dass die Klasse sich anpasst. Zwar kann man es über CSS lösen, aber ich fände es über die Klassen sauberer.
Grüße, Bastian

Benutzeravatar
Gregor.Harlan
Entwickler
Beiträge: 1130
Registriert: 4. Jun 2007, 10:35
Wohnort: Frankfurt am Main

19. Okt 2009, 23:40

Hallo Bastian,

entspricht dein 5. Parameter nicht dem Ersten ("Id der Wurzelkategorie")?

Gruß, Gregor
Friends Of REDAXO: Gemeinsame REDAXO-Entwicklung!

bastians
Beiträge: 104
Registriert: 9. Mai 2008, 17:45
Wohnort: Stuttgart
Kontaktdaten: Website

20. Okt 2009, 14:24

Gregor.Harlan hat geschrieben:Hallo Bastian,

entspricht dein 5. Parameter nicht dem Ersten ("Id der Wurzelkategorie")?

Gruß, Gregor
Hallo Gregor,

ich verstehe das so, dass man damit eine bestimmte Kategorie ausgeben kann. Aber nicht allgemein die zweite Ebene. Oder habe ich das falsch verstanden?
Grüße, Bastian

Benutzeravatar
Gregor.Harlan
Entwickler
Beiträge: 1130
Registriert: 4. Jun 2007, 10:35
Wohnort: Frankfurt am Main

20. Okt 2009, 22:05

Möchtest du die gesamte 2. Ebene auf einmal erhalten, also alle Kinder der Hauptkategorien, oder nur die Kinder der aktuellen Hauptkategorie? Falls zweiteres, dann ist das mittels des ersten Parameters möglich.

Gruß, Gregor
Friends Of REDAXO: Gemeinsame REDAXO-Entwicklung!

bastians
Beiträge: 104
Registriert: 9. Mai 2008, 17:45
Wohnort: Stuttgart
Kontaktdaten: Website

20. Okt 2009, 22:17

Nun, ich möchte die 2. Ebene der aktiven Hauptkategorie an einer anderen Stelle ausgeben. In diesem Thread wurde ja schon Code gepostet, aber da passen die CSS-Klassen nicht automatisch an.
Grüße, Bastian

beyben
Beiträge: 367
Registriert: 30. Nov 2006, 14:04

5. Jan 2010, 15:16

na hi,

und wie laeuft die sache jetzt, wenn ich in einer zeile die hauptnavi habe, darunter in einer zeile die subnavi1 und darunter die subnavi2? ich habe es so versucht:

Code: Alles auswählen

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

$cat = OOCategory::getCategoryById($this->getValue('category_id')); 
$tree = $cat->getParentTree(); 
$id = $tree[1]->getId(); 
$subnav = rex_navigation::factory();
$subnav->setClasses(array('sub1', 'sub2'));
if ($sub1 != "0") {
echo '<div class="sub1">';
echo $subnav->get($id,1,FALSE,TRUE);
echo '</div>';
}
else {}

$cat = OOCategory::getCategoryById($this->getValue('category_id')); 
$tree = $cat->getParentTree(); 
$id = $tree[2]->getId(); 
$subnav = rex_navigation::factory();
$subnav->setClasses(array('sub1', 'sub2'));
if ($sub1 != "0") {
echo '<div class="sub2">';
echo $subnav->get($id,1,FALSE,TRUE);
echo '</div>';}
else {}
?>
das dumme ist, das er mir ab der navi nix mehr anzeigt, soll heissen, der content ist weg. klicke ich auf einen punkt mit subnavi1 ohne subnavi2, ist der content wieder da. ist aber eine subnavi2 vorhanden, ist der content weg. klickt man dann einen subnavi2 punkt an, isser wieder da. hat einer ne ahnung warum, oder besser, wie kann ich die sub und subsub navi getrennt von der navi anzeigen lassen?

ich benutze redaxo 4.2.1 und hab den code als template angelegt und dann via REX_TEMPLATE[die id] eingefuegt.

dank euch
beyben

bastians
Beiträge: 104
Registriert: 9. Mai 2008, 17:45
Wohnort: Stuttgart
Kontaktdaten: Website

5. Jan 2010, 15:33

Hi, schau mal hier. Hatte mit dem Code, den du gepostest hast, das selbe Problem.
Der Code aus dem Wiki funktioniert bei mir einwandfrei.
Grüße, Bastian

beyben
Beiträge: 367
Registriert: 30. Nov 2006, 14:04

5. Jan 2010, 15:50

na hi,

das hatte ich schon probiert. er gibt mir dann zweimal die mainnavi aus, da ich die rootKategorien in footer-navi und main-navi aufgeteilt habe. die main -navi ist also schon eine 'subnavi'. der code oben geht ja auch, allerdings bricht er halt direkt ab, das verstehe ich nicht. ich brauche aber die navi komplett einzeln:

1. zeile:
main1 main2 main3 main4
2.zeile:
main4.1 main4.2 main4.3
3. zeile:
main4.3.1 main4.3.2

damit habe ichhalt gerade meine schwierigkeiten...

beyben[/b]

bastians
Beiträge: 104
Registriert: 9. Mai 2008, 17:45
Wohnort: Stuttgart
Kontaktdaten: Website

5. Jan 2010, 19:45

beyben hat geschrieben:na hi,

das hatte ich schon probiert. er gibt mir dann zweimal die mainnavi aus, da ich die rootKategorien in footer-navi und main-navi aufgeteilt habe. die main -navi ist also schon eine 'subnavi'. der code oben geht ja auch, allerdings bricht er halt direkt ab, das verstehe ich nicht. ich brauche aber die navi komplett einzeln:

1. zeile:
main1 main2 main3 main4
2.zeile:
main4.1 main4.2 main4.3
3. zeile:
main4.3.1 main4.3.2

damit habe ichhalt gerade meine schwierigkeiten...

beyben[/b]
Hast du denn aus dem Code-Beispiel im Wiki die Kategoriezahl angepasst?

Eventuell kannst du deine Struktur nochmals ändern. Packe alles in die Root-Kategorie, auch den Footer-Ordner. Letzteren makrierst du dann als offline und rufst ihn via rex_navigation::factory auf, indem du direkt die Katgeorie ansprichst. Dort dann natürlich auswählen, dass offline-Artikel angezeigt werden sollen.

Beispiel, angenommen Footer-Ordner hat Kategorie 6:

Code: Alles auswählen

$nav = rex_navigation::factory();
$nav->setClasses(array('lev1', 'lev2', 'lev3'));
echo $nav->get(6,1,FALSE,TRUE);
Grüße, Bastian

Zurück zu „Allgemeines [R4]“