Suchst du nach einem TYPO3 TMENU, was dynamische Klassen oder IDs vergeben kann? Dann bist du nun fündig geworden. Dieses Typoscript erstellt für jeden Menüpunkt eine eigene Klasse oder ID, je nachdem was du gerade brauchst. Dieser Typoscript wird besonders oft in Verbindung für Javascriptslider benutzt.
Diese Code liest die Seitenuid aus und hängen diese an deine Klasse/ID an. Dies ist möglich durch die Abfrage {field:uid}. Diese liest direkt die UID aus Datenbank aus. Es ist auch möglich auf jedes beliebige weitere Feld der Tabelle pages zuzugreifen.
Hier nun der Script:
page.20 = HMENU page.20{ 1 = TMENU 1{ expAll = 0 wrap = <ul>|</ul> NO = 1 NO { wrapItemAndSub= <li class="menu{field:uid}" id="menu{field:uid}">|</li> wrapItemAndSub.insertData=1 } } 2 < .1 }
Ergebnis sähe dann so aus:
<ul> <li class="menu2" id="menu2"> <a href="index.php?id=2" onfocus="blurLink(this);" >Seite 1</a> </li> <li class="menu3" id="menu3"> <a href="index.php?id=3" onfocus="blurLink(this);" >Seite 2</a> </li> <li class="menu4" id="menu4"> <a href="index.php?id=4" onfocus="blurLink(this);" >Seite 3</a> </li> <li class="menu5" id="menu5"> <a href="index.php?id=5" onfocus="blurLink(this);" >Seite 4</a> </li> </ul>
Verbesserungsvorschläge oder Kritik? Dann schreibt mir 🙂
Das könnte dich auch interessieren:
Tutorial für ein einfaches TYPO3 TMENU
TYPO3 Standardformular mit Captcha schützen
TYPO3 Bildernamen ohne Hashwert erhalten
Contentelemente in einen neuen div wrappen – section_frame erweitern
TYPO3 Optionsplit Tutorial
Überschrift mit Farbverlauf mittels Typoscript rendern
Canonical Tag mit Typoscript erstellen
// EDIT am 26.5.2013 nach dem richtigen Hinweis von Can
So bekommt man Probleme mit untermenüs, deren ul ist dann nicht mehr im Parent-LI enthalten!
Besser der allWrap kümmert sich nur um den ersten Teil und davor kommt ein :
wrapItemAndSub = |
allWrap= |
So funktioniert das mit ID + Untermenü ordentlich verschachtelt.
Danke für den Hinweis, das stimmt – vermutlich hatte ich beim Testen nur eine Ebene ausgelesen und 2 < .1 einfach so dazugeschrieben. Ich habe es oben angepasst. Vielen Dank!