[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Wie unterdrücke ich den letzten Trenner in der Navigation? - 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/
medienarbeiter
Beiträge: 78
Registriert: 18. Apr 2006, 17:32

Wie unterdrücke ich den letzten Trenner in der Navigation?

16. Mär 2007, 14:47

Hallo,
ich stelle mit dem folgenden Code die zweite Ebene meiner Navigation dar, wobei die einzelnen Einträge durch "|" getrennt werden sollen. Sicher nicht optimal, aber es geht.

Code: Alles auswählen

<?php
					$path = explode( '|', $this->getValue("path").$this->getValue("article_id"));

					$path1 = $path[1];
					$path2 = $path[2];
					$path3 = $path[3];


foreach (OOCategory::getRootCategories() as $lev1):
	if($lev1->isOnline()):
		echo '';
		if ($lev1->getId() == $path1) :
			$lev1Size = sizeof($lev1->getChildren());
 
			if($lev1Size != "0"):
				foreach ($lev1->getChildren() as $lev2):
					if ($lev2->isOnline()):
						echo '<a href="'.$lev2->getUrl().'" class="subnav">'.$lev2->getName().' | </a>';
					endif;
				endforeach;
			endif;
		endif;
	endif;
endforeach;
?>
Jedoch habe ich ein "kosmetisches" Problem mit dem folgenden Abschnitt:

Code: Alles auswählen

<a href="'.$lev2->getUrl().'" class="subnav">'.$lev2->getName().' | </a>
Und zwar führt dieser dazu, daß auch hinter dem letzten Eintrag ein "|" erscheint. Das sieht natürlich nicht schön aus. Daher meine Frage: Wie kann ich das letzte "|" unterdrücken bzw. vermeiden, daß es überhaupt erzeugt wird?

Wie stets sehr dankbar für Tipps und Hinweise
Georg

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

16. Mär 2007, 16:31

Hej,

es gibt mehere Methoden:

Code: Alles auswählen

<?php
               $path = explode( '|', $this->getValue("path").$this->getValue("article_id"));

               $path1 = $path[1];
               $path2 = $path[2];
               $path3 = $path[3];


foreach (OOCategory::getRootCategories() as $lev1):
   if($lev1->isOnline()):
      echo '';
      if ($lev1->getId() == $path1) :
         $lev1Size = sizeof($lev1->getChildren());
 
         if($lev1Size != "0"):
            foreach ($lev1->getChildren() as $lev2):
               if ($lev2->isOnline()):
                  $navi .= '<a href="'.$lev2->getUrl().'" class="subnav">'.$lev2->getName().' | </a>';
               endif;
            endforeach;
            $navi = substr($navi, 0, -7).'</a>';
         endif;
      endif;
   endif;
endforeach;
print $navi;
?> 
vg Thomas

medienarbeiter
Beiträge: 78
Registriert: 18. Apr 2006, 17:32

16. Mär 2007, 16:55

Hej! Super! 1000 Dank! Georg

melody
Beiträge: 70
Registriert: 17. Sep 2007, 08:49

20. Sep 2007, 07:42

Ich habe eine "navigation - horizontal - vertical" Template und würde auch gerne den letzten Trenner unterdrücken (nur bei der horizontale nav.), nun ich habs schon versucht leider ohne Erfolg.

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


/* START 1st level categories */
$navHeader .= '<ul class="nav1st">';
foreach (OOCategory::getRootCategories() as $lev1) {
		
	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">';
			


			// START 2nd level categories 
			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>';
						$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;


?>
Bin für jeden Hinweis dankbar!

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

20. Sep 2007, 09:34

Hej,

suche

Code: Alles auswählen

$navHeader .= '</ul>'; 
ersetze

Code: Alles auswählen

$navHeader = substr($navHeader, 0, -8).'</li>'; 
$navHeader .= '</ul>'; 
vg Thomas

melody
Beiträge: 70
Registriert: 17. Sep 2007, 08:49

20. Sep 2007, 21:24

Dankeschön Thomas! Du hast mir den Tag gerettet.

Gruß, Melody

Zurück zu „Allgemeines [R3]“