
Layouts für Seiten

In den Seiten-Eigenschaften (page properties) stellt TYPO3 die Option "Layout" zur Verfügung. Wie man diese Eigenschaft nutzen kann wird im Folgenden beschrieben. Um für Redakteure die Beschriftung der Layouts individuell anzupassen, überflüssige Layouts aus der Auswahl zu löschen oder neue hinzuzufügen, kann man folgende TypoScript-Snippets in das Page-TSconfig z.B. der Root-Seite einfügen.
Layout Bezeichungen überschreiben:
// TypoScript, Page TSconfig // change labels for page layouts TCEFORM.pages { layout.altLabels.0 = white theme layout.altLabels.1 = blue theme layout.altLabels.2 = red theme }
Layouts hinzufügen:
// TypoScript, Page TSconfig // add new layouts TCEFORM.pages { layout.addItems.4 = black theme layout.addItems.5 = orange theme }
Layouts löschen:
// TypoScript, Page TSconfig // remove layouts TCEFORM.pages { layout.removeItems = 2,3 }
Um die angepassten Layouts zu verwenden kann man TYPO3 conditions verwenden. Folgendes Beispiel wählt, je nach dem welches Layout eingestellt wurde, ein anderes HTML-Template aus:
// TypoScript, Setup [globalVar=TSFE:page|layout=0] // layout 0 page.10.template.file = {$basePath}/layout0.tpl [global] [globalVar=TSFE:page|layout=1] // layout 1 page.10.template.file = {$basePath}/layout1.tpl [global] [globalVar=TSFE:page|layout=2] // layout 2 page.10.template.file = {$basePath}/layout2.tpl [global]
Layouts für Content-Elemente

Um verschiedene Layouts für Content Elemente zu ermöglichen kann man das "type"-Feld in dem Bereich "Header" eines Content Elements verwenden (secondary option). Wie bereits für Seiten Layouts beschrieben kann man die Beschriftungen für dieses Feld anpassen, indem man folgende Snippets in das Page-TSconfig der Root Seite kopiert:
Label überschreiben:
// TypoScript, Page TSconfig // overwrite type labels TCEFORM.tt_content { header_layout.altLabels.0 = white theme header_layout.altLabels.1 = green theme header_layout.altLabels.2 = blue theme }
Layouts hinzufügen:
// TypoScript, Page TSconfig // add new layouts TCEFORM.tt_content{ header_layout.addItems.4 = red theme header_layout.addItems.5 = orange theme }
Layouts löschen:
// TypoScript, Page TSconfig // remove layouts TCEFORM.tt_content{ header_layout.removeItems = 3,10 }
Hat man die Beschriftungen für die Layout-Einstellungen angepasst, kann man im Setup-Feld des Haupttemplates das gewählte Layout abfragen und dementsprechen das Content-Element wrappen. Wichtig ist, dass dies für jeden Marker gemacht wird, in den Content Elemente hinein kopiert werden. In diesem Beispiel ist es der Template-Marker ###PAGE_CONTENT###:
// TypoScript, Setup page.10.marks{ PAGE_CONTENT.renderObj.stdWrap.innerWrap.cObject=CASE PAGE_CONTENT.renderObj.stdWrap.innerWrap.cObject{ key.field = header_layout // layout 0 default=TEXT default.value=<div class="layout0">|</div> // layout 1 1=TEXT 1.value=<div class="layout1">|</div> // layout 2 2=TEXT 2.value=<div class="layout2">|</div> // layout 3 3=TEXT 3.value=<div class="layout3">|</div> } }