Zum Inhalt springen

Zwei Menü's auf einer Seite

Erstellt am 5. November 2004 · 25 Antworten · letzte Antwort am 12. November 2004 · Seite 1 von 2

Tags: Frage

tracer83 ·

Hallo,

bin noch ein Typo3-Neuling, habe bis jetzt ca. 5 Standard-Seiten umgesetzt. Also mit den Basics komme ich klar, allerdings habe ich jetzt ein kleines Problem von dem ich noch nicht weis wie ich es angehen soll:
Eine Seite die zwei Menüs hat (jeweils mit Untermenüpunkten). Der Bereich in dem der Content angezeigt wird bleibt immer der selbe, d.h. es wird entweder eine Seite aus Menu1 oder Menu2 angezeigt. Kann mir jemand sagen wie ich generell an dieses Problem rangehen kann? Ich habe jetzt mal die Menüstruktur wie folgt aufgebaut:

PAGEROOT
|- Menu1
| |- m1p1
| |- m1p2
| | |-m1p2u1
| | |-m1p2u2
|- Menu2
| |- m2p1
| |- m2p2
| | |-m2p2u1
| | |-m2p2u2
| |- m2p3

Die fett markierten Punkte sollen noch nicht sichtbar sein erst die Zweige darunter, das realisiere ich mit entryLevel = X, aber wie realisiere ich das jeweils nur ein Zweig (Menu1 oder Menu2) angezeigt wird?

Danke schon mal für eure Hilfe!
tracer

jenses ·

Und du hast wirklich schon 5 Seiten fertig ?
Lies mal in Robert Meyers Doku nach, wie man zwei Menüs auf die Seite bringt.
Hier im Forum gibt es dazu auch MASSEN an Beispielen.

viele Grüße
jenses

tracer83 ·

hab ja gesagt, bis jetzt nur ganz ganz einfache Seiten...

ich bin jetzt ne ganze Ecke weiter, aber ein Problem habe ich noch:
Von den beiden Menü's ist eins bei dem die Unterpunkte direkt nach dem jeweiligen übergeordneten Punkt kommen, das funktioniert auch (temp.menu2). Bei dem anderen Menü stehen in der ersten Zeile die Hauptmenüpunkte, in der zweiten die zugehörigen Untermenüpunkte. Das funktioniert soweit auch, allerdings werden wenn ein Hauptmenüpunkt vom anderen Menü (temp.menu2) geöffnet ist die entsprechenden Unterpunkte zusätzlich in der zweiten Zeile des ersten Menü's angezeigt (was eigentlich logisch aber nicht erwünscht ist). Kann mir jemand einen Hinweis geben wie das Template verändern muss um dieses Problem noch loszuwerden?
Vielen Dank schon mal für Eure Mühe
tracer

temp.menu1_1 = HMENU
temp.menu1_2 = HMENU
temp.menu2   = HMENU

####################################

temp.menu1_1.special = directory 
temp.menu1_1.special.value = 168
temp.menu1_1.entryLevel = 1

temp.menu1_1.1 = TMENU
temp.menu1_1.1 {
    # Normal state properties
    NO.allWrap = <span class="nav"> &#124;&nbsp; | </span>
}

# WAS MUSS ICH HIER ERGÄNZEN?
temp.menu1_2.entryLevel = 2
temp.menu1_2.1 = TMENU
temp.menu1_2.1 {
    # Normal state properties
    NO.allWrap = <span class="nav"> &#124;&nbsp; | </span>
}

####################################

temp.menu2.entryLevel = 1
temp.menu2.special = directory 
temp.menu2.special.value = 169 

temp.menu2.1 = TMENU
temp.menu2.1 {
    # Normal state properties
    NO.allWrap = <span class="nav"> &nbsp; | </span><br>
}

temp.menu2.2 = TMENU
temp.menu2.2 {
    # Normal state properties
    NO.allWrap = <span class="nav">&nbsp; &nbsp; | </span><br>

}

####################################

...

     subparts.MENU_ITEMS1_LINE1 < temp.menu1_1
     subparts.MENU_ITEMS1_LINE2 < temp.menu1_2
     subparts.MENU_ITEMS2       < temp.menu2
...
tracer83 ·

jetzt sitz ich seit über 10 Stunden an diesem Problem, in der Doku find ich nix und im Forum hab ich bis jetzt auch keine Lösung gefunden... *kopfrauch* *tastaturandiewandhau*

temp.menu1_1.entryLevel = 1
temp.menu1_1.special = directory 
temp.menu1_1.special.value = 168

temp.menu1_1.1 = TMENU
temp.menu1_1.1 {
    # Normal state properties
    NO.allWrap = <span class="nav"> &#124;&nbsp; | </span> 
}

temp.menu1_2.entryLevel = 2
# WARUM WIRD DAS ENTRYLEVERL NICHT ÜBERNOMMEN???
temp.menu1_2.special = directory
temp.menu1_2.special.value = 168
temp.menu1_2.1 = TMENU
temp.menu1_2.1 {
    # Normal state properties
    NO.allWrap = <span class="nav"> &#124;&nbsp; | </span>
}

was mache ich hier falsch? Kann mir hier wirklich keiner weiterhelfen??? jenses? HansMaulwurf? Bitte!

HansMaulwurf ·

Also erstaml zu deinem TS

es heisst bei dir immer

entryLevel = 1

denn deine Menu punkte ligen eben auf ebene eins und net 2

Dann hab ich gesehen das deine Menus auch noch unterpunkte haben hmmm musst du auch noch definieren
mfg Hans

tracer83 ·

Was die Frames und Tabellen angeht hast Du sicher recht, aber ich bin nur der kleine Programmierer der das alles umsetzt, ob ich Frames oder Tabellen verwende liegt nicht in meinem Entscheidungsbereich o.O

Mit den Punkten und Unterpunkten das klappt eigentlich schon, nur dass bei der zweiten Zeile des horizontalen Menü's oben (temp.menu1_2) auch der Inhalt des Untermenüs angezeigt wird (temp.menu2).
Ich hab's mal auf nen typo3 Server gespielt der vom web aus zu erreichen ist: http://typo3.mysolutions.de/154.0.html
Ich habe jeweils nur zu den ersten Hauptmenüpunkten ("Schule", "Clara Grundwald") Unterpunkte angelegt. Klicke ich jetzt Links auf "Clara Grundwald" werden die Unterpunkte auch im horizontalen Menü oben in der zweiten Zeile angezeigt, was nicht sein soll.

mein TS sieht im Moment so aus (die ACT-Bereiche mal wegen der besseren Übersicht weggelassen):

temp.menu1_1 = HMENU
temp.menu1_2 = HMENU
temp.menu2_1 = HMENU

#################################################################
#Menü oben

temp.menu1_1.entryLevel = 1
temp.menu1_1.special = directory 
temp.menu1_1.special.value = 137

temp.menu1_1.1 = TMENU
temp.menu1_1.1 {
    NO.allWrap = <span class="nav"> &#124;&nbsp; | </span> 
}


#----------------------------------------------------------
# Hier denke ich muss die Anpassung geschehen, aber wie???
temp.menu1_2.entryLevel = 2
temp.menu1_2.1 = TMENU
temp.menu1_2.1 {
    # Normal state properties
    NO.allWrap = <span class="nav"> &#124;&nbsp; | </span>
}
#----------------------------------------------------------

#################################################################
#Menü links

temp.menu2_1.special = directory 
temp.menu2_1.special.value = 148 
temp.menu2_1.entryLevel = 1

temp.menu2_1.1 = TMENU
temp.menu2_1.1 {
    NO.allWrap = <span class="nav"> &nbsp; | </span><br>
}

temp.menu2_1.2 = TMENU
temp.menu2_1.2 {
    NO.allWrap = <span class="nav">&nbsp; &nbsp; | </span><br>
}

folgende Varianten habe ich für menu1_2 schon ausprobiert, ohne Erfolg:

temp.menu1_2.special = directory
temp.menu1_2.special.value = 137
temp.menu1_2.entryLevel = 2
temp.menu1_2.1 = TMENU
temp.menu1_2.1 {
    NO.allWrap = <span class="nav"> &#124;&nbsp; | </span>
}

oder

temp.menu1_2.special = directory
temp.menu1_2.special.value = 137
temp.menu1_2.entryLevel = 1
temp.menu1_2.2 = TMENU
temp.menu1_2.2 {
    NO.allWrap = <span class="nav"> &#124;&nbsp; | </span>
}

[/url]

HansMaulwurf ·

Mach es dir doch ganz Einfach

Menu1 = HMENU
Menu1.special = directory
Menu1.special.value = dein Wert
Menu1.entryLevel = 1
Menu1.1 = TMENU 
Menu1.1.NO{
 allWrap = dein Wrap
}
Menu1.1.ACT.allWrap = XXX
Menu1.2 = TMENU
Menu1.2.NO{
 allWrap = dein Wrap
}

und das selbe für menu 2

tracer83 ·

Danke für die schnelle Antwort. Ich bitte jetzt zu entschuldigen wenn ich mich anstelle wie der erste Mensch:
Ich habe es jetzt so umgesetzt wie du gesagt hast:
http://typo3.mysolutions.de/144.0.html
allerdings bekomme ich die Untermenüpunkte oben im horizontalen Menü nicht in die zweite Zeile...

temp.menu1_1.entryLevel = 1
temp.menu1_1.special = directory 
temp.menu1_1.special.value = 137

temp.menu1_1.1 = TMENU
temp.menu1_1.1 {
    # Normal state properties
    NO.allWrap = <span class="nav"> &#124;&nbsp; | </span> 
    # Enable active state and set properties:
    ACT = 1
    ACT.allWrap = <span class="level1-ac"><b> &#124;&nbsp; | </b></span>
}

temp.menu1_1.2 = TMENU
temp.menu1_1.2 {
    # Normal state properties
    NO.allWrap = <span class="nav"> (|) </span> 
    # Enable active state and set properties:
    ACT = 1
    ACT.allWrap = <span class="level1-ac"><b> (|) </b></span>
}
HansMaulwurf ·

Und falls du die menu eben 2 ändern willst also

1.hauptpunkt 2.Hauptpunkt...
-1. unterpunkt
-2. unterpunk

dann musste du einfach den wrap für ebene 2 ändern

am besten statt <span> den <div> tag benutzen

mfg

tracer83 ·

Genau, oben das horitzontale Menü soll aus zwei Zeilen bestehen (habe auch zwei Marker im Template):
1. Zeile Hauptmenü von menu1_2:
temp.menu1_1.entryLevel = 1
temp.menu1_1.special = directory
temp.menu1_1.special.value = 137
2. Zeile die Unterpunkte von 1., allerdings nicht die Unterpunkte vom anderen Menü links

HansMaulwurf ·

Und falls du alle Menupunkte der ebene 2 in eine Zeile ABER die Hauptpunkte in der Zeile obendrüber haben willst nimm diesen Code

temp.menu1_1.2.NO.allWrap =<br /><span class="nav"> (|) </span> |*| <span class="nav"> (|) </span>

Das ist dein TS

tracer83 ·

ok, schon passiert...
jetzt erhalte ich aber statt:

1Hauptpunkt 2Hauptpunkt 3Hauptpunkt 4Hauptpunkt
1.1 1.2 1.3.....

(wie es eigentlich gewünscht wäre) folgendes:
1Hauptpunkt
1.1 1.2 1.3..... 2Hauptpunkt 3Hauptpunkt 4Hauptpunkt

HansMaulwurf ·

Dann musst du mit TMENU_LAYER arbeiten da kannst du fest wert einstellen(an denen Das menu 1 angezigt werden soll)
aber das brauchst du nur für die 1. Ebene verwenden!

mfg

tracer83 ·

Der Code im Moment:

temp.menu1_1.1 = TMENU
temp.menu1_1.1 {
    # Normal state properties
    NO.allWrap = <span class="nav"> &#124;&nbsp; | </span>
}
temp.menu1_1.2 = TMENU
temp.menu1_1.2 {
    NO.allWrap =<br /><span class="nav"> (|) </span> |*| <span class="nav"> (|) </span>
}