Freunde von semantisch korrektem HTML die auf ein grafisches, mehrstufiges Menü angewiesen sind, werden wissen wovon ich spreche. Man hat ein tolles GMENU gebastelt, welches wunderbare Grafiken liefert und fragt sich „warum ist mein HTML kaputt?“. Nach ein paar Sekunden googlen findet man die Antwort: GMENU fehlt die Eigenschaft „wrapItemAndSub“, mit welchem sich einfach verschachtelte Menüs realisieren lassen. Es gibt viele Ansätze dies zu umgehen, manche arbeiten mit IFSUB, manche verlassen sich auf Tidy. Vor Kurzem stand ich (wieder einmal) vor dem Problem und wollte es einmal anders lösen.
Dabei bin ich auf folgende Lösung gestoßen:
temp.mainMenu = HMENU temp.mainMenu { 1 = TMENU 1 { wrap = <ul>|</ul> NO = 1 NO { wrapItemAndSub = <li>|</li> doNotShowLink = 1 RO = 1 ATagTitle.field = title beforeImg = GIFBUILDER beforeImg { XY=[20.w]+15,42 backColor = #1092AD 10 = TEXT 10 { text { field = title align = center } fontFile = fileadmin/font.ttf fontSize = 16 fontColor = #FFFFFF offset = 0,34 } } beforeROImg < .beforeImg beforeROImg.20.fontColor = #FFD20F beforeImgLink = 1 } ACT < .NO ACT { RO = 0 beforeImg.20.fontColor = #FF0000 wrapItemAndSub = <li class="act">|</li> } } 2 < .1 } lib.mainMenu < temp.mainMenu |
Das tolle an dieser Lösung ist nicht nur, dass man wrapItemAndSub verwenden kann, nein auch alle anderen Eigenschaften und Zustände des TMENU stehen einem zur Verfügung!
Ich frage mich, warum wrapItemAndSub bis heute noch nicht in TYPO3 implementiert wurde. Vielleicht wäre es mit der aktuellen Veröffentlichung der TYPO3 4.3 Alpha 2 und der Aufforderung die Feature-Wunschliste zu füllen einmal Zeit diesem Punkt etwas Nachdruck zu verleihen. Falls ihr noch andere Lösungsansätze auf Lager oder bessere Ideen habt, bitte informiert uns in den Comments!