page = PAGE
page {
10 = TEXT
10 {
value = eins,zwei
split {
token = ,
cObjNum = 1
1.current = 1
1.wrap = |
}
}
}
# Ausgabe: eins
zwei
Wer sich in diesem Beispiel mit ''10.split.1.debugData = 1'' den Inhalt aus //$cObj->data// als Tabelle ausgeben lässt, erhält zweimal exakt denselben Datensatz aus der Tabelle //pages//. **Zusätzlich** gibt es jedoch ein Feld //currentValue_kidjls9dksoje//, dass die unterschiedlichen Werte des cObjects ''10'' ausgibt: //eins// und //zwei//. Eben auf diese temporär verfügbaren Inhalte kann man mit ''current'' zugreifen.
10 = TEXT
10.current = 1
10.wrap = |
20 = TEXT
20 {
value = Hund,Katze,Maus
split {
token = ,
cObjNum = 1|*|2|*|3
1.current = 1
1.wrap = |
}
}
30 = TEXT
30.current = 1
30.wrap = |
40 = TEXT
40.current = 1
40.wrap = |
# Ausgabe: Hund
Maus
Maus
**Zwei Dinge fallen auf:**
- Der current-Wert ist nicht nur innerhalb von ''split'' verfügbar, sondern **kann auch in allen folgenden cObjects abgerufen werden**. Für das cObj ''10'' gilt dies nicht, da zum Zeitpunkt des Renderns noch kein current-Wert zur Verfügung stand.
- Außerhalb von ''split'' steht immer der **letzte** (= der aktuelle, englisch: //current//) Wert zur Verfügung. Im Beispiel wird nur der erste Wert von ''split'' verarbeitet und ausgegeben (durch den Einsatz von [[typo3:about:functions:optionsplit|optionSplit]]). Die beiden folgenden cObjects ''30'' und ''40'' sind keine Unterobjekte von ''split'' und erhalten über ''current'' daher jeweils den letzten Wert, der auf der Seite gespeichert ist.
----
===== setContentToCurrent =====
Überschreibt den aktuellen Wert des Elternelements mit dem vorher definierten Wert. Der neue Wert wird bei allen zugehörigen Elementen angewendet.
Im folgenden Beispiel wird der erste Wert //eins// im cObj ''1.10'' überschrieben, was sich auch auf ''1.20'' auswirkt. Das liegt daran, dass beides Unterelemente vom cObj ''1'' sind. Der Wert im cObj ''2'' bleibt davon ausgenommen, ''current'' lädt hier den Wert, den ''split'' diesem cObject zugeordnet hat.
10 = TEXT
10 {
value = eins,zwei
split {
token = ,
cObjNum = 1||2
1.10 = TEXT
1.10.value = Text
1.10.setContentToCurrent = 1
1.10.wrap = |
1.20 = TEXT
1.20.current = 1
2.current = 1
2.wrap = |
}
}
Ausgabe: Text
Textzwei
----
===== setCurrent =====
Ersetzt wie ''setContentToCurrent'' den aktuellen Wert des Elternelements, hier wird der Wert aber manuell als String angegeben. stdWrap-Funktionen sind anwendbar.
10 = TEXT
10 {
value = eins,zwei
split {
token = ,
cObjNum = 1||2
1.10 = TEXT
1.10.setCurrent = Text
1.10.current = 1
1.10.wrap = |
1.20 = TEXT
1.20.current = 1
2.current = 1
2.wrap = |
}
}
# Ausgabe: Text
Textzwei
----
===== current als Variable nutzen =====
Wie oben bereits erklärt, kann man mit ''setContentToCurrent'' und ''setCurrent'' selbst Werte übergeben. Hierzu muss kein Wert vorhanden sein, den man dann überschreibt - der Wert eines jeden cObjects kann auf diese Weise als Variable gespeichert werden.
In den folgenden Beispielen wird jeweils ein Wrap mit dynamischem Inhalt (aktuelle Seiten-ID) als current-Wert gespeichert und anschließend zwei verschiedenen cObjects als ''outerWrap'' übergeben.
Während der current-Wert im ersten Beispiel innerhalb von ''setCurrent'' erstellt wird, erfolgt im zweiten Fall die Zuweisung mittels ''setContentToCurrent'', nachdem die gewünschten Angaben per COA generiert werden. Das Ergebnis ist in beiden Fällen dasselbe. Dennoch sollte man bei dynamischen Werten z.B. aus Datenbankfeldern ''setContentToCurrent'' verwenden, weil dies die Arbeit erleichtert und mehr Möglichkeiten bietet.
10 = TEXT
10 {
setCurrent = |
setCurrent.insertData = 1
cObject = COA
cObject {
10 = TEXT
10.field = title
10.required = 1
10.outerWrap.current = 1
20 = TEXT
20.field = description
20.required = 1
20.outerWrap.current = 1
}
}
20 = COA
20 {
10 = TEXT
10.field = uid
# Leerzeichen bei '
20 = TEXT
20.value = |
stdWrap.setContentToCurrent = 1
stdWrap.cObject = COA
stdWrap.cObject {
10 = TEXT
10.field = title
10.required = 1
10.outerWrap.current = 1
20 = TEXT
20.field = description
20.required = 1
20.outerWrap.current = 1
}
}
Ebene 1
Beschreibung