[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
menu > horizontal > 2. ebene aufklappen?? - 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/
andre
Beiträge: 24
Registriert: 24. Aug 2004, 22:11
Kontaktdaten: Website

menu > horizontal > 2. ebene aufklappen??

25. Mai 2005, 15:53

hallo,

gibt es schon so ein menü:

punkt1 | punkt2 | punkt3 | punkt4

wenn jetzt punkt1 geklickt wird, sollen die unterpunkte von punkt1 aufklappen (direkt darunter). wenn jetzt unterpunkt1 geklickt wird, soll das menü so aufgeklappt stehen bleiben.

ich habe schon versucht, dass normale menü so umzubauen, aber ohne erfolg...

hat schon jemand dieses menü gebastelt?

grüße + danke
andré

Goldfisch
Beiträge: 230
Registriert: 22. Sep 2004, 17:47
Wohnort: Aschaffenburg
Kontaktdaten: Website

25. Mai 2005, 17:49

hier gibt es sowas
http://---/dhtml/mygosumenu.html

mit redaxo erstellbar

andre
Beiträge: 24
Registriert: 24. Aug 2004, 22:11
Kontaktdaten: Website

25. Mai 2005, 19:28

hier gibt es sowas
http://---/dhtml/mygosumenu.html

mit redaxo erstellbar
nicht ganz. das hier klappt wieder zu.

ich habe es jetzt soweit, dass das menue bleibt. jetzt aber noch aber das große problem > untermenü ist immer auf gleicher position (also unter dem ersten punkt).

jetzt müsste ich folgendes machen, oder?

if punkt1 oder unterpunkte oder unterunterpunkte von punkt1 = position 1
if punkt2 oder unterpunkte oder unterunterpunkte von punkt2 = position 2

wobei position 1 und position 2 zB eingerückt sind...

hier komme ich einfach nicht weiter!
wenn jemand einen tipp hat, wäre ich sehr dankbar.

Goldfisch
Beiträge: 230
Registriert: 22. Sep 2004, 17:47
Wohnort: Aschaffenburg
Kontaktdaten: Website

25. Mai 2005, 19:40

kann man das mal sehen?

in der demo ist das schön gelöst worden.
schau doch dort mal in die css-dateien (menu.css)
und das navigations-template.

Benutzeravatar
Markus.Staab
Entwickler
Beiträge: 9634
Registriert: 29. Jan 2005, 15:50
Wohnort: Aschaffenburg/Germany
Kontaktdaten: ICQ Website

25. Mai 2005, 20:55

Hi andre,

ich kann mir auch noch nicht so wirklich vorstellen was du genau erreichen willst...

Gibt es irgendwo eine Webseite auf der du schon gesehen hast, damit wir uns das mal ansehen können?

Gruß,
Markus

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

25. Mai 2005, 21:38

Hej,

zum positionieren verwende CSS. Wichtig ist hier aber erstmal das du uns deine Vorstellungen via einem Bild bzw. der Seite einmal zeigen könntest. Das würde das Ganze leichter machen.

lg Thomas

andre
Beiträge: 24
Registriert: 24. Aug 2004, 22:11
Kontaktdaten: Website

27. Mai 2005, 09:19

hi.

ich hab mir folgendes menü vorgestellt.

[ externes Bild ]

- beim betreten der seite sind alle unterpunkte geschlossen.
- wird ein oberpunkt angeklickt, öffnen sich die unterpunkte und bleiben stehen.
- wird ein geöffneter unterpunkt geklickt bleibt das untermenu ebenfalls stehen.
- menuetiefe = 2 ebenen (also oberebene und unterebene)

meine idee ist jetzt, dieses menü als listen zu erstellen (nebeneinander zB mit floating).
jetzt habe ich ein menucode, den ich hier im forum gefunden hatte, so abgeändert, dass diese auch nebeneinander stehen, aber nur immer der erste menupunkt mit seinen unterpunkten?!

es sollten natürlich alle oberen menüpunkte angezeigt werden, nicht nur der eine. ich weiss leider nicht was falsch ist....

vielleicht geht es auch viel einfacher....

hier mal mein code:

Code: Alles auswählen


<? 
	// EXPLODE PATH 
	$PATH = explode("-",$this->getValue("path")); 
	
	// GET CURRENTS 
	if(count($PATH)==1) { 
		$MAIN = $PATH[0]; 
	} 
	else { 
	 $MAIN = $PATH[1]; 
	 $SUB01  = $PATH[2]; 
	 $SUB02  = $PATH[3]; 
	} 

	$navSub1 = ""; 
	foreach (OOCategory::getRootCategories() as $LEVEL00) { 
		if ($LEVEL00->isOnline() ): 
			if ($LEVEL00->getId() == $MAIN) { 
				$startArticle = $LEVEL00->getStartArticle();
				if ($SUB01 == "") 
					//active 1
					$navSub1 .= '<li><a href="'.$startArticle->getUrl().'" class="menu'.$i.'">'.$startArticle->getName().'</a></li>'; 
				else 
					//parent
					//normal 1
					$navSub1 .= '<li><a href="'.$startArticle->getUrl().'" class="menu'.$i.'">'.$startArticle->getName().'</a></li>'; 
					foreach ($LEVEL00->getChildren() as $LEVEL01): 
						$startart = $LEVEL01->getStartArticle(); 
						if($startart->_type_id == "1"){ 
							if ($LEVEL01->isOnline() ): 
								if ($LEVEL01->getId() == $SUB01) { 
									//active 2
									$navSub .= '<li class="active"><a href="'.$LEVEL01->getUrl().'" class="current">'.$LEVEL01->getName().'</a>'; 
									if ($SUB02 != "") : 
										$LEVEL02_Test = OOCategory::getCategoryById($SUB01); 
										$Groesse = sizeof($LEVEL02_Test->getChildren()); 
										if($Groesse != "0") { 
											$navSub .= '<ul class="nav3rd">'; 
											foreach ($LEVEL01->getChildren() as $LEVEL02 ) { 
												$startart = $LEVEL02->getStartArticle(); 
												if($startart->_type_id == "1") { 
												if ($LEVEL02->isOnline() ): 
												if ($LEVEL02->getId() == $SUB02) 
													$navSub .= '<li class="active"><a href="'.$LEVEL02->getUrl().'" class="current">'.$LEVEL02->getName().'</a></li>'; 
												elseif ($LEVEL02->getName() == "" ) 
													$navSub .= '<li class="blank">&nbsp;</li>'; 
												else $navSub .= '<li><a href="'.$LEVEL02->getUrl().'">'.$LEVEL02->getName().'</a></li>'; 
												endif; 
											} 
										} 
									$navSub1 .= '</ul>'; 
								} 
							endif; 
							$navSub .= '</li>'; 
						} 
						elseif ($LEVEL01->getName() == "" ) 
							$navSub .= '<li class="blank">&nbsp;</li>'; 
							//normal 1
							else $navSub .= '<li><a href="'.$LEVEL01->getUrl().'">'.$LEVEL01->getName().'</a></li>'; 
							endif; 
						} 
	endforeach; 
	} 
	echo '<div style="float:left; width:120px;">';
	echo '<ul class="nav2nd">'; 
	echo $navSub1; 
	echo '<ul class="nav2nd">';
	echo $navSub; 
	echo '</ul>'; 
	echo '</ul>';
	echo '</div>'; 
	endif; 
	} 


?>
vielen dank für jede hilfe....
andré

andre
Beiträge: 24
Registriert: 24. Aug 2004, 22:11
Kontaktdaten: Website

27. Mai 2005, 10:13

hallo.

habs jetzt etwas einfacher gemacht. jetzt werden alle uberpunkte angezeigt, aber die unterpunkte sind immer auf einer position:

siehe bild. die unterpunkte gehören eigentlich zu leistung.

[ externes Bild ]

Code: Alles auswählen

<?php 

// EXPLODE PATH 
$PATH = explode("-",$this->getValue("path")); 

if(count($PATH)==1) { 
		$MAIN = $PATH[0]; 
	} 
	else { 
	 $MAIN = $PATH[1]; 
	 $SUB01  = $PATH[2]; 
	} 

	$navMain = ""; 
	foreach (OOCategory::getRootCategories() as $LEVEL00) { 
		if ($LEVEL00->isOnline() ): 
			if ($LEVEL00->getId() == $MAIN ) { 
				//level 1 active
				$navMain .= '<ul style="float:left;"><li id="active"><b><a href="'.$LEVEL00->getUrl().'" class="current">'.$LEVEL00->getName().'</a></b></li>'; 
				$navSub = "<ul>";
				foreach ($LEVEL00->getChildren() as $LEVEL01){ 
					if ($LEVEL01->isOnline() ){
						if ($LEVEL01->getId() == $SUB01) { 
							//level 2 active
							$navSub .= '<li class="active"><a href="'.$LEVEL01->getUrl().'" class="current"><b>'.$LEVEL01->getName().'</b></a></li>';
						}else{
							//level 2 normal
							$navSub .= '<li class="active"><a href="'.$LEVEL01->getUrl().'" class="current">'.$LEVEL01->getName().'</a></li>';
						}
					}
				}
				$navSub .= "</ul>";	
				$navMain .= "</ul>";
			}else{ 
				//level 1 normal
				$navMain .= '<ul style="float:left;"><li><a href="'.$LEVEL00->getUrl().'">'.$LEVEL00->getName().'</a></li>'; 
				foreach ($LEVEL00->getChildren() as $LEVEL01){ 
					$startart = $LEVEL01->getStartArticle(); 
					if($startart->_type_id == "1"){ 
						if ($LEVEL01->isOnline() ){ 
							if ($LEVEL01->getId() == $SUB01) {
								$navSub .= '<li class="active"><a href="'.$LEVEL01->getUrl().'" class="current">huhu'.$LEVEL01->getName().'</a>';
							}
						}
					}
				}
				$navMain .= "</ul>";		
			} 
		endif; 
	} 
	echo $navMain; 
	echo $navSub;
	echo "<div style=\"clear:both;\"><hr></div>";
	 
?>

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

27. Mai 2005, 10:21

Hej,

das solltest du per CSS hinbekommen. Einfach jedem Submenu eine eigene Klasse geben.

lg Thomas

andre
Beiträge: 24
Registriert: 24. Aug 2004, 22:11
Kontaktdaten: Website

27. Mai 2005, 11:41

hi thomas,

hat alles super geklappt... ich bin schon fast verzweifelt... :)

grüße
andré

Zurück zu „Allgemeines [R2]“