Benutzer-Werkzeuge

Webseiten-Werkzeuge


typo3:about:functions:current

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Nächste Überarbeitung
Vorherige Überarbeitung
typo3:about:functions:current [2014/03/11 20:07] – angelegt admintypo3:about:functions:current [2017/12/14 20:10] (aktuell) – [current] admin
Zeile 4: Zeile 4:
  
 **Beispiel:**\\ **Beispiel:**\\
-Das Elternelement ist hier das cObject ''10'', dessen Inhalt //eins,zwei// mit ''split'' zu zwei dynamischen Werten aufgeteilt wird. Diese werden nacheinander dem cObj ''1'' innerhalb von ''split'' übergeben. Für jeden Wert werden die Funktionen des cObjects einmal angewendet, im Beispiel der Wrap.+Der Wert des cObject ''10'', //eins,zwei//, wird mit ''split'' zu zwei dynamischen Werten aufgeteilt. Diese werden nacheinander dem cObj ''1'' innerhalb von ''split'' übergeben. Für jeden Wert werden die Funktionen des cObjects einmal angewendet, im Beispiel der Wrap.
  
 +<code typoscript>
 +page = PAGE
 +page {
 +  10 = TEXT
 +  10 { 
 +    value = eins,zwei
 +    split {
 +      token = ,
 +      cObjNum = 1
 +      1.current = 1
 +      1.wrap = <p>|</p>
 +    }
 +  }
 +}
 +# Ausgabe: <p>eins</p> <p>zwei</p>
 +</code>
 +
 +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.
 +
 +<WRAP center round important 80%>
 +Das Elternelement in diesem Beispiel ist **nicht** das cObject ''10'', sondern ''page''! Das ist wichtig, wie in folgendem Beispiel klar wird:
 +</WRAP>
 <code typoscript> <code typoscript>
 10 = TEXT 10 = TEXT
-10 {  +10.current = 1 
-  value = eins,zwei+10.wrap = <p>|</p> 
 +20 = TEXT 
 +20 {  
 +  value = Hund,Katze,Maus
   split {   split {
     token = ,     token = ,
-    cObjNum = 1+    cObjNum = 1|*|2|*|3
     1.current = 1     1.current = 1
-    1.wrap = <p>|</p>+    1.wrap = <h1>|</h1>
   }   }
 } }
-# Ausgabe: <p>eins</p><p>zwei</p>+30 = TEXT 
 +30.current = 1 
 +30.wrap = <p>|</p> 
 +40 = TEXT 
 +40.current = 1 
 +40.wrap = <p>|</p> 
 +# Ausgabe: <p></p> <h1>Hund</h1> <p>Maus</p> <p>Maus</p>
 </code> </code>
  
-Wer sich in diesem Beispiel mit ''10.split.1.debugData = 1'' den Inhalt aus //$cObj->data// als Tabelle ausgeben lässterhä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.+**Zwei Dinge fallen auf:** 
 +  - Der current-Wert ist nicht nur innerhalb von ''split'' verfügbarsondern **kann auch in allen folgenden cObjects abgerufen werden**. Für das cObj ''10'' gilt dies nichtda 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 ===== ===== setContentToCurrent =====
Zeile 50: Zeile 85:
 Ausgabe: <p>Text</p>Text<p>zwei</p> Ausgabe: <p>Text</p>Text<p>zwei</p>
 </code> </code>
 +
 +----
  
 ===== setCurrent ===== ===== setCurrent =====
Zeile 78: Zeile 115:
 </code> </code>
  
-===== setCurrent oder setContentToCurrent? =====+----
  
 +===== 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.
 +
 +<code typoscript>
 +10 = TEXT
 +10 {
 +  setCurrent = <div class="{field:uid}">|</div>
 +  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
 +  }
 +}
 +</code>
 +<code typoscript>
 +20 = COA
 +20 {
 +  10 = TEXT
 +  10.field = uid
 +  # Leerzeichen bei '<div' nur wegen Fehler im Syntax-Highlighting:
 +  10.wrap = < div class="|">
 +  20 = TEXT
 +  20.value = |</div>
 +  
 +  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
 +  }
 +}
 +</code>
 +<code html>
 +<div class="65">Ebene 1</div>
 +<div class="65">Beschreibung</div>
 +</code>
typo3/about/functions/current.1394564847.txt.gz · Zuletzt geändert: 2015/12/03 19:30 (Externe Bearbeitung)