De:TSref
TSref: Die Referenz zu TypoScript.
notice - Note
Die Referenz dient dem Nachschlagen von bestimmten Funktionen. Sie hat nicht den Anspruch das Konzept TypoScript zu erklären noch ein Tutorial für das Arbeiten mit TypoScript anzubieten. Es wird versucht immer auch einige Beispiele mit anzubringen um die Referenz gerade für Anfänger besser greifbar zu machen. Auch wird versucht möglichst viele Ausdrücke zu verlinken, so dass ein bestimmter Paramter, Datentyp oder eine Funktion direkt nachgeschlagen werden kann.
Du kannst an dieser Referenz mitarbeiten - die Englischen Seiten übersetzen, Fehler korrigieren, Beispiel-Code testen oder fehlende Seiten hinzufügen.
Falls Du Dir unsicher sein solltest, dann kannst Du auch Fragen, Anregungen oder Kommentare auf den Diskussionsseiten hinterlassen.
TypoScript ein kleiner Überblick
TYPO3 kann an vielen unterschiedlichen Stellen in diversen Zusammenhängen konfiguriert werden. Intern verwendet TYPO3 dafür ein Feld, in dem alle Informationen gespeichert werden. Im Kern ist TypoScript also ein großes Konfigurationsarray, in dem für die unterschiedlichen Einstellungsmöglichkeiten Elemente mit Werten belegt werden.
Im Backend finden sich an unterschiedlichen Stellen die Möglichkeit TypoScript Konfigurationsarrays aufzubauen. In jeder Seite kann das Feld "Seiten-Typoscript" gefüllt werden, für Benutzer und Gruppen gibt es auch jeweils ein TypoScript Feld. In diesen drei Feldern können nur Konfigurationsarrays aufgebaut werden. Die eigentlichen TypoScript Funktionen die in dieser Referenz beschrieben werden können dort nicht verwendet werden.
TypoScript mit allen seinen Möglichkeiten wird dazu verwendet, die Seitenausgabe von Typo3 zu steuern. Dafür werden die TypoScript-Templates verwendet. Nur im Template-Feld "Setup" kann TypoScript voll genutzt werden.
notice - Note
Backend anpassen
In den Benutzer/Gruppen-TS wird festgelegt, wie das Backend für die einzelnen Benutzer aussehen soll, im Seiten-TS können Seiten-Abhängig bestimmte Einstellungen für das Aussehen angepasst werden. Da dieses ein reines Konfigurieren ist und mit der Frontend-Ausgabe nichts zu tun hat, wird das in der TSConfig erklärt. https://docs.typo3.org/typo3cms/TSconfigReference/
TSref - Typoscript Referenz - Vorlage
Die Vorlage dieser Referenz ist unter https://docs.typo3.org/typo3cms/TyposcriptReference/
An dem Aufbau des Originals wird sich auch diese Referenz orientieren.
Einführung
Da TypoScript intern in PHP-Arrays geparst wird unterscheidet TypoScript zwischen Groß- und Kleinschreibung.
#Beispiel: page.40 = TEXT page.40.value = Hello World # Diese Zeile überschreibt "Hello World" page.40.value = Hallo Welt # Diese Zeile hat hier keinen Effekt page.40.Value = Diesen Text werden wir nicht sehen
Der entsprechende PHP-Code würde wie folgt aussehen:
#Beispiel: $array['page.']['40'] = 'TEXT'; $array['page.']['40.']['value'] = 'Hello World'; $array['page.']['40.']['value'] = 'Hallo Welt'; # hier wird offensichtlich, warum der zweite Wert den ersten überschreibt $array['page.']['40.']['Value'] = 'Diesen Text werden wir nicht sehen'; # dieser Wert würde erhalten bleiben, da das TypoScript Objekt TEXT # allerdings nur ein "value" aber kein "Value" erwartet, hat der Eintrag "Value" keinen Effekt.
Datentypen
Objekte wie TEXT, IMAGE oder COA haben unterschiedliche Eigenschaften. Jede Eigenschaft erwartet eine Eingabe von einem bestimmten Typ (z.B. kommaseparierte Liste, Ganzzahlen, Text usw.). Wenn eine Eigenschaft einen Wert vom Typ tag erwartet, so sollte dort entsprechend HTML-Code eingegeben werden. Wenn es vom Typ "resource" ist, dann wird eine Referenz auf eine Datei aus dem Resource-Feld des Templates erwartet. Wenn unterschiedliche Datentypen erlaubt sind, z.B. boolean und string ("boolean / string") so werden alle Datentypen angegeben.
Datentypen wiederum haben keine weitere Funktion sondern definieren lediglich in welcher Form ein Wert gesetzt werden muss. In manchen Fällen wird eine Kombination von DatenTyp und TypoScript Funktion verwendet (string/stdWrap). Das bedeutet dann, dass zum einen der Wert übergeben werden kann, zum anderen aber auch gleichzeitig die Funktion verwendet werden kann.
10 = TEXT # value ist vom Typ string/stdWrap 10.value = Hallo Welt # stdWrap bietet wiederum die Eigenschaft typolink 10.value.typolink = 10 # stdWrap bietet auch die Eigenschaft case 10.value.case = upper
Bedingungen
In TypoScript ist es möglich, über Bedingungen (Conditions) Fallunterscheidungen durchzuführen. Dadurch können Browserweichen erstellt werden, Eingeloggte Benutzer können z.B. mit Ihrem Namen angesprochen werden während noch nicht eingeloggte Benutzer das Login-Formular zu sehen bekommen.
Funktionen
Es gibt diverse Funktionen, die spezielle Aufgaben übernehmen. Häufig verwendete Funktionen sind typolink und stdWrap. Wie eine Funktion anzuwenden ist, wird anhand des Datentyps ersichtbar.
Der Datentyp: string / stdWrap sagt aus, dass ein Text eingegeben werden kann, und auch eine stdWrap Funktion angewendet werden kann.
#Beispiel page.40 = TEXT # Der Datentyp von .value beim Objekt TEXT lautet "string / stdWrap". page.40.value = Hallo Welt # Die Funktion stdWrap hat eine Eigenschaft "typolink" die wiederum die # Funktion typolink aufruft, die eine Eigenschaft # parameter besitzt. page.40.value.typolink.parameter = 1 # eine weitere Eigenschaft von stdWrap page.40.value.case = upper
Konstanten
Konstanten werden im "Constants"-Feld des TypoScript Templates definiert. Die Syntax für Konstanten entspricht der normalen TypoScript Syntax.
Es ist sinnvoll, Systemweite Definitionen wie Farben, Schriften, Größenangaben und auch Dateiangaben über die Konstanten zu setzen, da dadurch es möglich ist ein Wert der an vielen Stellen verwendet wird, aber überall gleich gesetzt werden soll, zentral zu verwalten.
https://docs.typo3.org/typo3cms/TyposcriptSyntaxReference/TyposcriptTemplates/Constants/Index.html
Setup / Top-Level Elemente
Es gibt Elemente, die eine besondere Bedeutung haben und auf der untersten Ebene angesiedelt sind. Bekannte Beispiele sind CONFIG, PAGE oder PLUGIN. Mit diesen Elementen werden zentrale Konfigurationen vorgenommen.
Content-Objekte und deren Eigenschaften
Neben den Top-Level Objekten gibt es weitere Objekte, die die häufig benötigten Funktionalitäten bereitstellen. Die Menü- und Gifbuilder-Objekte haben wie auch die Top-Level Objekte eine gesonderte Stellung und werden seperat behandelt.
# Objekt definieren # Top-Level Objekt Page page = PAGE # TEXT-Objekt festlegen page.100 = TEXT # TEXT-Objekt mit Parametern versehen page.100.value = <h1>Hallo Welt</h1>
Ein Objekt muss zum einen mit der Zuweisung des Namens in Großbuchstaben definiert werden, zum anderen muss das Objekt auch Parameter zugewiesen bekommen, die bestimmen was das Objekt ausgibt.
Wenn ein Objekt als Datentyp erwartet wird, z.B. bei der Plugin-Konfiguration, so braucht das Objekt nicht mehr explizit definiert werden, sondern es reicht direkt die entsprechenden Parameter zu übergeben.
calc
Eine besondere Stellung hat die Funktion +calc inne. Wenn ein Datentyp "+calc" enthält, dann kann der Inhalt mit "+-/*" berechnet werden. Allerdings wird die Punkt-vor-Strich Rechnung nicht berücksichtigt, sondern die Berechnung findet in der Reihenfolge der Operatoren statt.
# Beispiel 1 + 3 * 2 = 8 # entspricht also (1+3)*2 = 8
stdWrap
Entsprechendes gilt für die Kombination aus "typ / stdWrap". In diesem Falle wird der Wert durch die stdWrap Funktion geparsed.
# Beispiel: # Datentyp: pixels /stdWrap .pixels = 100 # der ursprüngliche Wert "100" wird jetzt mit dem Inhalt des Datenbank-Feldes "imagewidth" überschrieben .pixels.field = imagewidth # Sicherstellen, dass der Wert ein Integer ist! .pixels.intval = 1
Dieses Beispiel importiert einen Wert aus dem Feld "imagewidth" des aktuellen $cObj->data-array. Damit der Wert auf jeden Fall eine Ganzzahl ist, wird die intval()-Funktion darauf angewendet.
optionSplit
Die optionSplit Funktion wird hauptsächlich in den Menü-Objekten verwendet. Die Funktion ermöglicht die Definiton von Werten anhand der Position in einer Liste (z.B. dem Menü).
GIFBUILDER - Grafische Funktionen
Menü Funktionen
Updates
Recent Updates of TypoScript Reference: Update introduction
Just for info - Martin, es gibt ein neues sehr praktisches Tool. Hierüber kannst Du sehen, welche Änderungen es an der TypoScript Reference gibt. Sobald Du - und andere die helfen - die Änderungen hier mit hereingenommen habt, kannst Du die Zahlen ändern. 4d5460 ist die neuere Version, 054b99 eine ältere.