Layout des Inhaltselements wrappen
in Snippets/Tutorials/TYPO3/TypoScriptIn TYPO3 gibt es in den einzelnen CE's unter dem Karteireiter "Erscheinungsbild" (engl. Appearance) eine Select Box mit der Überschrift "Layout des Inhaltselements". Ohne zusätzliche TypoScript Konfiguration bleibt diese Funktion von TYPO3 leider ungenutzt, obwohl ein enorm starkes Potential in ihr steckt.
Nach einer Standardinstallation von TYPO3 heißen die Optionsfelder in der Select Box "Standard", "Layout 1", "Layout 2", "Layout 3". Allerdings kann man sich nach der späteren Konfiguration dieser Elemente schlecht etwas unter diesen Begriffen vorstellen. Daher fangen wir damit an, den Optionsfeldern einen eindeutigeren und besseren Namen zu geben.
- TCEFORM.tt_content {<br />layout {<br />altLabels {<br />3 = Blauer Hintergrund - rechte Spalte<br />}<br />}<br />}<br />
Die Labelbezeichnung 3 überschreibt in unserem Fall die vorherige Bezeichnung "Layout 3". Dies kann für alle anderen Layout ebenfalls gemacht werden.

- Optionsfelder für Layout umbenennen
Nun muss im TypoScript - Setup noch das Verhalten des Layout berücksichtigt werden. In meinem Beispiel ändere ich die Eigenschaften für das wrappen des CE TEXT.
- tt_content {<br /> text {<br /> 20 ><br /> 20 = CASE<br /> 20 {<br /> key.field = layout
- 0 = TEXT<br /> 0 {<br /> field = bodytext<br /> required = 1
- parseFunc = < lib.parseFunc_RTE
- editIcons = tt_content:bodytext, rte_enabled<br /> editIcons.beforeLastTag = 1<br /> editIcons.iconTitle.data = LLL:EXT:css_styled_content/pi1/locallang.xml:eIcon.bodytext
- prefixComment = 2 | Text:<br /> }
- 1 < .0<br /> 2 < .0<br /> 3 < .0<br /> 3.wrap = <div class="teaserliste">|</div><br /> }<br /> }<br /> }
In Zeile 3 löschen wir die Anweisungen, welche auf das normale CE zutreffen. Dann legen wir uns in Zeile 4 ein CASE - Objekt an, um das Datenbankfeld "layout" ab zufragen (Zeile 6) und entsprechend reagieren zu können.
Zeile 8 bis 20 entspricht der ursprünglichen Konfiguration der von uns gelöschten Ebene 20. Danach kopieren wir die Ebene 0 auf die anderen Ebenen (Zeile 21 - 24). Zeilen 25 legen wir endlich unseren Wrap an, damit der Layoutschalter funktioniert bzw. sich von den anderen unterscheidet.

- Layout - Standard

- Layout - "Blauer Hintergrund - rechte Spalte"
Nachtrag:
Zusätzlich zu diesem Thema, habe ich einen PodCast von Jens Hoffmann und Arnd (Tips'n'Tricks: Using the page "Layout" field) gefunden, in welchem erklärt wird, wie man das Layout Field ebenfalls für Seiten benutzen kann.
Super Tipp, hat mir den Tag gerettet. Vielen Dank.
Besser finde ich es einfach eine zusätzliche Klasse auszugeben - so habe ich das gelöst: # Layout als Klasse ausgeben tt_content.stdWrap.innerWrap.cObject.default{ 15.noTrimWrap = | class="| | 17 = TEXT 17.dataWrap = layout-{field:layout}" } Ausgabe dann z.B.: ... Über TCEFORM.tt_content.layout... wie bei Dir dann den layout-{id} Klassen einen Namen geben und die Klassen im Stylesheet entsprechend formatieren. Vorteil: Neue Klassen müssen nur im TCEFORM und im Stylesheet definiert werden - die TypoScript Ausgabe muss nicht angefasst werden. Grüße, Ole
Nice 1, Ole! It adds a class to the frame, very usable.