De:TSref
From TYPO3Wiki
| TypoScript Referenz |
|
||||
TSref: Die Referenz zu TypoScript.
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.
Backend anpassen
In den Benutzer/Gruppen-TS wird festgelegt, wie das Backend für die einzelnen Benutzer aussehen sollen, 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. http://typo3.org/documentation/document-library/references/doc_core_tsconfig/current/
TSref - Typoscript Referenz - Vorlage
Die Vorlage dieser Referenz ist unter http://typo3.org/documentation/document-library/references/doc_core_tsref/current/
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 = HTML 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'] = 'HTML'; $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 HTML # allerdings nur ein "value" aber kein "Value" erwartet, hat der Eintrag "Value" keinen Effekt.
Datentypen
Objekte wie HTML, 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 = HTML # 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: HTML / stdWrap sagt aus, dass HTML-Code eingegeben werden kann, und auch eine stdWrap Funktion angewendet werden kann.
#Beispiel page.40 = TSref/HTML # Der Datentyp von .value beim Objekt HTML lautet "HTML / 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.
http://typo3.org/documentation/document-library/references/doc_core_tsref/4.0.0/view/6/1/
Setup / Top-Level Elemente
Es gibt Elemente, die eine besondere Bedeutung haben und auf der untersten Ebene angesiedelt sind. Bekannte Beispiele sind CONFIG, includeLibs 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 # HTML-Objekt festlegen page.100 = HTML # HTML-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
media/scripts/ Plugins
http://typo3.org/documentation/document-library/references/doc_core_tsref/4.0.0/view/11/1/
Standard Templates
http://typo3.org/documentation/document-library/references/doc_core_tsref/4.0.0/view/12/1/
PHP include scripts
http://typo3.org/documentation/document-library/references/doc_core_tsref/4.0.0/view/13/1/
Updates
Recent Updates of TSref 23.1.2007 ... 27.4.2007 documentName | currentID | oldID | info-text
Just for info - Martin, es gibt ein neues sehr praktisches Tool. Hierüber kannst Du sehen, welche Änderungen es in TSref gibt. Sobald Du - und andere die helfen - die Änderungen hier mit hereingenommen habt, kannst Du die Zahlen ändern. 1922 ist die neueste Version, 1654 eine ältere.
