[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Navigation mit festen IDs - 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/
Wittrock
Beiträge: 344
Registriert: 25. Mär 2006, 00:47
Wohnort: Löhne
Kontaktdaten: Website

Navigation mit festen IDs

27. Sep 2006, 22:53

Hallo,

ich versuche verzweifel in das "3 Ebenen / Liste mit li-Tags" Template feste IDs für jeden Link in der Horizontalen Navi einzubauen, damit ich jedem link per CSS ein eigenes Bild zuweisen kann.

Habe schon im Forum gesucht, ist aber nichts dabei was mir weiterhilft.

Kann mir hier evtl. jemand weiterhelfen.

Was ich brauche ist ein Template mit der 1ten Ebene als Horizontales Menue und den genannten festen IDs, die 2te und 3te Ebene sollen Vertikal sein.

Danke Ralf

beate
Beiträge: 134
Registriert: 14. Apr 2006, 17:15

27. Sep 2006, 22:57

Schau mal, so in etwa, das ist jetzt die 2. Ebene, und $navcount1 ist der Counter der ersten Ebene.

Code: Alles auswählen

$navcount2 = 0;
$navLeftCol .= "\n".'<ul class="nav2nd">'."\n";

// START 2nd level categories 
foreach ($lev1->getChildren() as $lev2):
						
				if ($lev2->isOnline()):
                                       $navcount2 ++;	
				        // 2nd level - active link
					if ($lev2->getId() == $path2) {
						$navLeftCol .= "\t".'<li id="nav0'.$navcount1.'_'.$navcount2.'" class="active"><a class="current" href="'.$lev2->getUrl().'"><span>'.$lev2->getName().'</span></a></li>'."\n";
					}
					// 2nd level - no active link
					else {
						$navLeftCol .= "\t".'<li id="nav0'.$navcount1.'_'.$navcount2.'"><a href="'.$lev2->getUrl().'"><span>'.$lev2->getName().'</span></a></li>'."\n";
					}

Wittrock
Beiträge: 344
Registriert: 25. Mär 2006, 00:47
Wohnort: Löhne
Kontaktdaten: Website

27. Sep 2006, 23:26

Danke für die schnelle Nachricht, aber ich brauche nur die erste Ebene als feste IDs, den Rest wollte ich erst einmal normal lassen und der Code meine ersten Ebene ist komplett anderst, deshalb weiß ich leider nicht wie ich das einbauen muss !

Code meiner 1ten Ebene:

Code: Alles auswählen

// GET CURRENTS
$path1 = $PATH[1];
$path2 = $PATH[2];
$path3 = $PATH[3];

// Anpassung um einzelne Userbereiche zu ermöglichen
//--------------------------------------------------
$user_typ = 0;
if ($FORM['USR_TYP'] != 0) {
	$user_typ = $FORM['USR_TYP'];
}
//--------------------------------------------------
/* START 1st level categories */
$navHeader .= '<ul class="nav1st">';
foreach (OOCategory::getRootCategories() as $lev1) {
	// Anpassung um einzelne Userbereiche zu ermöglichen
	//--------------------------------------------------
	if ($lev1->getTypeID()==1 || $user_typ == $lev1->getTypeId()) {
	//--------------------------------------------------
   		if ($lev1->isOnline(true)):
      		if ($lev1->getId() == $path1) {
         		$navHeader .= '<li class="active"><a class="current" href="'.$lev1->getUrl().'">'.$lev1->getName().'</a>';
      		}
      		// 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">      <div id="name3"><a href="'.$lev1->getUrl().'">'.$lev1->getName().'</a></div>    '        ;
Danke für die Hilfe

Gruß Ralf

Wittrock
Beiträge: 344
Registriert: 25. Mär 2006, 00:47
Wohnort: Löhne
Kontaktdaten: Website

28. Sep 2006, 12:52

Hallo,

ich habe es jetzt hinbekommen, das die bei der 1ten Ebene der Link mit einer festen ID versehen ist.
Nur habe ich noch folgendes Problem, das nur ein Bild bei der gerade Aktiven Menuepunkt angezeigt wird, die nicht Aktiven Menuepunkte werden ohne Bild angezeigt.

Wo ist hier im Code noch ein Fehler?

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

// Anpassung um einzelne Userbereiche zu ermöglichen
//--------------------------------------------------
$user_typ = 0;
if ($FORM['USR_TYP'] != 0) {
	$user_typ = $FORM['USR_TYP'];
}
//--------------------------------------------------
/* START 1st level categories */


$navcount2 = 0; 

$navHeader .= '<ul class="nav1st">';
foreach (OOCategory::getRootCategories() as $lev1) {
	// Anpassung um einzelne Userbereiche zu ermöglichen
	//--------------------------------------------------
	if ($lev1->getTypeID()==1 || $user_typ == $lev1->getTypeId()) {
	//--------------------------------------------------
   		if ($lev1->isOnline(true)):

$navcount1 ++;


      		if ($lev1->getId() == $path1) {
         		$navHeader .= '<li id="nav0'.$navcount1.'_'.$navcount2.'" class="active"><a class="current" href="'.$lev1->getUrl().'"><span>'.$lev1->getName().'</span></a>';
      		}
      		// 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">      <div id="name3"><a href="'.$lev1->getUrl().'">'.$lev1->getName().'</a></div>    '        ;

            		// START 2nd level categories
            		foreach ($lev1->getChildren() as $lev2):
               			if ($lev2->isOnline(true)) {
                  		// 2nd level - active link
                  		if ($lev2->getId() == $path2) {
                     		$navLeftCol .= '<li class="active"><a class="current" href="'.$lev2->getUrl().'">'.$lev2->getName().'</a>';
                  		}
                  		// 2nd level - no active link
                  		else {
                     		$navLeftCol .= '<li><a href="'.$lev2->getUrl().'">'.$lev2->getName().'</a>';
                  		}

                  		// 2nd level had categories? -> go on
                  		$lev2Size = sizeof($lev2->getChildren());



                  		if ($lev2->getId() == $path2) {
                     		if ($lev2Size != "0") {
                        		$navLeftCol .= '<ul class="nav3rd">';

                        		// START 3rd level categories
								foreach ($lev2->getChildren() as $lev3):
                           			if ($lev3->isOnline(true)) {
                              		// 3rd level - active link
                              		if ($lev3->getId() == $path3) {
                                 		$navLeftCol .= '<li class="active"><a class="current" href="'.$lev3->getUrl().'">'.$lev3->getName().'</a></li>';
                             		 }
                              		// 3rd level - no active link
                              		else {
                                 		$navLeftCol .= '<li><a href="'.$lev3->getUrl().'">'.$lev3->getName().'</a></li>';
                              		}
                           		}
								endforeach;
                        		// END 3rd level categories

                        		$navLeftCol .= '</ul>';
                     		} // END by if ($lev2Size != "0"):
                  		}
                  		$navLeftCol .= '</li>';
               		}
            	endforeach;
            	// END 2nd level categories

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

   		endif; // END by if ($lev1->isOnline())
		}
	} // END by if ($usr_typ>=...

	$navHeader .= '</ul>';

// END 1st level categories

//print $nav;
?>
Danke für die Hilfe

Gruß Ralf

beate
Beiträge: 134
Registriert: 14. Apr 2006, 17:15

28. Sep 2006, 12:56

Ist klar, du hast du änderungen nur im Aktiven Link eingebaut, nicht im Inaktiven:

Code: Alles auswählen

            if ($lev1->getId() == $path1) {
               $navHeader .= '<li id="nav0'.$navcount1.'_'.$navcount2.'" class="active"><a class="current" href="'.$lev1->getUrl().'"><span>'.$lev1->getName().'</span></a>';
            }
            // 2nd level - no active link
            else {
               $navHeader .= '<li id="nav0'.$navcount1.'_'.$navcount2.'"><a href="'.$lev1->getUrl().'">'.$lev1->getName().'</a>';
            } 
Übrigens kannst du $navcount1 löschen und $navcount2 durch $navcount1 ersetzen, das hatte ich nur drin, weil ich ja 2 Ebenen im Menu hatte.

Wittrock
Beiträge: 344
Registriert: 25. Mär 2006, 00:47
Wohnort: Löhne
Kontaktdaten: Website

28. Sep 2006, 13:34

Danke beate,

so langsam blicke ich auch daran lang.

Gruß Ralf

Zurück zu „Allgemeines [R3]“