Hallo und juten Tach,
ich bin gerade daran, die Navigation für eine Seite anzupassen. Dabei ergibt sich folgende Problemstellung:
Die erste Menü-Ebene ist ein Menü oberhalb des Headers, welches horizontal angelegt ist.
Nun sollen die 2. und 3. Ebene in der rechten Spalte unterhalb des Headers angezeigt werden.
Bei diesem Menü sieht aktuell das TS wie folgt aus, wobei die 2. und 3. Ebene direkt aufklappen, wenn man auf den entsprechenden Menüpunkt fährt:
lib.nav = HMENU
lib.nav {
wrap = <ul class="sf-menu">|</ul>
1 = TMENU
1 {
expAll = 1
noBlur = 1
NO = 1
NO.allWrap= <li>|</li>
NO.stdWrap.htmlSpecialChars = 1
CUR = 1
CUR.allWrap = <li class="aktiv">|</li>
CUR.stdWrap.htmlSpecialChars = 1
}
2 = TMENU
2 {
expAll = 1
noBlur = 1
NO.wrapItemAndSub = <li>|</li>
NO.stdWrap.htmlSpecialChars = 1
CUR = 1
CUR.wrapItemAndSub = <li class="aktiv">|</li>
CUR.stdWrap.htmlSpecialChars = 1
ACT = 1
ACT < .CUR
}
3 < .2
3.wrap = <ul>|</ul>
}
Wie muss ich das TS nun anpassen, damit die 2. und 3. Ebene bei einem weiteren Marker ###SUBMENU### angezeigt wird, als vertikales Menü?
Für Eure Unterstützung wäre ich sehr dankbar...
Hallo kinneremer,
ist eigentlich gar nicht so schwer, du machst aus deinem einem Menü zwei und arbeitest mit "entryLevel".
So machst du quasi ein Hauptmenü ( bei 1. Ebene ) und ein Untermenü ( 2. und 3. Ebene ) in dem du diesem mit entryLevel sagst, dass du das Menü erst ab der 2. Ebene des aktuellen Menüpunktes anzeigen möchtest.
Näheres zu entryLevel wie immer in der Script-Referenz.
OK, soweit, so gut...
habe jetzt mal versucht, das mit dem TypoScript zu lösen, jedoch bekomme ich es einfach nicht zum Laufen.
Es gibt 2 Dateien mit TypoScript:
root.t3s
MENU = HMENU
MENU {
special = directory
special.value = 3
entryLevel = 1
1 = TMENU
1 {
expAll = 1
noBlur =1
wrap = <ul id="topnav" class="sf-menu">|</ul>
NO = 1
NO {
wrapItemAndSub = <li>|</li>
stdWrap.htmlSpecialChars = 1
}
CUR < .NO
CUR {
ATagParams = id="aktiv"
}
}
}
SUBMENU = HMENU
SUBMENU.1 = TMENU
SUBMENU {
special = directory
special = list
special.value = 1
entryLevel = 2
excludeUidList = 1,2,3
}
SUBNMENU.1 {
NO.allWrap = <div class="mainmenu1"> | </div>
ACT = 1
ACT.allWrap = <div class="mainmenu1-act"> | </div>
}
SUBMENU.2 = TMENU
SUBMENU.2 {
NO.allWrap = <div class="mainmenu2"> | </div>
ACT = 1
noBlur = 1
ACT.allWrap = <div class="mainmenu2-act"> | </div>
}
und die menu.t3s
lib.nav = HMENU
lib.nav {
wrap = <ul class="sf-menu">|</ul>
1 = TMENU
1 {
expAll = 1
noBlur = 1
NO = 1
NO.allWrap= <li>|</li>
NO.stdWrap.htmlSpecialChars = 1
CUR = 1
CUR.allWrap = <li class="aktiv">|</li>
CUR.stdWrap.htmlSpecialChars = 1
}
}
lib.nav = HMENU
lib.nav.1 = TMENU
lib.nav.special = directory
# marks.SUBMENU.special = list
lib.nav.special.value = 1
# marks.SUBNMENU.excludeUidList = 1,2,3
lib.nav.1 {
NO.allWrap = <div class="mainmenu1"> | </div>
ACT = 1
ACT.allWrap = <div class="mainmenu1-act"> | </div>
}
lib.nav.2 = TMENU
lib.nav.2 {
NO.allWrap = <div class="mainmenu2"> | </div>
ACT = 1
noBlur = 1
ACT.allWrap = <div class="mainmenu2-act"> | </div>
}
}
Jetzt hänge ich komplett, da ich mit TS nicht wirklich fit bin.
Habe versucht, das aus 2 Menüs "zusammenzubasteln".
Kann mir jemand helfen, wo mei Fehler liegt?
DANKE... :o
Mal so vorweg
SUBMENU.1 = TMENU
SUBMENU {
special = directory
special = list
special.value = 1
entryLevel = 2
excludeUidList = 1,2,3
}
special = directory
und entryLevel beisst sich
ABER
das ist egal, da du special = list setzt ( was sich vermutlich auch beisst ).
Effektiv hast du gerade stehen:
"Bau ein Menu aus den Seiten mit den Uids '1' aber ohne die Seiten mit den Uids '1,2 und 3'...
Merkste was?
Generell solltest du hier die "special"-Einträge weglassen können, da du mit entryLevel=2 automatisch die Unterseiten der aktuell gewählten Seite auswählst. Ob exludeUidList für dich notwendig ist kann ich dir nicht sagen, aber anhand der Seiten-Ids würde ich behaupten das ist fehlplatziert.
Ich werde noch wahnsinnig mit dem TS...
Habe jetz versucht, das mit dem entryLevel zu lösen, aber ich bekomme das Submenü einfach nichtr angezeigt, oder schon ab der 1. Ebene.
Mein TS sieht nun so aus:
MENU = HMENU
MENU {
special = directory
special.value = 3
entryLevel = 1
1 = TMENU
1 {
expAll = 1
noBlur =1
wrap = <ul id="topnav" class="sf-menu">|</ul>
NO = 1
NO {
wrapItemAndSub = <li>|</li>
stdWrap.htmlSpecialChars = 1
}
CUR < .NO
CUR {
ATagParams = id="aktiv"
}
}
}
SUBMENU = HMENU
SUBMENU {
entryLevel = 2
1 = TMENU
1 {
NO.allWrap = <div class="submenu1"> | </div>
ACT = 1
ACT.allWrap = <div class="submenu1-act"> | </div>
}
2 = TMENU
2 {
NO.allWrap = <div class="submenu2"> | </div>
ACT = 1
noBlur = 1
ACT.allWrap = <div class="submenu2-act"> | </div>
}
}
Wieso funktioniert das denn nicht???
Herr hilf!!!