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.

Champ layout page du backend typo3

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