Benutzer-Werkzeuge

Webseiten-Werkzeuge


typo3:about:functions:stdwrap

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
typo3:about:functions:stdwrap [2015/11/01 10:32] admintypo3:about:functions:stdwrap [2017/12/12 22:50] (aktuell) – [tableStyle] admin
Zeile 5: Zeile 5:
   * **Daten verarbeiten** (split, wrap, typolink, ...)   * **Daten verarbeiten** (split, wrap, typolink, ...)
 Die Funktionen werden in der Reihenfolge abgearbeitet, in der sie im Quellcode hinterlegt sind. Die Reihenfolge im TypoScript spielt keine Rolle. Man kann stdWrap aber rekursiv (''stdWrap.stdWrap'') anwenden, um die Reihenfolge zu beinflussen. Seit TYPO3 4.7 steht mit ''orderedStdWrap'' eine neue Funktion zur Verfügung, mit der man die Reihenfolge der Anwendungen nummeriert festlegen kann. Die Funktionen werden in der Reihenfolge abgearbeitet, in der sie im Quellcode hinterlegt sind. Die Reihenfolge im TypoScript spielt keine Rolle. Man kann stdWrap aber rekursiv (''stdWrap.stdWrap'') anwenden, um die Reihenfolge zu beinflussen. Seit TYPO3 4.7 steht mit ''orderedStdWrap'' eine neue Funktion zur Verfügung, mit der man die Reihenfolge der Anwendungen nummeriert festlegen kann.
- 
-Grundlage für diese Auflistung waren verschiedene TYPO3-Bücher wie das "TYPO3 Kochbuch" und "TypoScript - kurz und gut" aus dem O'Reilly Verlag, das [[http://www.typo3lexikon.de|TYPO3-Lexikon]] von Stefan Frömken, Einsichten in den TYPO3-Quellcode sowie natürlich die offizielle [[https://docs.typo3.org/typo3cms/TyposcriptReference/|TypoScript Reference]], welche sich seit der Veröffentlichung von TYPO3 CMS 6.2 stark verbessert hat. 
  
 ---- ----
  
-====== stdWrap-Funktionen ======+====== Daten holen ======
  
 ==== stdWrapPreProcess ==== ==== stdWrapPreProcess ====
Zeile 192: Zeile 190:
  
 ---- ----
 +
 +===== Überschreiben /Bedingungen =====
  
 ==== stdWrapOverride ==== ==== stdWrapOverride ====
Zeile 231: Zeile 231:
 10.ifEmpty = Es existiert kein Wert. 10.ifEmpty = Es existiert kein Wert.
 # Ausgabe: Es existiert kein Wert. # Ausgabe: Es existiert kein Wert.
 +</code>
 +
 +Mit den bereitgestellten stdWrap-Funktionen und ''cObject'' kann dann beispielsweise auch ein anderer Inhalt referenziert werden:
 +
 +<code typoscript>
 +lib.alternative = TEXT
 +lib.alternative.value = Alternativer Inhalt.
 +
 +10 = TEXT
 +10.data = field:nav_title
 +10.wrap = <h3>|</h3>
 +10.ifEmpty.cObject < lib.alternative
 +# Ausgabe: <h3>Alternativer Inhalt.</h3>
 </code> </code>
  
Zeile 292: Zeile 305:
  
 Entfernt mit der PHP-Funktion ''trim()'' alle Leerzeichen vor und nach dem Wert. Entfernt mit der PHP-Funktion ''trim()'' alle Leerzeichen vor und nach dem Wert.
- 
 <code typoscript> <code typoscript>
 10 = TEXT 10 = TEXT
Zeile 298: Zeile 310:
 10.trim = 1 10.trim = 1
 </code> </code>
 +
 +----
 +
 +==== strPad ====
 +
 +<wrap caution>ab TYPO3 6.1</wrap>
 +
 +Füllt den aktuellen Wert auf eine festgelegte Länge (''length''). Der mit ''padWith'' festgelegte Füllwert kann aus einem oder mehreren Zeichen bestehen und wiederholt sich, bis die gewünschte Gesamtlänge des Wertes erreicht ist. Mit ''type'' kann gewählt werden, an welcher Seite dieser Füllwert angesetzt wird.
 +
 +''strPad'' wird den aktuellen Wert hingegen __nicht__ beschneiden, falls er bereits länger ist als mit ''length'' angegeben.
 +
 +<code typoscript>
 +10 = TEXT
 +10.value = HALLO WELT.
 +10.strPad {
 +  // Gewünschte Gesamtlänge des Eingabewertes:
 +  length = 36
 +  // Beliebiger Füllwert:
 +  padWith = füllen
 +  // left, right oder both:
 +  type = both
 +}
 +# Ausgabe: füllenfüllHALLO WELT.füllenfülle
 +</code>
 +
 +Ab TYPO3 6.2 können auf alle drei Eigenschaften stdWrap-Funktionen angewendet werden.
 +
 ---- ----
  
Zeile 346: Zeile 385:
 **Datentyp:** //Feldname// **Datentyp:** //Feldname//
  
-Die TypoScript-Anweisungen des Elements werden nur ausgeführt, wenn das in ''fieldRequired'' genannte Feld nicht leer ist bzw. den Wert ''0'' oder ''NULL'' besitzt. Dieses Feld muss nicht zwingend identisch mit dem Inhalt des Elements sein.+Die TypoScript-Anweisungen des Elements werden nur ausgeführt, wenn das in ''fieldRequired'' genannte Feld nicht leer ist bzw. nicht den Wert ''0'' oder ''NULL'' besitzt. Dieses Feld muss nicht zwingend identisch mit dem Inhalt des Elements sein.
  
 <code typoscript> <code typoscript>
Zeile 355: Zeile 394:
  
 ---- ----
 +
 +===== Daten verarbeiten =====
  
 ==== csConv ==== ==== csConv ====
-**Datentyp:**  
  
 +Mit dieser Funktion kann man Daten aus der Datenbank für das Frontend in einem anderem Format (charset, z.B. //UTF-8// zu //ISO 8859-1//) ausgeben. Da dieser Anwendungsfall in einer sauberen Installation praktisch nicht gegeben ist, verzichte ich hier auf ein Beispiel.
  
 ---- ----
Zeile 492: Zeile 533:
 ==== hash ==== ==== hash ====
 <wrap caution>ab TYPO3 4.6</wrap>\\ <wrap caution>ab TYPO3 4.6</wrap>\\
-**Datentyp:** +**Datentyp:** [[typo3:about:datentypen&#string|string]] / stdWrap
  
 +Erstellt einen Hash-Wert aus dem aktuellen Wert mit einem der Algorithmen aus der PHP-Funktion [[http://www.php.net/manual/de/function.hash-algos.php|hash_algos]] (z.B. md5 oder sha1).
 +
 +<code typoscript>
 +# Gravatar verwendet zur Anzeige des Bildes den Hash der E-Mail-Adresse:
 +10 = TEXT
 +10 {
 +  value = test@example.org
 +  hash = md5
 +  wrap = <img src="http://www.gravatar.com/avatar/|" />
 +  # Ergebnis: <img src="http://www.gravatar.com/avatar/0c17bf66e649070167701d2d3cd71711">
 +}
 +</code>
  
 ---- ----
Zeile 506: Zeile 559:
       * **//floor//** ->Rundet zur vorherigen Ganzzahl ab       * **//floor//** ->Rundet zur vorherigen Ganzzahl ab
       * **//round//** -> Rundet den Wert auf eine festzulegende Anzahl von Nachkommastellen       * **//round//** -> Rundet den Wert auf eine festzulegende Anzahl von Nachkommastellen
-  * ''.decimals'': Anzahl der Nachkommastellen. Nur in Verbindung mit **//round//**.+  * ''.decimals'': Anzahl der Nachkommastellen. Nur in Verbindung mit **//.roundType = round//**.
  
 <code typoscript> <code typoscript>
Zeile 520: Zeile 573:
 ---- ----
 ==== numberFormat ==== ==== numberFormat ====
-**Datentyp:** +**Datentyp:** numberFormat (PHP-Funktion [[http://php.net/manual/de/function.number-format.php|number_format()]])
  
 +Formatiert eine Gleitkommazahl um, z.B. in eine Preisangabe.
 +
 +<code typoscript>
 +10 = TEXT
 +10 {
 +  value = 1299.9
 +  
 +  numberFormat {
 +    # Nachkommastellen festlegen:
 +    decimals = 2
 +
 +    # Verwendung von cObject für mehrsprachige Formatierung:
 +    thousands_sep.cObject = TEXT
 +    thousands_sep.cObject {
 +      value = ,
 +      stdWrap.lang.de = .
 +    }
 +    dec_point.cObject = TEXT
 +    dec_point.cObject {
 +      value = .
 +      stdWrap.lang.de = ,
 +    }
 +  }
 +  noTrimWrap = || &euro;|
 +}
 +# Ausgabe Deutsch:  1.299,90 €
 +# Ausgabe Englisch: 1,299.90 €
 +</code>
  
 ---- ----
Zeile 597: Zeile 678:
 **Datentyp:** [[typo3:about:datentypen#boolean|boolean]] / [[typo3:about:datentypen#string|string]] **Datentyp:** [[typo3:about:datentypen#boolean|boolean]] / [[typo3:about:datentypen#string|string]]
  
-Kann die Differenz zwischen dem aktuellen und dem gesetzten Zeitpunkt (Unix-Timestamp) als Alter ausgeben. Bei Nutzung mit boolean-Wert ''1'' wird das Alter mit englischen Zeitangaben ausgegeben. Man kann diese überschreiben, wenn man stattdessen die entsprechenden Zeitangaben übersetzt und mit Pipesymbol getrennt aufführt.+Kann die Differenz zwischen dem aktuellen und dem gesetzten Zeitpunkt (Unix-Timestamp) als Alter ausgeben. Bei Nutzung mit boolean-Wert ''1'' wird das Alter mit englischen Zeitangaben ausgegeben. Man kann diese überschreiben, wenn man stattdessen die entsprechenden Zeitangaben übersetzt und mit Pipesymbol getrennt aufführt (feste Reihenfolge).
  
 Die Nutzung der ''age''-Zeitangaben hängt vom errechneten Alter ab:\\ Die Nutzung der ''age''-Zeitangaben hängt vom errechneten Alter ab:\\
Zeile 816: Zeile 897:
  
 ==== br ==== ==== br ====
-**Datentyp:** +**Datentyp:** [[typo3:about:datentypen&#string|string]] / stdWrap
  
 +Konvertiert alle Zeilenumbrüche im Wert in das HTML-Element ''<br>''. Verwendet hierzu die PHP-Funktion [[http://php.net/manual/de/function.nl2br.php|nl2br()]].
 +
 +<code typoscript>
 +10 = TEXT
 +10.value (
 +  Hallo
 +  Welt!
 +)
 +10.br = 1
 +# Ausgabe: Hallo<br>Welt!
 +
 +</code>
  
 ---- ----
Zeile 875: Zeile 968:
  
 ==== fontTag ==== ==== fontTag ====
 +
 +<wrap caution>entfernt mit TYPO3 8.4</wrap>\\
 +
 **Datentyp:** [[typo3:about:datentypen#wrap|wrap]] **Datentyp:** [[typo3:about:datentypen#wrap|wrap]]
  
Zeile 910: Zeile 1006:
 **Datentyp:**  **Datentyp:** 
  
 +<wrap caution>entfernt mit TYPO3 7.3</wrap>
  
 ---- ----
Zeile 916: Zeile 1013:
 **Datentyp:**  **Datentyp:** 
  
 +<wrap caution>entfernt mit TYPO3 7.3</wrap>
  
 ---- ----
Zeile 989: Zeile 1087:
 **Datentyp:**  **Datentyp:** 
  
 +
 +----
 +
 +==== spaceBefore ====
 +**Datentyp:** [[typo3:about:datentypen#positive_integer|positive integer]]
 +
 +Setzt einen Abstand vor dem cObject, die Angabe erfolgt als Pixelwert. Sehr unsaubere Lösung (siehe ''space'').
 +
 +
 +----
 +
 +==== spaceAfter ====
 +**Datentyp:** [[typo3:about:datentypen#positive_integer|positive integer]]
 +
 +Setzt einen Abstand nach dem cObject, die Angabe erfolgt als Pixelwert. Sehr unsaubere Lösung (siehe ''space'').
  
 ---- ----
Zeile 1017: Zeile 1130:
 # <div class="content-spacer spacer-after" style="height:30px;"></div> # <div class="content-spacer spacer-after" style="height:30px;"></div>
 </code> </code>
- 
----- 
- 
-==== spaceBefore ==== 
-**Datentyp:** [[typo3:about:datentypen#positive_integer|positive integer]] 
- 
-Setzt einen Abstand vor dem cObject, die Angabe erfolgt als Pixelwert. Sehr unsaubere Lösung (siehe ''space''). 
- 
- 
----- 
- 
-==== spaceAfter ==== 
-**Datentyp:** [[typo3:about:datentypen#positive_integer|positive integer]] 
- 
-Setzt einen Abstand nach dem cObject, die Angabe erfolgt als Pixelwert. Sehr unsaubere Lösung (siehe ''space''). 
  
 ---- ----
typo3/about/functions/stdwrap.1446370355.txt.gz · Zuletzt geändert: 2015/12/03 19:30 (Externe Bearbeitung)