====== Datentypen in TYPO3 ======
===== align =====
Gibt die Ausrichtung eines HTML-Elements an. Mögliche Werte sind ''right'', ''left'', ''center'' und ''justify''.
10.wrapAlign = center
----
===== boolean =====
Gibt **wahr** oder **falsch** an, wird zur Aktivierung oder Deaktivierung von Funktionen etc. verwendet. Aktiviert wird mit ''1'' oder einem beliebigen String, deaktiviert mit ''0'' oder einem leeren Wert. Daher würde der String //false// zur Aktivierung führen! Es ist dringend anzuraten, die Werte //0/1// zu verwenden.
# Wahr:
stripHtml = 1
stripHtml = true
stripHtml = false
stripHtml = qwertz
# Falsch:
stripHtml = 0
stripHtml =
----
===== case =====
Dieser Datentyp wird nur im Zusammenhang mit der stdWrap-Funktion [[typo3:about:functions:stdwrap#case|case]] verwendet und verändert die Groß-/Kleinschreibung von Strings.
__Mögliche Schlüsselwörter:__\\
''upper'' -> Ändert den gesamten String in Großbuchstaben.\\
''lower'' -> Ändert den gesamten String in Kleinbuchstaben.\\
''capitalize'' -> Schreibt den ersten Buchstaben __jedes__ Wortes groß.
10 = TEXT
10.value = Hello World!
10.case = upper
# Ausgabe: HELLO WORLD!
10 = TEXT
10 {
value = hallo_schoene_welt
case = uppercamelcase
}
# Ausgabe: HalloSchoeneWelt
----
===== date-conf =====
Wandelt einen Unix-Timestamp (Sekunden seit 1.9.1970) in eine Zeitangabe um. Buchstaben, die nicht mit der Funktion umgewandelt werden sollen, müssen mit einem Backslash maskiert werden.
Alle verfügbaren Parameter sind identisch mit der PHP-Funktion [[http://php.net/manual/de/function.date.php|date()]].
10.date = d.m.Y
20.date = \E\s \i\s\t H:i \U\h\r.
----
===== degree =====
----
===== dir =====
Dieser Datentyp wird nur im Zusammenhang mit der stdWrap-Funktion [[typo3:about:functions:stdwrap#filelist|filelink]] verwendet, wo eine genaue Beschreibung der Parameter zu finden ist.
10.filelist = fileadmin/images/|png,jpg|name||0
----
===== function name =====
----
===== getText =====
Mit **getText** können während des Seitenaufbaus dynamisch Inhalte aus Datenbanken, Register, GET/POST-Parametern etc. ausgelesen werden. Der Datentyp getText wird durch die stdWrap-Eigenschaften [[typo3:about:functions:stdwrap#data]], [[typo3:about:functions:stdwrap#datawrap|dataWrap]] und [[typo3:about:functions:stdwrap#insertdata|insertData]] verwendet.
==== Syntax ====
Aufgebaut ist eine getText-Abfrage wie folgt:\\
**[Typ] : [Parameter] [optionaler Parameter]**\\
Dem Typ folgt ein Doppelpunkt, anschließend werden ein oder mehrere Parameter gesetzt. Diese Parameter werden abhängig vom gewählten Typ mit weiteren Doppelpunkten, Pipe-Symbolen oder Kommas getrennt. So wird bei multidimensionalen Arrays (z.B. TSFE) das Pipe-Symbol verwendet, bei einer Datenbankabfrage kommen Doppelpunkte zum Einsatz. Was in den einzelnen Fällen anzuwenden ist, steht in der Typ-Tabelle.\\ Der Typ kann groß oder klein geschrieben werden. Vor und nach den Doppelpunkten __können__ Leerzeichen gesetzt werden, dies ist egal.
Die folgenden Typoscripts geben alle dasselbe Ergebnis aus: //
Sie sind auf Seite: Seitentitel
//.\\ **Bitte beachten:** Da bei ''insertData'' und ''dataWrap'' mehrere getText-Abfragen erfolgen können und auch mit normalem Text gemischt werden können, werden Typ und Parameter in geschweifte Klammern geschrieben.
10 = TEXT
10.data = field:title
10.noTrimWrap = |Sie sind auf Seite: |
|
20 = TEXT
20.value = Sie sind auf Seite: {field:title}
20.insertData = 1
20.wrap = |
30 = TEXT
30.value = Sie sind auf Seite:
30.dataWrap = | {field:title}
Mehrere getText-Abfragen können durch zwei Slashes ''%%//%%'' getrennt werden. TYPO3 verwendet den ersten Wert, der nicht leer oder Null ist.
10 = TEXT
10.data = field:nav_title // field:title
# Auch innerhalb der geschwungenen Klammern bei 'dataWrap' und 'insertData' möglich:
20 = TEXT
20.value = Sie sind auf Seite:
20.dataWrap = | {field:nav_title // field:title}
''dataWrap'' und ''insertData'' können auch **kombiniert** werden, um z.B. eine ID dynamisch in den dataWrap einzufügen:
10 = TEXT
10.dataWrap = DB:pages:{TSFE:id}:title
10.wrap3 = {|}
10.insertData = 1
**Erklärung:** Dies ist jetzt nur ein umständlicher Weg, den Seitentitel der aktuellen Seite auszugeben. Damit lassen sich allerdings auch sinnvollere Anforderungen umsetzen.\\
Die Reihenfolge von stdWrap ist hier entscheidend:
* Zuerst wird ''dataWrap'' ausgeführt, wodurch //{TSFE:id}// durch die aktuelle Seiten-ID ersetzt wird: //DB:pages:17:title//
* Dann folgt ''wrap3'', der die geschwungenen Klammern zum neu geschaffenen Wert hinzufügt: //{DB:pages:17:title}//
* Schließlich sorgt ''insertData'' dafür, dass der Wert erneut geparst und die getText-Abfrage durch den aktuellen Seitentitel ersetzt wird.
Es ist nicht möglich, diese Vorgehensweise zu verschachteln.
==== getText-Typen ====
^Typ^Beschreibung^
^field|Mit //field// kann ein Datenbankfeld aus der aktuellen Tabelle ausgegeben werden.\\ __Genauer__: Es wird auf ein Feld des aktuellen //$cObj-%%>%%data//-Arrays des cObjects zugegriffen. \\ **Im Normalfall** ist dies //$GLOBALS['TSFE']-%%>%%page//, was der aktuellen Seite entspricht.\\ Unter **TMENU**: Das Array entspricht dem Datensatz des Menüitems, also der verlinkten Seite.\\ Unter **CONTENT/RECORDS**: Das Array entspricht dem tatsächlichen Datensatz, z.B. //tt_content//. \\ Unter **GIFBUILDER**: Das Array entspricht den Daten, die den GIFBUILDER versorgen.
10 = TEXT
10.field = title
20 = TEXT
20.data = field:title
|
^parameters| |
^register|Lädt Inhalte aus dem Register. Diese können vorher selbst mit [[typo3:about:cobject#load_register|LOAD_REGISTER]] definiert werden, oder es werden interne Register gewählt (z.B. //count_menuItems//). Der Parameter ist hierbei der Wert aus dem Array //%%$GLOBALS['TSFE']->register%%//.
10 = LOAD_REGISTER
10.roteFarbe = color:red;
20 = TEXT
20.value = Inhalt
20.dataWrap = |
# Ausgabe: Inhalt
|
^leveltitle, leveluid, levelmedia|Geben Werte entlang der [[typo3:about:rootline|rootLine]] aus.\\ **leveltitle** -> Ermittelt den Seitentitel\\ **leveluid** -> Ermittelt die UID einer Seite\\ **levelmedia** -> Gibt den Inhalt des //media//-Feldes aus.\\ Sinnvolle Ergänzung bei levelmedia kann der Parameter ''slide'' sein, der nach einem Komma notiert wird: Damit wird nach Inhalt auf weiteren Seiten entlang der rootLine gesucht, wenn auf der vor dem Komma notierten Ebene nichts gefunden wurde.
10 = TEXT
10.data = levelmedia : -1, slide
10.listNum = 0
# Ausgabe des ersten Bildes, das in einem 'media'-Feld bis zur root gefunden wird
|
^levelfield|Gibt Werte aus wählbarem DB-Feld entlang der [[typo3:about:rootline|rootLine]] aus. Mit einem zweiten Parameter gibt man das gewünschte Feld an. ''slide'' als dritter Parameter ist ebenfalls möglich.\\ __Achtung:__ Per default sind nicht alle Datenbankfelder der Tabelle //pages// für die rootLine aktiviert. Wer weitere Felder auf diesem Wege auslesen möchte, muss diese im //Install Tool// unter ''[addRootLineFields]'' hinzufügen.
10 = TEXT
10.data = levelfield : -1, description, slide
# Ausgabe der ersten Meta-Beschreibung, die bis zur root gefunden wird
|
^date|Ermöglicht die Ausgabe von aktuellen Zeitangaben. Aktuell bedeutet __zum Zeitpunkt des Seitenaufbaus__; Uhrzeit etc. würden nicht aktualisiert werden, bis die Seite neu geladen wird. Nutzt die PHP-Funktion [[http://php.net/manual/de/function.date.php|date()]].
10 = TEXT
10.data = date:d.m.Y
# Ausgabe: 01.03.2014
|
^page|Liest ein //pages//-Feld auf der aktuellen Seite aus.\\ **Besonderheit:** Das Array //%%cObj->data%%// stellt Datensätze immer abhängig vom Umfeld bereit. Werden Inhalte aus der Tabelle //tt_content// ausgegeben, bietet das Array diese Felder an. ''field:uid'' würde nun die UID des Inhaltselements ausgeben. Mit ''pages:uid'' kann man stattdessen die UID der aktuellen Seite ausgeben.
10 = CONTENT
10 {
table = tt_content
renderObj = COA
renderObj {
10 = TEXT
10.dataWrap = Seite: {page:uid} - Inhalt: {field:uid}
20 = TEXT
20.dataWrap = {field:header}
}
}
# Ausgabe: Seite: 17 - Inhalt: 24
Überschrift Inhaltselement
|
^current|Gibt den aktuellen Wert der Variable //%%$this->data[$this->currentValKey]%%// aus. Die Funktion ist damit identisch mit ''current = 1''. Welcher Parameter verwendet wird ist egal, es muss einfach etwas dem Doppelpunkt folgen.
data = current:1
|
^level|Gibt das rootLine-Level (Ebene) der aktuellen Seite als Zahl aus. Welcher Parameter verwendet wird ist egal, es muss einfach etwas dem Doppelpunkt folgen.
10 = TEXT
10.data = level:1
|
^GP|Kann GET/POST-Parameter auslesen. GET-Parameter werden in der URL übermittelt, POST-Parameter von TYPO3 versteckt in einem Array gespeichert.
# URL: http://www.example.org/index.php?id=17
10 = TEXT
10.data = GP:id
# Ausgabe: 17
# URL: http://www.example.org/index.php?id=17&tx_ttnews[tt_news]=2
20 = TEXT
20.data = GP:tx_ttnews|tt_news
# Ausgabe: 2
|
^getenv|Gibt Umgebungsvariablen aus. Entspricht der gleichnamigen PHP-Funktion. //getIndpEnv// sollte bevorzugt verwendet werden, da diese systemunabhängig funktionieren.|
^getIndpEnv|Gibt Umgebungsvariablen aus, z.B. Informationen über Server und Domain. Dieser Typ ruft eine TYPO3-interne Funktion auf, welche die gewünschten Variablen unabhängig vom verwendeten System mit Werten versorgt.\\ [[typo3:about:umgebungsvariablen|Folgende Variablen stehen zur Verfügung.]]
10 = TEXT
10.data = getIndpEnv:HTTP_USER_AGENT
|
^TSFE|Liest Werte aus dem multidimensionalen Array //$GLOBALS['TSFE']// aus.
10 = TEXT
10.data = TSFE:fe_user|user|username
# Ausgabe: Namen des aktuell eingeloggten FE-Benutzers
20 = TEXT
20.data = TSFE:id
# Ausgabe: Aktuelle Seiten-ID
|
^DB|Gibt Werte aus einem Datenbankfeld aus. Der Pfad zum Feld wird mit Doppelpunkten getrennt: ''DB:[Tabelle]:[UID]:[Feld]''.
10 = TEXT
10.data = DB:tt_content:28:header
|
^file| |
^fullRootLine|Gibt Felder aus der Tabelle //pages// aus. Abhängig von den Parametern ist es möglich, entlang der rootLine nach Inhalten zu suchen.\\ Positive Werte zählen wie üblich von der root-Seite bis zur aktuell gewählten Seite. ''0'' steht für die root-Seite selbst. **Aber:** Negative Werte greifen auf Ebenen __oberhalb der root-Seite__ zu, was nur Sinn macht, wenn in der rootLine mehr als eine Seite mit root-Template liegt.\\ **Achtung:** Die Ausgabe des Wertes ist nur bedingt abhängig von der aktuellen Seite! Basis ist immer die aktive root-Seite!
# Aktive Ebene: Ebene4 bis Ebene6
Ebene: root(0) Ebene1 Ebene2 Ebene3 Ebene4 Ebene5 Ebene6
TS-Template: ja ja
Wert: -4 -3 -2 -1 0 1 2
# Aktive Ebene: Ebene1 bis Ebene3
Ebene: root(0) Ebene1 Ebene2 Ebene3 Ebene4 Ebene5 Ebene6
TS-Template: ja ja
Wert: 0 1 2 3
Selbstverständlich wird das folgende TypoScript immer nur auf die Seiten des gewählten TypoScript-Templates angewendet. Würde es im Beispiel nur auf Ebene4 eingetragen, würde auf den oberen Seiten nichts ausgegeben: Dort gilt das TypoScript-Template der root-Seite.
10 = TEXT
10.data = fullRootLine:3, nav_title, slide
|
^LLL|Mit //LLL// kann auf Label zugegriffen werden, die in einer Sprachdatei (xml, xlf oder php) hinterlegt sind. Die Ausgabe des Labels ist von der Sprache abhängig, die im Backend konfiguriert und aktuell im Frontend gewählt wurde (und natürlich in der Sprachdatei definiert sein muss).\\ \\ Es kann auf Sprachdateien von TYPO3-Erweiterungen oder eigene Dateien zugegriffen werden:
10 = TEXT
10.data = LLL:EXT:tt_news/pi/locallang.xml:nextArticle
20 = TEXT
20.data = LLL:fileadmin/Language/locallang.xml:Left
|
^path|Verändert einen Dateipfad, üblicherweise einen Extensionpfad, in einen Pfad relativ vom root-Verzeichnis der TYPO3-Installation. Bei einem fehlerhaften Ursprungspfad wird nichts ausgegeben.
10 = TEXT
10.data = path:EXT:tt_news/locallang.xml
# Ausgabe: typo3conf/ext/tt_news/locallang.xml
|
^cObj|Zählt ausgegebene Datensätze bei der Verwendung von CONTENT und RECORDS. ''parentRecordNumber'' ist der einzige Parameter.
10 = CONTENT
10 {
table = tt_content
select {
orderBy = sorting
where = colPos=0
}
renderObj = COA
renderObj {
10 = TEXT
10.field = header
10.dataWrap = {cObj:parentRecordNumber}: |
}
}
# Ausgabe aller Header von Inhaltselementen auf der aktuellen Seite,
# mittels 'cObj:parentRecordNumber' fortlaufend nummeriert
|
^debug|Gibt Informationen in einer HTML-Tabelle aus, z.B. die Inhalte der //pages//-Tabelle.\\ **debug:data** -> Liefert den Inhalt aus //%%$cObj->data%%//.\\ **debug:rootLine** -> Liefert die gesamte rootLine von //root// bis zur aktuellen Seite.\\ **debug:fullRootLine** -> Name missverständlich. Wie rootLine, nur entgegengesetzte Ausgabe der Inhalte.\\ **debug:register** -> Liefert die aktiven Register mit ihren aktuellen Inhalten.\\ **debug:page** -> Liefert die Daten der aktuellen Seite. Im Kontext einer Seite identisch mit ''debug:data'', abzgl. dem //current// Wert in ''currentValue_kidjls9dksoje''.
10 = TEXT
10.data = debug:rootLine
|
^global|Veraltet. Stattdessen sollte //GP//, //TSFE// oder //getenv// verwendet werden.|
----
===== GraphicColor =====
----
===== HTML code =====
----
===== HTML-color =====
----
===== imageExtension =====
----
===== imgResource =====
----
===== integer =====
Eine positive oder negative Ganzzahl.
Im folgenden Beispiel steht der Integer-Wert für ein ASCII-Zeichen:
10.char = 83
----
===== linkWrap =====
Ermöglicht das Erzeugen von Links, die auf eine bestimmte __Ebene__ die rootLine hinauf verweisen. Möglich sind Ebenen von ''0'' (root) bis ''9''.
# Verweis auf die root-Ebene
10.linkWrap = |
----
===== list =====
----
===== margins =====
----
===== Object types =====
==== cObject ====
==== frameObj ====
==== Gifbuilder Object ====
==== menu object ====
----
===== page id =====
----
===== path =====
----
===== pixels =====
----
===== positive integer =====
Eine positive Ganzzahl.
10.spaceAfter = 20
----
===== resource =====
Gibt die Quelle einer Datei an.
* Enthält der String einen Slash ''/'', erwartet TYPO3 Pfad und Namen einer Datei auf dem Server.
* Ist kein Slash vorhanden, erwartet TYPO3 die Datei innerhalb des Resource-Feldes im TypoScript-Template. Hier kann zusätzlich ein Sternchen ''*'' als Platzhalter verwendet werden, falls die Datei eine Nummerierung besitzt (//gitarre_01.png, gitarre_02.png, ...//). Es wird dann das Bild mit der höchsten Nummerierung verwendet.\\
# Pfad + Datei auf dem Server
10.file = fileadmin/images/gitarre.png
# Datei im TypoScript-Template (bis TYPO3 4.7)
20.file = gitarre*.png
----
===== rotation =====
----
===== space =====
Gibt den Abstand vor und nach einem Objekt in Pixeln an. Diese beiden Werte werden mit dem Pipe-Symbol unterteilt.
10.space = 20|30
----
===== strftime-conf =====
Wandelt einen Unix-Timestamp (Sekunden seit 1.9.1970) in eine Zeitangabe um. Die gewünschten Parameter werden mit ''%'' begonnen. Wird mit der stdWrap-Funktion [[typo3:about:functions:stdwrap#strftime|strftime]] verwendet.
Alle verfügbaren Parameter sind identisch mit der PHP-Funktion [[http://de2.php.net/manual/de/function.strftime.php|strftime()]].
10.strftime = %d.%m.%Y
20.strftime = Es ist %R Uhr.
----
===== string =====
Steht für eine Zeichenkette, die beliebigen Inhalt und Umfang besitzen kann.
10.value = Hello world!
20.wrap = | und {$Konstante}.
----
=====
10.typolink.ATagParams = accesskey="b"
----
===== target =====
Ziel eines ''''-Links. In erster Linie für die Verwendung mit Frames gedacht, lässt sich hiermit auch das Öffnen des Links in einem neuen Fenster erzwingen.
__Mögliche Werte sind:__\\
''_blank'' -> Link wird in neuem Fenster im Vordergrund geöffnet.\\
''_self'' -> Link wird im gleichen Fenster geöffnet.\\
''_top''\\
''content''\\
''_parent''\\
''selbst bestimmter Frame-Name''\\
10.typolink.target = _blank
----
===== UNIX-time =====
Es wird eine Zeitangabe im Format des Unix-Timestamp (Sekunden seit 1.9.1970) erwartet.
----
===== VHalign =====
----
===== wrap =====
Umschließt den aktuellen Wert mit dem im Wrap definierten Inhalt. Die Stelle, wo der Inhalt eingefügt werden soll, wird mit dem Pipe-Symbol markiert. Dieses kann auch am Anfang oder Ende des Wraps stehen. Ist kein Pipe-Symbol im Wrap vorhanden, wird der Inhalt am Ende des Wraps eingefügt.
__Teilweise__ kann mit der zusätzlichen Eigenschaft ''.splitChar'' ein alternatives Trennzeichen gewählt werden. Dies ist dann in der jeweiligen [[typo3:about:functions:stdwrap|stdWrap]]-Funktion vermerkt.
10.wrap = |
20.wrap = ?
20.wrap.splitChar = ?
----
===== x,y,w,h =====