In diesem letzten Teil der Einführung in TypoScript beschäftigen wir und mit “optionSplit“.

In den vorangegangene Teile haben wir uns mit den Themen “prinzipieller Aubau“, “Daten auslesen und darstellen“, “Menüs“ und “stdWrap” beschäftigt.

Wozu benötigt man “optionSplit“?

Oft hat man Designs, die es vorsehen, dass in einem horizontalen Menü jeder Menüpunkt am Ende ein “-” als Trenner bekommt. Dies soll aber bei dem letzen Menüpunkt nicht der Fall sein. Ein weiters Beispiel könnte sein, dass der erste und der letzte Menüpunkt die Schriftfarbe “rot” bekommen soll, alle mittleren Menüpunkte sollen aber “schwarz” als Schriftfarbe haben.

Schauen wir uns unser Menü aus dem Teil 3 der Einführung nochmal an:

1 lib.meinMenu = HMENU
2 lib.meinMenu.wrap = <ul> | </ul>
3 lib.meinMenu.1 = TMENU
4 lib.meinMenu.1.NO = 1
5 lib.meinMenu.1.NO.wrapItemAndSub = <li> | </li>

Wie sollen wir hier bestimmen, dass der erste und der letzte Menüpunkt die Farbe “rot” bekommt? Der Menüpunkt wird in der Zeile 5 bestimmt – und zwar für alle Menüpunkte!

Wir benötigen also einen Mechanismus, der uns die Liste aller Menüpunkte weiter zerlegt.

Regeln von optionSplit:

Ich kann Werte in einen ersten, einen mittleren und einen letzten Bereich einteilen:

|*|

Diese Bereiche kann ich weiter unterteilen:

||

Wie wende ich die Regeln an?

Kommen wie auf unser Beispiel von oben zurück. Wir nehmen mal an, wir haben eine css-Klasse “.rot”, die eine rote Schrift macht. Wenden wir diese nun auf unser Beispiel an:

1 lib.meinMenu = HMENU
2 lib.meinMenu.wrap = <ul> | </ul>
3 lib.meinMenu.1 = TMENU
4 lib.meinMenu.1.NO = 1
5 lib.meinMenu.1.NO.wrapItemAndSub = <li class=rot"> | </li>

Die Folge ist, dass alle Menüpunkte die rote Schrift haben. Wir wollen aber nur den ersten und den letzten Menüpunk in rot. Also schreiben wir:

1 lib.meinMenu = HMENU
2 lib.meinMenu.wrap = <ul> | </ul>
3 lib.meinMenu.1 = TMENU
4 lib.meinMenu.1.NO = 1
5 lib.meinMenu.1.NO.wrapItemAndSub = <li class="rot"> | </li> |*| <li> | </li> |*| <li class="rot"> | </li>

In Zeile 5 teilen wir die einzelnen Menüpunkte in erster (E), mittlerer (M) und letzter (L) Bereich in dem wir die Bereiche mittels des Zeichens “|*|” trennen. Schematisch:

5 lib.meinMenu.1.NO.wrapItemAndSub = E |*| M |*| L

Mit Hilfe der zweiten Regel kann ich nun die einzelnen Bereiche weiter aufteilen. Nehmen wir an, wir wollen folgende Zeichen vor einzelne Menüpunkte schreiben lassen:

< Seite 1
> Seite 2
- Seite 3
- Seite 4
- Seite 5
< Seite 6
> Seite 7

Das optionSplit dazu sieht wie folgt aus (wir benutzen hier die Eigenschaft “before” anstatt “wrapItemAndSub”):

lib.meinMenu.1.NO.before = <||>|*|-|*|<||>

Viele weitere Beispiele findet man in der TSRef im Kapitel “optionSplit“.

Damit endet die kleine Einführung in TypoScript. Es gibt sicherlich noch viele Themen, die man erläutern könnte. Ich werde sicherlich hier immer wieder kleine Themen erklären.

Als nächstes wird es aber eine Artikelserie zum Thema “TemplaVoila” geben. Ich werde zeigen, wie man ein statisches HTML-Template mittels TemplaVoila umsetzt. Dazu werde ich kleine Videos erstellen, die das Vorgehen Schritt für Schritt erklären und diese mit Texten weiter erläutern.

Popularity: 6%