optionSplit Typoscript

Mit der Funktion optionSplit kann man hervorragend Menüs auf seiner TYPO3 Seite gestalten (z.B. die Farben bestimmer Menüpunkte ändern, etc.). Hierbei gibt es die Parts, die so aussehen |*| und die Subarts die so || eingeleitet werden.

Die Haupt-TypoScript-Syntax ist dabei:
…erster Part… |*| …mittlerer Part… |*| …letzter Part…

und jeder Part kann unterteilt werden in:
Subpart || Subpart …

Dabei gibt es vier Regeln bei der optionSplit TypoScript Funktion:

Regel1: Die Priorität ist zuerst beim letzten Part dann beim ersten Part und anschliessend der mittlere Part.

Regel2: Wenn der mittlere Part fehlt wird der letzte Subpart des ersten Parts wiederholt um Werte zu füllen.

Regel3: Wenn der erste und der mittlere Part fehlen wird der erste Subpart des letzten Parts wiederholt.

Regel4: Wenn der letzte Part fehlt wird der mittlere Wert wiederholt.

aa a a a
a || b || ca b c c c …
a || b |*| ca b c c c …
a || b |*| c |*| d || ea b c c … c c d eRegel 1
a || b |*| c |*| d || ea b d eRegel 1
a || b |*| c |*| d || ea d eRegel 1
a || b |*||*| c || da b b c dRegel 2
|*||*| a || ba a … a bRegel 3
a |*| b || c |*|a b c b c b c … b cRegel 4

Quelle: wiki.typo3.org

optionSplit wird somit genutzt mehrere Menüenträge in Teile zu zerlegen. Der Vorteil liegt dabei in der unterschiedlichen Darstellung der einzelnen Menüpunkte. Die Funktion optionSplit bietet unterschiedliche Verhaltensweisen und ist manchmal etwas kniffelig.

Wir haben folgendes Menü: Home, Menü2, Menü3, Menü4, Menü5

Beispiel1:

page = PAGE
page.10 = HMENU
page.10.1 = TMENU
page.10.1.NO.linkWrap = A |*| B |*| C

Ausgabe:

Beispiel2:

page = PAGE
page.10 = HMENU
page.10.1 = TMENU
page.10.1.NO.linkWrap = A |*||*| B

# Achtung : zwischen den beiden Trennern steht kein Leerzeichen, deshalb gilt folgendes: Sobald der mittlere Part leer ist wird der letzte Subpart des ersten Parts wiederholt (Kein Subpart im Beispiel gegeben, deshalb wird schlicht der erste Part wiederholt). – Regel2

Ausgabe:

Beispiel3:

page = PAGE
page.10 = HMENU
page.10.1 = TMENU
page.10.1.NO.linkWrap = A |*| B||C |*| D

Zuerst kommt der letzte Part, dann der erste Part dann wird der mittlere Teil solange behandelt bis alle Menüelemente abgearbeitet sind (also noch drei Mal). In den drei Wiederholungen wird der Subpart abgewechselt – zuerst der erste (B) dann der zweite (C) und anschliessend wieder der erste (B).

Ausgabe:

Beispiel4:

page = PAGE
page.10 = HMENU
page.10.1 = TMENU
page.10.1.NO.linkWrap = A||B |*| C |*| D

Hier steht der Subpart ganz außen beim ersten Part – Also zuerst der letzte Part (DMenü5) dann der erste Part (Subpart) (AHome und BMenü2) dann wird der Rest mit mittleren Part gefüllt (CMenü3 und CMenü4).

Ausgabe:

Beispiel5:

page = PAGE
page.10 = HMENU
page.10.1 = TMENU
page.10.1.NO.linkWrap = A||B |*||*| C

Letzter Part wird ermittelt (CMenü5), dann der erste Part in diesem Fall ein Subpart also (AHome und BMenü2). Zu guter Letzt werden die restlichen 2 Menüs mit dem letzten Subpart des ersten Part gefüllt (BMenü3 und BMenü4). – Regel2

Ausgabe:

Beispiel6:

page = PAGE
page.10 = HMENU
page.10.1 = TMENU
page.10.1.NO.linkWrap = |*||*| A||B||C

Bei diesem optionSplit Fall sind der erste und der mittlere Part leer- im letzten Part existiert ein Subpart. Es wird folgendermaßen vorgegangen: Letzter Part wird ermittelt (Subpart A||B||C) – AMenü3, BMenü4 und CMenü5. Anschließend den Rest mit erstem Subpart des letzten Part auffüllen – AHome und AMenü2. – Regel3

Ausgabe:

2 Kommentare
  1. Patrick sagte:

    Vielen Dank für die Erläuterung des optionSplit.
    Die ganzen Regeln kann man sich ja fast nicht merken, da muss man immer wieder mal nachlesen 😉 Also gleich mal die Seite bookmarken.

    Schöne Grüße Patrick

Trackbacks & Pingbacks

  1. […] TYPO3 bringt aber auch ohne Frage eine hohe Komplexität (TypoScript mit Funktionen wie stdWrap, optionSplit, etc.) mit sich, dem sich die Anwender und Entwickler stellen müssen. Hilfe dazu findet man aber […]

Kommentare sind deaktiviert.