Hallo zusammen
Hätte da auch mal so eine Menu-Frage.
Und zwar möchte im Menu, welches immer genau die Seitennamen
auflistet, einem einzelnen Button einen anderen Backround geben.
Die Backrounds sind in meinem CSS definiert und gelten eben
jeweils für eine ganze Ebene.
Auch in meinem folgendem TypoScript,
spreche ich jeweils die ganze Ebene an:
[...]
# Menü links erstellen
MENU_LINKS = HMENU
MENU_LINKS.special = directory
MENU_LINKS.special.value = 1
# Einspringpunkt beim Start
MENU_LINKS.entryLevel = 0
MENU_LINKS.1 = TMENU
MENU_LINKS.1 {
NO.allWrap = <div class="menulinks-level1-no"> | </div>
ACT = 1
ACT.allWrap = <div class="menulinks-level1-act"> | </div>
SPC = 19
}
MENU_LINKS.2 = TMENU
MENU_LINKS.2 {
NO.allWrap = <div class="menulinks-level2-no"> | </div>
ACT = 1
ACT.allWrap = <div class="menulinks-level2-act"> | </div>
}
MENU_LINKS.3 = TMENU
MENU_LINKS.3 {
NO.allWrap = <div class="menulinks-level3-no"> | </div>
ACT = 1
ACT.allWrap = <div class="menulinks-level3-act"> | </div>
}
[...]
Kann mir jemand einen Tipp geben?
Wäre sehr dankbar.
Viele Grüsse
Stäubel
Hallo,
ich würde zuerst mal raten das ganze per Listenmenü zu machen, aber sonst solltest du dir meine kleine Extension rgmenu anschauen (inkl manual)
georg
Hallo just2b
Wow, du hast eine eigene Extension geschrieben!
Vielen Dank, werde ich gern mal anschauen.
Schade das dies bedeuten würde, dass ich alles
umbauen müsste. 😢
Aber so ne "Würg" Lösung auf die Schnelle gibt
es wohl eher nicht oder #paralyzed#
Auf jedenfall Danke, hast mir schon viel weitergeholfen.
Grüsse Stäubel
Hallo zusmmen
Hab da mal noch ein wenig rumgeforscht.
Könnte man es nicht auch irgenwie so lösen?
So würde es funktionieren:
[...]
MENU_LINKS.1 = TMENU
MENU_LINKS.1 {
NO.stdWrap2{
wrap = <div class="menulinksgelb-level1-no"> | </div>
if.value.field = uid
if.equals = 18
}
ACT.stdWrap2{
wrap = <div class="menulinksgelb-level1-act"> | </div>
if.value.field = uid
if.equals = 18
}
}
[...]
Wenn ich jedoch mehrere aneinanderhänge, funktioniert es leider nicht mehr:
Sorry, blicke noch nicht so durch bei TS :o
[...]
MENU_LINKS.1 = TMENU
MENU_LINKS.1 {
NO.stdWrap2{
wrap = <div class="menulinksgelb-level1-no"> | </div>
if.value.field = uid
if.equals = 18
}
ACT.stdWrap2{
wrap = <div class="menulinksgelb-level1-act"> | </div>
if.value.field = uid
if.equals = 18
}
NO.stdWrap2{
wrap = <div class="menulinksweiss-level1-no"> | </div>
if.value.field = uid
if.equals = 19
}
ACT.stdWrap2{
wrap = <div class="menulinksweiss-level1-act"> | </div>
if.value.field = uid
if.equals = 19
}
}
[...]
Kann mir jemand einen Tipp geben, was falsch ist.
Wäre euch sehr dankbar.
Viele Grüsse
Nein, so kannst du es nicht machen, jede Eigenschaft kann nur einen Wert haben... D.h. wenn du
MENU_LINKS.1.NO.stdWrap2.if.equals = 18 definiert hast (Zeile 8-) dann überschreibst du das in Zeile 20 mit 19. Geht also so nicht. Aber wenn es genau nur um eine ID geht, kannst du es vielleicht mit einem override und if lösen, oder mit optionSplit.
Grüße
Christian
Hallo Kitsunet
Danke vielmals für deine Antwort.
Habe es nun gelöst.
Da man mit der Option optionSplit, leider nur den ersten,
die Mittleren und den letzte Menupunkt unabhängig definieren kann,
habe ich nun das gleiche Menu im Template zweimal übereinander definiert.
MENU_LINKS und MENU_LINKS_UNTEN.
Beim Ersten habe ich einfach mit MENU_LINKS.excludeUidList = 20,65,64
die unteren ausgeblendet und beim Zweiten die oberen Menupunkte mit
MENU_LINKS_UNTEN.excludeUidList = 19,18,17 ausgeblendet.
So konnte ich mehrere Menupunkte separat definieren und mein Problem lösen.
Bestimmt nicht die schönste, aber für mich momentan die Beste Lösung.
Problem ist also mal gelöst.
Danke und viele Grüsse
Stäubel
moin,
nur mal so als Hinweis, auch wenn das Problem gelöst ist:
Es gibt auch if.isInList, somit kannst du eine Liste auf Übereinstimmung prüfen.
Armin