Utilisation du champ layout des contenus et des pages
Cet exemple montre comment utiliser le champ "layout " des pages et des contenus, disponible dans l'onglet "appearance" des pages ou en bas du formulaire des contenus.


Placer le code typoscript suivant dans le bloc TSConfig d'une page. Ce code configure les libellés affichés dans la liste déroulante "layout" des pages ou des contenus.
# Pages
TCEFORM.pages {
layout.altLabels.2 = 3 columns
layout.altLabels.1 = 2 columns
layout.altLabels.0 = Normal (1 column)
}
# Contenus
TCEFORM.tt_content {
header_layout.altLabels.2 = Fond gris
header_layout.altLabels.1 = Fond bleu
header_layout.altLabels.0 = Fond blanc
}
Le code précédent configure les libellés affichés jusqu'ici, rien n'indique ce qui sera fait en fonction du choix d'un de ces libellés. Le code suivant change de fichier de template en fonction de ce choix:
[globalVar=TSFE:page|layout=1]
page.10.template.file= fileadmin/templates/template_2column.html
[global]
[globalVar=TSFE:page|layout=2]
page.10.template.file= fileadmin/templates/template_3column.html
[global]
On peut également utiliser le code suivant, pour ajouter une feuille de style en fonction du choix:
[globalVar=TSFE:page|layout=1]
page.includeCSS.layout= fileadmin/templates/style_2.css
[global]
[globalVar=TSFE:page|layout=2]
page.includeCSS.layout= fileadmin/templates/style_3.css
[global]
Pour les éléments de contenus, on peut utiliser ce code:
page.10=TEMPLATE
page.10{
template = FILE
# Fichier de template HTML
template.file = fileadmin/templates/template.html
workOnSubpart = DOCUMENT
subparts{
CONTENT<styles.content.get
CONTENT.renderObj.stdWrap.innerWrap.cObject=CASE
CONTENT.renderObj.stdWrap.innerWrap.cObject {
key.field = header_layout
default=TEXT
default.value=<div class="white">|</div>
1=TEXT
1.value=<div class="bleu">|</div>
2=TEXT
2.value=<div class="gris">|</div>
}
}
}
Source (allemand): www.typo3wizard.com/en/snippets/cool-stuff-typoscript/using-the-layout-field-in-tt-content-and-pages.html