Typoscript Operatoren
Typoscript hat eine einfache Syntax mit diversen Operatoren und Kniffen die hier kurz erläutert werden.
Strukturierung
Generel handelt es sich bei Typoscript-Konfigurationen um PHP-Arrays und daher gibt es mehrere Ebenen und Strukturierungen. Der Punkt trennt verschiedenen Ebenen und geschwungene Klammern fassen diese zusammen.
Daher sind die beiden unteren Schreibweisen equivalent:
page = PAGE
page.typeNum = 0
page.10 = TEXT
page.10.value = Hello World!
page.10.wrap = -- | --
page.10.case = upper
page = PAGE
page {
typeNum = 0
10 = TEXT
10 {
value = Hello World!
wrap = -- | --
}
10.case = upper
}
Kommentare
Wie auch in PHP gibt es in Typoscript Kommentare.
# einzeiliger Kommentar
// einzeliger Kommentar
/*
mehrzeiliger Kommentar
Kommentar
*/
Wertzuweisung
Werte werden generell per = zugewiesen und müssen auch nicht unter Anführungszeichen gestellt werden. Das heißt auch, dass nur eine Anweisung pro Zeile stehen kann. Mehrzeilige Werte können in runde Klammern gesetzt werden.
10.value = Hello World!
10.value (
Hello
World!
)
Zuweisung löschen
Zuweisung werden mittels größer Zeichen gelöscht.
10.value = Hello World!
10.value >
Zuweisungen kopieren
Auch das Kopieren von Zuweisungen ist ohne Probleme mit dem kleiner Zeichen möglich. Dabei ist zu beachten, dass bei relativen Pfaden immer ein . vor dem zu kopierenden Objekt stehen muss.
page.10 = TEXT
page.10.value = Hello World!
page.20 < page.10
page {
10 = TEXT
10.value = Hello World!
20 < .10
}
Spezielle Zuweisungsoperatoren
Seit Typo3 4.0 unterstützt Typoscript auch spezielle Stringoperationen.
- prependString()
Zeichenkette am Anfang eines bestehenden Strings anfügen. - appendString()
Zeichenkette am Ende eines bestehenden Strings anfügen. - removeString()
Zeichenkette aus einem bestehenden String löschen. - replaceString(val1|val2)
Zeichenkette in einem bestehenden String ersetzen - addToList()
Wert an eine kommaseperierte Liste anfügen - removeFromList()
Wert aus einer kommaseperierten Liste entfernen
page.10.value = Hello World
page.10.value := appendString(!)
plugin.tx_example.idList = 11,14
plugin.tx_example.idList := addToList(23)
Conditions
Typo3-Conditions dienen zur Abfrage von diversen Parameter und funktionieren wie if-else-Verzweigungen. Dabei können die Bedingungen mittels &&, || bzw AND, OR verknüpft werden. Die Bedingungen können mittels = bzw > und < gestellt werden. Eine NOT-Abfrage ist leider nicht möglich.
[PIDinRootline = 11]
..
[global]
[browser=msie]
..
[browser=firefox] OR [browser=opera]
..
[global]
[browser=msie]
..
[else]
..
[end]
Eine gesamte Liste aller Conditions findet sich in der Typo3-Core-Dokumentation: http://typo3.org/documentation/document-library/references/doc_core_tsref/4.1.0/view/4/1/
Simulation einer NOT-Condition
[IP = 127.0.0.1]
[else]
..
[end]
Die wichtigsten Conditions sind:
- browser (msie, firefox, opera)
- version
- system (linux, win, mac)
- device (pda, wap, grabber, robot)
- hour, minute, dayofweek, dayofmonth, month
- usergroup (int, *)
- loginUser (int, *)
- PIDinRootline
- PIDupinRootline
- [globalString = HTTP_HOST=www.typo3.com]
- [globalVar = GP:print > 0]
- [globalVar = TSFE:id = 10]
- [loginUser = *]
- [globalVar = TSFE : beUserLogin > 0]]