Das Menü oben

Beginnen wir also mit dem Menü. Alle Menüs haben ein "Menü-Ober-Element", HMENU. Das heisst übersetzt nichts anderes als "hierarchisches Menü".
Hier mal ein einfacher Code für das Menü:

TypoScript
TOPMENU = HMENU
TOPMENU {
	special = directory
	special.value = 3
	1 = TMENU
	1.wrap=<ul>|</ul>
	
	1.NO = 1
	1.NO.linkWrap = <li>|</li>
	
	1.ACT = 1
	1.ACT < .NO
	1.ACT.doNotLinkIt = 1
	1.ACT.allWrap = <li id="topnavi-aktiv">|</li> 
}

Wollen wir uns das mal anschauen.
Also wir definieren unseren Marker als HMENU.
Diesem sagen wir mit special = directory , das es sich um ein menü handelt, das sich nach dem Seitenbaum richtet.
Mit special.value = 3 sagen wir dem Menü, das es als Ausgangspunkt die Seite mit der id 3 hat, in meinem Fall ist das die Seite "oberes Menü"
Tipp: wenn ihr im Seitenbaum mit der Maus über das Icon einer Seite fahrt, bekommt ihr die Seitenid eingeblendet.

Nun fangen wir mit der ersten Ebene des Menüs an (hier brauchen wir auch nur eine Ebene, wir wollen oben keine Unterseiten anzeigen)
Also nehmen wir wieder für das Unterobjekt eine Zahl, diesmal die 1
1 = TMENU
Damit legen wir fest, das es sich um ein Textmenü handelt.

Als nächstes packen wir das Menü ein. Wir nehmen standardmässig für ein CSS-Layout eine Liste der Form

HTML
<ul>
	<li><a href="#">Menüpunkt 1</a></li>
	<li><a href="#">Menüpunkt 2</a></li>
	<li><a href="#">Menüpunkt 3</a></li>
</ul>

Wir legen also um das ganze Menü die ul's:

1.wrap=

    |




Jetzt geht es zu den einzelnen Menü-Einträgen, also die Seitenlinks.
1.NO = 1
Was ist denn das ?

ich möchte lösen:
ok, unser TMENU hat ein Unterobjekt, den normalen Menüeintrag (NO)
mit 1.NO = 1 sagen wir nichts anders als
[Zustand normaler Menüeintrag] = aktiviert (1)
Dies ist zwar nicht unbedingt nötig, wir gewöhnen uns das aber besser direkt so an, damit wir später nicht stolpern.

Wir packen noch um unseren Eintrag den li-tag mit der Anweisung

1.NO.linkWrap =

  • |
  • Jetzt wollen wir noch den ausgewählten Eintrag hervorheben. Dafür gibt es das Objekt ACT (actual)Wir aktivieren den Zustand mit

    1.ACT = 1

    Dann machen wir es uns ganz einfach und kopieren alles vom NO-Objekt mit

    1.ACT < .NO

    Der aktuelle Eintrag soll nicht verlinkt sein

    1.ACT.doNotLinkIt = 1

    Das einzige, was anders sein soll ist die css-Klasse, und die ändern wir für den ACT-Eintrag mit

    1.ACT.allWrap =

  • |
  • Fertig.
    Zum besseren Verständnis hier alle Zustände, die es für Menüeinträge gibt:

    NO - der Normalzustand
    RO - der RollOver (hover)-Zustand (den benötigen wir hauptsächlich für das grafische Menü, sonst machen wir das mit CSS)
    CUR - Der Menüeintrag der momentan geöffneten Seite
    ACT - wie CUR, nur bleibt er auch bei geöffneten Unterseiten des Eintrags
    IFSUB - ein Zustand für Seiten, die Unterseiten besitzen
    SPC - Abstand (space) - gilt für Seiten vom Typ "Abstand"
    USR - für Seiten mit Zugangsbeschränkung

    Jeder Zustand, der benutzt wird, muss immer aktiviert werden.

    Typo3