Dies ist eine alte Version des Dokuments!
Steht für Content Array und ermöglicht das Beschreiben von cObjects in nummerierter Reihenfolge. Es ist aber selbst kein echtes cObject, was frei verwendet werden kann. Das Top Level Object page
z.B. ist vom Typ carray, wodurch ermöglicht wird, Inhaltselemente nummeriert auszugeben.
Eigenschaft | Datentyp | Beschreibung |
---|---|---|
1,2,3,4 … | cObject | Enthält die einzelnen cObjects. Die Reihenfolge der Ausgabe erfolgt anhand der Nummerierung, unabhängig von der Reihenfolge im Setup-Feld. |
stdWrap-Eigenschaften | stdWrap | Ermöglicht stdWrap-Funktionen. |
<td>-params | <td>-params | Nur verfügbar, wenn das cObject diese Eigenschaft unterstützt (z.B. CTABLE ) |
page = PAGE page { 20 = TEXT 20.value = folge 10 = TEXT 10.value = Reihen wrap = <p>|</p> } # Ausgabe: <p>Reihenfolge</p>
Ermöglicht eine Fallunterscheidung. Unter key
wird üblicherweise ein dynamischer Wert, z.B. ein Datenbankfeld ausgelesen. Das Ergebnis ist der Schlüsselbegriff, der mit den frei benannten cObjects verglichen wird. Die Schlüsselbegriffe können Integer-Werte oder Strings sein, dürfen aber nicht mit den folgenden Begriffen übereinstimmen, da sie Eigenschaften von CASE
darstellen: key, if, setCurrent, stdWrap. Das als default benannte cObject wird verwendet, wenn kein anderes cObject mit dem Schlüsselbegriff übereinstimmt.
Eigenschaft | Datentyp | Beschreibung |
---|---|---|
key | string / stdWrap | Hier wird der Schlüsselbegriff ausgelesen. Üblicherweise werden die stdWrap-Eigenschaften verwendet, also z.B. key.data oder key.field . |
[Schlüsselbegriffe] | cObject | Die erwarteten, möglichen Ergebnisse von key werden als Namen für cObjects verwendet. Hier kann also die gewünschte Ausgabe definiert werden. |
default | cObject | Dieses cObject wird verwendet, wenn die anderen aufgeführten Schlüsselbegriffe nicht mit dem Wert aus key übereinstimmen. |
if | if | Identisch mit der stdWrap-Funktion if . Wenn das Ergebnis false ist, wird das gesamte CASE-Objekt nicht gerendert. |
setCurrent | string / stdWrap | Ersetzt den aktuellen Wert des Elternelements durch den folgenden String. |
stdWrap | stdWrap | Ermöglicht stdWrap-Funktionen für jedes Objekt, egal wie der key-Wert lautet. |
####### Beispiel mit Integerwert und if ###############
Steht für Content Object Array. Ermöglicht das Zusammenfassen mehrerer Inhaltselemente, um sie anschließend als eines zu behandeln. COA
und COBJ_ARRAY
sind einander identisch. Bei COA_INT
wird der Inhalt nicht im Cache gespeichert.
Eigenschaft | Datentyp | Beschreibung |
---|---|---|
1,2,3,4 … | cObject | Enthält die einzelnen cObjects. Die Reihenfolge der Ausgabe erfolgt anhand der Nummerierung, unabhängig von der Reihenfolge im Setup-Feld. |
if | if | Identisch mit der stdWrap-Funktion if . Wenn das Ergebnis false ist, wird das gesamte COA nicht gerendert. |
wrap | wrap / stdWrap | Umschließt das gesamte COA. |
stdWrap | stdWrap | Ermöglicht stdWrap-Funktionen für das COA. |
############ Beispiel mit COA und if ###############
Erzeugt Inhalt aus Datenbank-Tabellen.
Eigenschaft | Datentyp | Beschreibung |
---|---|---|
select | select | Steuert die SQL-Abfrage auf die Datenbank. |
table | Tabellenname | Die Tabelle, aus der Inhalt ausgelesen werden soll. Üblicherweise ist das tt_content. Erlaubt sind nur Tabellen mit den Präfixen tt_ , tx_ , ttx_ , fe_ , user_ sowie die Tabelle pages . |
renderObj | cObject | Definiert die Ausgabe der Datensätze. Einzelne Felder können ausgelesen und die Ergebnisse mit stdWrap bearbeitet werden. Wenn kein renderObj festgelegt wurde, setzt TYPO3 automatisch renderObj < [Tabellenname aus select] . Damit werden die entsprechenden Angaben z.B. für tt_content aus css_styled_content ausgelesen. Wurde css_styled_content nicht inkludiert, erfolgt keine Datenausgabe im Frontend! |
wrap | wrap | Umschließt die gesamte Ausgabe. |
stdWrap | stdWrap | Wird nach stdWrap ausgeführt. |
slide | integer / stdWrap | Vererbung von Inhalt: Wenn durch select kein Inhaltselement gefunden wurde, kann hiermit entlang der rootline nach Inhalt auf anderen Seiten gesucht werden. Stoppt bei der ersten Seite mit Inhalt.Mögliche Werte sind -1 (bis zur root-Seite), 1 (nur die aktuelle Ebene) und 2 (eine Ebene höher). Nutze -1 bei Kombination mit slide.collect . |
slide.collect | integer / stdWrap | Kann zusätzlich zu .slide verwendet werden, um alle gefundenen Inhaltselemente auf der aktuellen Seite sowie der übergeordneten Seiten auszugeben.Mögliche Werte sind -1 (bis zur root-Seite) und ein positiver Wert, der die Anzahl der zu durchsuchenden Ebenen angibt. |
slide.collectFuzzy | boolean / stdWrap | Falls bis zur festgelegten Ebene keine Inhalte gefunden wurde, sucht TYPO3 weiter entlang der rootline bis zum ersten Treffer. |
slide.collectReverse | boolean / stdWrap | Angabe nur sinnvoll zusammen mit .slide.collect . Ordnet die Inhaltselemente anders an: Die Inhalte der aktuellen Seite werden zuletzt ausgegeben. |
# Allgemeines Beispiel page.10 = CONTENT page.10 { table = tt_content select { orderBy = sorting where = colPos=0 } renderObj = COA renderObj { 10 = TEXT 10.field = header 10.wrap = <h1>|</h1> 20 = TEXT 20.field = bodytext 20.wrap = <p>|</p> } wrap = <div>|</div> }
# Vererbung für die rechte Spalte aktivieren styles.content.getRight.slide = -1
Mit FILE
wird der Inhalt von Dateien eingebunden, es ist daher nicht zu verwechseln mit filelink
. Ein Bild würde ein img-Element als Wrap erhalten, die Ausgabe wäre dann identisch mit dem cObject IMAGE
. Sinnvoll ist eine Verwendung z.B. von HTML-Dokumenten.
Eigenschaft | Datentyp | Beschreibung |
---|---|---|
file | resource / stdWrap | |
linkWrap | linkWrap / stdWrap | |
wrap | wrap / stdWrap | |
stdwrap | stdWrap | |
altText titleText | string / stdWrap | Nur für Bilddateien: |
emptyTitleHandling | string / stdWrap | |
longdescURL | string / stdWrap | Nur für Bilddateien: |
Seit 4.6 als deprecated eingestuft und in 6.0 entfernt. Stattdessen TEXT verwenden.
Unterschied zu TEXT: Der stdWrap wird als Eigenschaft von .value
bzw. .stdWrap
verwendet.
# Identische Ergebnisse: 10 = HTML 10.value = HTML mit value 10.value.case = upper 10.value.wrap = <h1>|</h1> 20 = HTML 20.value = HTML mit stdWrap 20.stdWrap.case = upper 20.stdWrap.wrap = <h1>|</h1> 30 = TEXT 30.value = Text 30.case = upper 30.wrap = <h1>|</h1>
Gibt ein komplettes Image-Tag mit ausgelesenen Größenangaben zurück. Weitere Attribute lassen sich hinzufügen. stdWrap-Funktionen sind nutzbar.
10 = IMAGE 10.file = fileadmin/images/bild.jpg # Ausgabe: <img src="fileadmin/images/bild.jpg" width="250" height="100" border="0" alt="" /> 20 = IMAGE 20 { file = fileadmin/images/bild.jpg params = class="foo" border = 1 altText = Mein Bild titleText = Mein Bild longdescURL = http://www.example.org/about-the-image.html linkWrap = <a href="http://www.example.org">|</a> # oder imageLinkWrap = 1 imageLinkWrap { # weitere Angaben } wrap = <div>|</div> stdWrap { # weitere Angaben } }
Gibt nur den reinen Dateipfad zum Bild zurück. stdWrap-Funktionen sind nutzbar.
10 = IMG_RESOURCE 10.file = fileadmin/images/bild.jpg # Ausgabe: fileadmin/images/bild.jpg
LOAD_REGISTER gibt selbst keine Daten aus, sondern bietet die Möglichkeit, das Array $GLOBALS['TSFE']->register[] mit eigenen Werten zu belegen. Diese Inhalte können mit getText ausgelesen werden.
Die Werte werden im Register wie bei einem Stapel behandelt: der zuletzt angelegte Inhalt liegt oben. Mit RESTORE_REGISTER
wird der oberste Inhalt wieder entfernt. Es muss nicht für jeden neuen Inhalt ein LOAD_REGISTER angelegt werden, die Wertzuweisung kann in einem erfolgen. Aber: Das Entfernen durch RESTORE_REGISTER wird immer auf das gesamte LOAD_REGISTER angewendet!
Auf LOAD_REGISTER kann auch stdWrap
angewendet werden, was es z.B. möglich macht, mit cObject
umfangreichere Inhalte ins Register zu laden (siehe Beispiel 4).
Beispiel 1: Es werden zwei Farbangaben mit verschiedenen Namen registriert. Vor der Ausgabe des Inhalts mit der blauen Farbe wird der benötigte zweite Wert jedoch mit RESTORE REGISTER wieder entfernt und kann somit nicht ausgelesen werden.
10 = LOAD_REGISTER 10.roteFarbe = color:red; 15 = LOAD_REGISTER 15.blaueFarbe = color:blue; 20 = TEXT 20.value = Inhalt 20.dataWrap = <p style="{register:roteFarbe}">|</p> 30 = RESTORE_REGISTER 40 = TEXT 40.value = Inhalt 40.dataWrap = <p style="{register:blaueFarbe}">|</p>
Ausgabe:
<p style="color:red;">Inhalt</p> <p style="">Inhalt</p>
Beispiel 2: Es werden nacheinander zwei Werte in einem Inhalt gleichen Namens registriert. Der zuletzt angelegte Inhalt wird ausgelesen. Nach dem Anwenden von RESTORE_REGISTER ist immer noch die erste Wertzuweisung vorhanden und wird entsprechend ausgegeben.
10 = LOAD_REGISTER 10.farbe = color:red; 15 = LOAD_REGISTER 15.farbe = color:blue; 20 = TEXT 20.value = Inhalt 20.dataWrap = <p style="{register:farbe}">|</p> 30 = RESTORE_REGISTER 40 = TEXT 40.value = Inhalt 40.dataWrap = <p style="{register:farbe}">|</p>
Ausgabe:
<p style="color:blue;">Inhalt</p> <p style="color:red;">Inhalt</p>
Beispiel 3: Die beiden Wertzuweisungen sind diesmal in einem LOAD_REGISTER definiert. Durch RESTORE_REGISTER werden beide Farbangaben entfernt und können für den zweiten Inhalt nicht mehr ausgelesen werden.
10 = LOAD_REGISTER 10.roteFarbe = color:red; 10.blaueFarbe = color:blue; 20 = TEXT 20.value = Inhalt 20.dataWrap = <p style="{register:blaueFarbe}">|</p> 30 = RESTORE_REGISTER 40 = TEXT 40.value = Inhalt 40.dataWrap = <p style="{register:roteFarbe}">|</p>
Ausgabe:
<p style="color:blue;">Inhalt</p> <p style="">Inhalt</p>
Beispiel 4: Mit cObject
können auch umfangreichere Inhalte zwischengespeichert werden:
10 = LOAD_REGISTER 10.diverseElemente.cObject = COA 10.diverseElemente.cObject { 10 = TEXT 10.value = Inhalt 10.wrap = <p>|</p> 20 = IMAGE 20.file = fileadmin/images/gitarre.png } 20 = TEXT 20.data = register:diverseElemente
Ausgabe:
<p>Inhalt</p> <img src="fileadmin/images/gitarre.png" width="#" height="#" border="0" alt="" />
Beispiel 5: Mit dataWrap
lässt sich der Inhalt des Registers um dynamischen Inhalt erweitern. Dies ist auch aus dem Register selbst möglich, sogar aus dem aktuell zu definierenden:
10 = LOAD_REGISTER 10.helloworld = Hello 20 = LOAD_REGISTER 20.helloworld.dataWrap = {register:helloworld} world! 30 = TEXT 30.data = register:helloworld
Ausgabe:
Hello world!
Hinweis: Würde im letzten Beispiel 40 = RESTORE_REGISTER
ausgeführt und anschließend erneut register:helloworld ausgegeben, wäre dieser neue Inhalt wieder nur Hello aus 10
. Registereinträge gleichen Namens werden halt nie überschrieben, sondern es wird immer ein neuer Eintrag hinzugefügt.
Entfernt den zuletzt angelegten Wert aus dem Register. Das Entfernen eines frei wählbaren Registereintrags ist nicht möglich. Siehe LOAD_REGISTER
. RESTORE_REGISTER hat keine weiteren Eigenschaften, die definiert werden könnten.
Entgegen der Norm werden die stdWrap-Eigenschaften bei TEXT nicht unterhalb einer Eigenschaft stdWrap
ausgeführt, sondern direkt auf dem root-Level des cObjects TEXT. Siehe HTML.