Ausführliches TMENU in TYPO3
Immer wieder ensteht der Wunsch, ein Menü etwas komplizierter zu gestalten. So möchte man z.B. im textbasierten TYPO3 Menü TMENU auch informationen aus subtitle, abstract, description und anderen anzeigen. Oder man möchte Über das Datum der letzen Änderung (timestamp) anzeigen, wann die Seite zuletzt geändert wurde.
Für diese Zwecke lässen sich, wie so oft in Typoscript, die stdwrap Eigenschaften nutzen. Im speziellen Fall vom TMENU nutzt man dabei die stdwrap Funktionen der Menüzustände (TMENUITEMS) NO, ACT, CUR etc.
Realisierung eines ausführlichen TYPO3 Textmenüs mit der stdwrap Eigenschaft insertData
Eine weitere Möglichkeit mehrer Felder in einem TYPO3 Menü zu verwenden ist die insertData Eigenschaft der stdwrap Funktion. inserData sorgt dafür, dass Daten in geschwungenen Klammern durch die entsprechenden Daten ersetzt werden.
temp.my_menu_2 = HMENU
temp.my_menu_2 {
1 = TMENU
1 {
wrap = <table>|</table>
NO{
allWrap = <tr>|</tr>
linkWrap = <td>|</td><td>{field:description}</td><td>{field:subtitle}</td>
allStdWrap.insertData = 1
}
}
}
Beispiel für ein ausführliches TMENU mit Metadaten der Seiten mit stdwrap.cObject
Um in der Gestaltung des Menüs möglichst frei zu sein kann man den gesamten Inhalt eines Menüpunktes per stdwrap durch ein cObject, z.B. ein Objektarray COA ersetzen. Man hat nun alle Felder der Seite zu Auswahl, z.B die Metadaten Inhaltsangabe = "abstract", Stichworte="keywords", Beschreibung="description" aber auch die allgemeinen Seitendaten Seitentitel = "title", Untertitel = "subtitle" und Navigationstitel = "nav_title".
temp.my_menu = HMENU
temp.my_menu {
1 = TMENU
1 {
wrap = <table style="width:100%">|</table>
NO{
allWrap = <tr>|</tr>
# TMENU nicht standartmäßig verlinken, Link nur auf Seitentitel
doNotLinkIt = 1
# Menüpunkte werden durch cObject Array COA ersetzt
stdWrap.cObject = COA
stdWrap.cObject {
20 = TEXT
20.wrap = <td >|</td>
# Seitentitel in erster Spalte des Menüs anzeigen und verlinken
20.field = title
20.typolink.parameter.field = uid
# Zweite Spalte des Menüs wird zur Beschreibung der Metadaten oder '-' wenn leer
40 = TEXT
40.wrap = <td>|</td>
40.field = description
40.ifEmpty = -
# Die letze Menüspalte wird zum letzen Änderungsdatum der Seite.
60 = TEXT
60.wrap = <td>|</td>
60.field = tstamp
60.date = d.m.Y
}
}
}
}


Kommentar hinzufügen