Oft kommt es vor, dass man Content per TS-Skript speziell rendern will. Beispiele sind: Alle Elemente der linken Spalte bekommen einen schönen Rahmen und einen “Mehr”-Link am Ende, Elemente im Text sollen unterschiedlich dargestellt werden mit Hilfe der Option “Layout”, etc.

Variante 1: Layout-Feld nutzen

Sowohl Seiten als auch Textelemente besitzen das Feld “Layout”, mit denen dieses festgelegt werden kann.

Layout-Feld der Seite

Will man verschiedene Seiten darstellen, beispielsweise mit zwei oder drei Spalten, dann kann man das Layout-Feld der Seite verwenden. Im Setup kann man das folgendermaßen festlegen:

Damit werden neben dem Grundtemplate (nennen wir es templateA.html zwei weitere Templates festgelegt. Man kann dem Template auch noch Namen geben, indem man im Page (!) TSConfig die Labels ändert:

Layout-Feld im Content

Normalerweise bestimmt das Layout-Feld in Content-Elementen die Art der Überschrift. Mann kann mit Hilfe dieses Feldes jedoch auch das Layout des gesamten Contents anpassen, indem man z.B. diesen mit einem wrap umgibt. Das Vorgehen ist folgendes (aus www.typo3wizard.com):

Hier werden drei Layouts definiert: das Standard-Layout und zwei weitere. Jedes Contentelement wird beim Rendern mit den entsprechenden div-Tags komplett umgeben, je nach Layout. Auch hier kann man im Page TSConfig die Labels anpassen:

Es geht jedoch noch flexibler…

Variante 2: tt_content selbst rendern

Will man den Content noch weiter anpassen, kann man mit Hilfe von renderObj das Layout selbst anpassen. Hier ein Snippet zur Demonstration:

Mit wraps wäre das Beispiel wahrscheinlich etwas schöner, aber es geht hier ja nur um die Demonstration: Knackpunkt hier ist der Aufbau des Contents: Die Überschrift wird in durch eigene Elemente komplett eigenständig gerendert, der Text kommt in eine Box darunter und am Ende wird noch ein Link zu Google angehängt. Umgeben werden die einzelnen Felder von entsprechenden HTML-Befehlen. Das Ergebnis könnte dann ungefähr folgendermaßen aussehen:

ContentRendern01

Links