[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
REDAXO Forum • 2nd permanet anzeigen
Seite 1 von 1

2nd permanet anzeigen

Verfasst: 10. Apr 2009, 22:33
von sek
ich glaub ich bin zu doof.
das kann ja nur ne kleiner änderung im template sein, aber ich brauche hilfe.

ich würde gern, wenn eine kategorie weiter unterkategorien hat, die nicht erst nach dem klick sondern permanten anzeigen lassen. also das untermenü was sonst erst nach dem klick auf die 1st level kategorie auftaucht soll schon von anfang an permanten zu sehen sein.

ich nutze dieses nav-template:

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 */

$mainnavi .= '<ul class="nav1st">';

foreach (OOCategory::getRootCategories() as $lev1) {      

   if ($lev1->isOnline(true)) {
		// 1st level - no active link

      if ($lev1->getId() != $path1) {

         $mainnavi .= '<li><a href="'.$lev1->getUrl().'">'.$lev1->getName().'</a>';

      }
		// 1st level - active link

      else {
			// 1st level had categories? -> go on

	      $lev1Size = sizeof($lev1->getChildren());
			
			// 1st level - has no categories
			if ($lev1Size == "0") {
	         $mainnavi .= '<li><a class="current1" style="display: block;
	height: 18px;
	color: #fff;
	border: 0;
	margin: 0 0 0 -5px;
	font-size: 12px;
	font-weight: bold;"  href="'.$lev1->getUrl().'">'.$lev1->getName().'</a>';
			}
			// 1st level - has categories
			else {
				$active = "0";
				foreach ($lev1->getChildren() as $lev2) {

               if ($lev2->isOnline(true)) {

                  if ($lev2->getId() == $path2) { // 2nd level - active link, then the 1st level link is not active
							$mainnavi .= '<li><a href="'.$lev1->getUrl().'">'.$lev1->getName().'</a>';
							$active = "1"; //found an active 2nd level
						}
					}
				} // endforeach ($lev1->getChildren() as $lev2)
				if ($active == "0") { // 1st level ist activ and und 2nd level links existieren
					$mainnavi .= '<li><a class="current1" style="display: block;
	height: 18px;
	color: #fff;
	border: 0;
	margin: 0 0 0 -5px;
	font-size: 12px;
	font-weight: bold;" href="'.$lev1->getUrl().'">'.$lev1->getName().'</a>';
				}
				$mainnavi .= '<ul class="nav2nd">';

				// START 2nd level categories

            foreach ($lev1->getChildren() as $lev2) {

               if ($lev2->isOnline(true)) {

                  // 2nd level - active link

                  if ($lev2->getId() == $path2) {
							$mainnavi .= '<li><a class="current2" style="display: block;
	height: 13px;
	color: #fff;
	border: 0;
	margin: 0 0 0 -5px;
	font-size: 12px;
	font-weight: bold;"  href="'.$lev2->getUrl().'">'.$lev2->getName().'</a></li>';

						}

                  // 2nd level - no active link

						else {

                     $mainnavi .= '<li><a href="'.$lev2->getUrl().'">'.$lev2->getName().'</a></li>';

                  }
					}
				} // endforeach ($lev1->getChildren() as $lev2)
				$mainnavi .= '</ul>';
			} // end of else of if ($lev1Size == "0"):

      } // end of else of if ($lev1->getId() != $path1)

      

   	$mainnavi .= '</li>';
	} // end of if ($lev1->isOnline())
} // endforeach (OOCategory::getRootCategories() as $lev1)
$mainnavi .= '</ul>';

// END 1st level categories
  
//print $mainnavi;


?>
danke für eure hilfe.

Verfasst: 11. Apr 2009, 11:13
von raybeam
Hallo sek,

vielleicht probierst du folgendes Template aus:

http://www.redaxo.de/168-0-templatedeta ... late_id=24

Im unteren Bereich des Quelltextes findest Du einen "Menü-Umschalter". Wenn Du diesen von

Code: Alles auswählen

if($subUl=='')$subUl='on';
in

Code: Alles auswählen

if($subUl=='')$subUl='allOn';
änderst, werden alle Kategorien permanent als Menüpunkte angezeigt.

Gruß

Peter

Verfasst: 11. Apr 2009, 12:06
von sek
danke für die schnelle antwort.

aber ein neues template einbauen würde den aufwand jetzt überschreiten. ich habe nämlich gemerkt, das neue template benutzen funktioniert nicht, da müsste wahrscheinl. einiges angepasst werde.

aber das geht doch bestimmt auch einfacher, mit dem template das ich schon verwende. oder nicht?

Verfasst: 11. Apr 2009, 14:04
von raybeam
eigentlich brauchst Du das neue Template nur in dein Seitentemplate einbinden und ein "print $navigation" in deinem Seitentemplate zeigt die Navigation dort an, wo Du sie haben möchtest - dann evtl. noch die Stylesheets anpassen, fertig :)

Da ich dein benutzes Template nicht kenne, vermute ich, dass du irgendwo im Bereich von

Code: Alles auswählen

if ($lev2->getId() == $path2) ...
Anpassungen vornehmen musst, um die von dir benötigte Funktionalität einzubauen. Aber wie gesagt, ich habe den Quelltext nur überflogen.

Gruß

Peter

Verfasst: 15. Apr 2009, 02:11
von sek
habs hinbekommen und dein empfohlenes template einbauen und anpassen können.

vielen dank für die hilfe und die tipps

Verfasst: 15. Apr 2009, 16:43
von raybeam
gerne :)