1. typofaktum
unternehmenskommunikation
stdWrap
für Anfänger
TypoScript - von Anfang an - Teil II
05. Mai 2009 - TYPO3 Usergroup München
Patrick Lobacher
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
2. typofaktum
unternehmenskommunikation
Was kann TypoScript?
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
3. typofaktum
unternehmenskommunikation
„Normales“ TypoScript
Setzen von Werten (Zuweisung)
Kopieren und Referenzieren von Werten
Ausklammern
Conditions
Objekte (TLO und Content-Objekte)
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
4. typofaktum
unternehmenskommunikation
„Normales“ TypoScript
page = PAGE
page {
10 = TEMPLATE
10 {
template = FILE
template.file = fileadmin/templates/index.html
workOnSubpart = DOCUMENT
marks {
...
}
}
}
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
5. typofaktum
unternehmenskommunikation
Häufige Aufgaben
Ermittlung von Daten (Datenbank, ...)
Berechnen von Werten
Formatieren von Werten
Ausgabe von Werten, abhängig vom Ergebnis von
Abfragen (if)
Zerlegung von Texten
=> nicht machbar mit “normalem“ TypoScript
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
6. typofaktum
unternehmenskommunikation
Die Lösung: stdWrap
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
7. typofaktum
unternehmenskommunikation
Das
Schweizer
Messer
des
TypoScripts
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
8. typofaktum
unternehmenskommunikation
Was ist stdWrap??
Unklar woher der Name kommt -
ausgesprochen „Standard Wrap“
Herkunft vom Wrap-Konzept: abc | def
stdWrap ist ein Konzept, hinter dem
zahlreiche nützliche (PHP)-Funktionen
stehen, die Daten ermitteln, Daten
überschreiben und Daten verarbeiten.
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
9. typofaktum
unternehmenskommunikation
ACHTUNG TECHNIK!
Für stdWrap verantwortliche Datei in TYPO3:
typo3/sysext/cms/tslib/class.tslib_content.php
Alle möglichen Funktionen sind dort definiert
Die dortige Reihenfolge ist entscheidend
Momentan 76 Funktionen im stdWrap-
Baukasten
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
10. typofaktum
unternehmenskommunikation
ACHTUNG TECHNIK!
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
11. typofaktum
unternehmenskommunikation
Referenz??
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
12. typofaktum
unternehmenskommunikation
TSref
www.tsref.net
DIE Referenz
Abschnitt 1.5
Functions
stdWrap
Abschnitt 1.2
Data types
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
13. typofaktum
unternehmenskommunikation
Auszug aus TSref
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
14. typofaktum
unternehmenskommunikation
TSref - Datentyp
Mögliche Werte für eine TS-Eigenschaft
Datentyp /stdWrap
Erwartet einen Wert vom Typ
„Datentyp“ (z.B. String, HTML,
Integer, ...).
Zusätzlich können DARAUF stdWrap-
Funktionen angewendet werden.
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
15. typofaktum
unternehmenskommunikation
Einfache Beispiele
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
16. typofaktum
unternehmenskommunikation
Einfaches HTML-Objekt - 1
page = PAGE
page.10 = HTML
page.10.value = Hello Usergroup!
Ausgabe:
Hello Usergroup!
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
17. typofaktum
unternehmenskommunikation
Einfaches HTML-Objekt - 2
page = PAGE
page.10 = HTML
page.10.value = Hello Usergroup!
page.10.value.case = upper
Ausgabe:
HELLO USERGROUP!
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
18. typofaktum
unternehmenskommunikation
Einfaches HTML-Objekt - 3
page = PAGE
page.10 = HTML
page.10.value = Hello Usergroup!
page.10.value.wrap = Welcome! | Ciao!
Ausgabe:
Welcome!Hello Usergroup!Ciao!
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
19. typofaktum
unternehmenskommunikation
Einfaches HTML-Objekt - 4
page = PAGE
page.10 = HTML
page.10.value = Hello Usergroup!
page.10.value.crop = 5 | ...
Ausgabe:
Hello...
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
20. typofaktum
unternehmenskommunikation
Einfaches HTML-Objekt - 4
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
21. typofaktum
unternehmenskommunikation
Einfaches HTML-Objekt - 4
page = PAGE
page.10 = HTML
page.10.value = Munich
page.10.value.wrap = Hello | Usergroup
page.10.value.crop = 5 | ...
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
22. typofaktum
unternehmenskommunikation
Einfaches HTML-Objekt - 4
page = PAGE
page.10 = HTML
page.10.value = Munich
page.10.value.wrap = Hello | Usergroup
page.10.value.crop = 5 | ...
Ausgabe:
Hello...
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
23. typofaktum
unternehmenskommunikation
Einfaches HTML-Objekt - 4
page = PAGE
page.10 = HTML
page.10.value = Munich
page.10.value.wrap = Hello | Usergroup
page.10.value.crop = 5 | ...
Ausgabe:
Hello...
HelloMunic...Usergroup ✔
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
24. typofaktum
unternehmenskommunikation
stdWrap Systematik
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
25. typofaktum
unternehmenskommunikation
stdWrap - Arten
Get data - Daten ermitteln
(field, data, ...)
Override / Conditions - Überschreiben und IF
(override, if, required, stdWrap,...)
Parse data (Parsen und Verändern)
(split, prioriCalc, case, crop, wrap, ...)
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
26. typofaktum
unternehmenskommunikation
stdWrap Get Data
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
27. typofaktum
unternehmenskommunikation
Get data
setContentToCurrent current
setCurrent cObject
lang numRows
data filelist
field preUserFunc
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
28. typofaktum
unternehmenskommunikation
Get data - field
Ermittelt den Wert eines Datenbankfeldes aus
dem aktuellen Context
Context beim PAGE-Objekt ist die Tabelle pages
In dem Fall können sämtliche Elemente der
Seiteneigenschaften ermittelt werden
Wenn nichts anderes angegeben wurde, werden
die Daten der aktuellen Seite ermittelt
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
29. typofaktum
unternehmenskommunikation
Get data - field
page = PAGE
page.10 = HTML
page.10.value.field = title
Gibt den Seitentitel der aktuellen Seite aus
Problem: Wie heissen die anderen Felder?
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
30. typofaktum
unternehmenskommunikation
Get data - field
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
31. typofaktum
unternehmenskommunikation
Firebug
Ermittlung des
Feldes
„Speaking URL
path segment“
tx_realurl_
pathsegment
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
32. typofaktum
unternehmenskommunikation
Debugging
page = PAGE
page.10 = HTML
page.10.value.debugData = 1
IP-Adresse in Install-Tool eintragen
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
33. typofaktum
unternehmenskommunikation
Debugging
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
34. typofaktum
unternehmenskommunikation
Get data - data
Datentyp getText
Ermittlung
allgemeiner
Daten
Nicht auf
aktuelle Seite
beschränkt
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
35. typofaktum
unternehmenskommunikation
Get data - data
page = PAGE
page.10 = HTML
page.10.value.data = date : d.m.Y
Gibt das aktuelle Datum aus
page = PAGE
page.10 = HTML
page.10.value.data = leveltitle : -2
Gibt den Seitentitel der Elternseite aus
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
36. typofaktum
unternehmenskommunikation
stdWrap Conditions /
Override
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
37. typofaktum
unternehmenskommunikation
Conditions / Override
override trim
preIfEmptyListNum stdWrap
ifEmpty required
ifBlank if
listNum fieldRequired
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
38. typofaktum
unternehmenskommunikation
Override / Conditions
page = PAGE
page.10 = HTML
page.10.value = Der Untertitel ist leer!
page.10.value {
override.cObject = TEXT
override.cObject.field = subtitle
}
Gibt den Untertitel der Seite aus. Wenn dieser leer
ist, wird „Der Untertitel ist leer!“ ausgegeben
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
39. typofaktum
unternehmenskommunikation
Override / Conditions
page = PAGE
page.10 = HTML
page.10 {
value = Diese Seite ist aktuell!
value.if {
value.data = date: U
isGreaterThan.field = newUntil
}
}
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
40. typofaktum
unternehmenskommunikation
Override / Conditions
Gibt „Diese Seite ist aktuell!“ aus, wenn das
aktuelle Datum vor dem Datum liegt, welches im
Feld „New until“ in den Seiteneigenschaften
eingegeben wurde.
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
41. typofaktum
unternehmenskommunikation
Override /
Conditions
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
42. typofaktum
unternehmenskommunikation
stdWrap Parse Data
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
43. typofaktum
unternehmenskommunikation
Parse Data (Auswahl)
split (Aufsplitten nach Trennzeichen)
prioriCalc (Berechnen von Werten)
date (gibt ein formatiertes Datum zurück)
strftime (wie date)
removeBadHTML (filtert Sonderzeichen)
stripHtml (entfernt HTML)
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
44. typofaktum
unternehmenskommunikation
Parse Data (Auswahl)
crop (Kürzen von Strings)
br (Wandelt Zeilenvorschübe in <br>-Tags um)
innerWrap (Wrappt den Inhalt)
wrap (Wrappt ebenfalls den Inhalt)
typolink (erzeugt einen Typolink)
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
45. typofaktum
unternehmenskommunikation
Parse Data (Auswahl)
prepend (Stellt ein Content Objekt vor das aktuelle
Objekt)
append (Stellt ein Content Objekt hinter das
aktuelle Objekt)
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
46. typofaktum
unternehmenskommunikation
Parse Data (dataWrap)
dataWrap
Der Inhalt wird nach geschweiften Klammern {}
durchsucht und dieser Teil wird laut Datentyp
getText (wie bei stdWrap „data“ ersetzt)
page = PAGE
page.10 = HTML
page.10.value.dataWrap = Die Seite heisst {page:title}
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
47. typofaktum
unternehmenskommunikation
Parse Data (insertData)
insertWrap
Der Inhalt wird wie bei einem datWrap behandelt
page = PAGE
page.10 = HTML
page.10.value = Die ID der Seite ist: {TSFE:id}
page.10.value.insertData = 1
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
48. typofaktum
unternehmenskommunikation
Weitere Informationen:
TypoScript Reference TSref
http://www.tsref.de
TypoScript in 45 Minuten (DocTeam)
http://wiki.typo3.org/index.php/De:TSref/45MinutesTypoScript
Übersetzung der TSref
http://wiki.typo3.org/De:TSref
TypoScript Videotraining (video2brain)
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
49. typofaktum
unternehmenskommunikation
Weitere Informationen:
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009
50. typofaktum
unternehmenskommunikation
Vielen Dank!
Fragen???
Inspiring people to
TypoScript II: stdWrap für Anfänger share
Montag, 17. August 2009