Translations
Info
All page names need to be in English.
en da  de  fr  it  ja  km  nl  ru  zh

De:TSref

From TYPO3Wiki
Jump to: navigation, search

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

Derzeit arbeitet das DocTeam an einer kleinen Einführung in TypoScript: Ts45min. Fragen, Hinweise oder ganze Absätze sind natürlich willkommen. Einfach wie in einem Wiki mitmachen und reinschreiben:) Danke.

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.