Möchte man mehrere Layouts für eine Webseite nutzen kann man auf das Layout-feld der Seiteneigenschaften zurück greifen. Leider sind die Bezeichnungen nicht so aussagekräftig und die Anzahl ist auch nicht hoch.

 

Die Anzahl kann man mit addItems erhöhen. Die Bezeichnung mittels altLabels ändern. Für Layouts bevorzuge ich symbolische Bezeichnungen, aber es sind natürlich auch mehrsprachige Bezeichnungen möglich: siehe mehrere Inhaltsspalten.

 

Dazu trägt man im TSconfig der Root-Seite z.B. folgendes ein:

 

TCEFORM.pages.layout {
	addItems {
		4 = xxxx:xx
		5 = xx:xxxx
	}
	altLabels {
		0 = Flash+XXXXXXX
		1 = Flash+XXXX:XX
		2 = Flash+XX:XXXX
		3 = XXXXXXX
		4 = XXXX:XX
		5 = XX:XXXX
	}
}

 

Dabei muss man diese Angaben natürlich auch irgendwo auswerten und den verschiedenen Layouts zuordnen.

Das erfolgt normalerweise in einem TypoScript-Template wie

# layout: one part
temp.CONTENT < styles.content.get
temp.CONTENT.wrap = <div class="contentfull"> | </div>

[globalVar = TSFE:page|layout = 1] || [globalVar = TSFE:page|layout = 4]
# layout: 2 parts, 2 : 1
temp.CONTENT = COA
temp.CONTENT {
	10 < styles.content.get
	10.wrap = <div class="contentleft"> | </div>

	20 < styles.content.get
	20.select.where = colPos = 4
	20.wrap = <div class="contentright"> | </div>

	30 = TEXT
	30.value = <div style="clear:both"><!-- --></div>
}
[globalVar = TSFE:page|layout = 2] || [globalVar = TSFE:page|layout = 5]
# layout: 2 parts, 1 : 2
temp.CONTENT = COA
temp.CONTENT {
	10 < styles.content.get
	10.wrap = <div class="contentleft2"> | </div>

	20 < styles.content.get
	20.select.where = colPos = 4
	20.wrap = <div class="contentright2"> | </div>

	30 = TEXT
	30.value = <div style="clear:both"><!-- --></div>
}
[global]

page {
    10 = TEMPLATE
    10 {
        template= FILE
        template.file = {$path}html/template.html
        workOnSubpart = DOCUMENT
        marks {
          LOGO       < temp.logo
          FLASHAREA  < temp.flash
          FOOTER     < temp.footer
          MAINMENU   < temp.mainmenu
          SUBMENU    < temp.submenu

          CONTENT    < temp.CONTENT
          RIGHT      < temp.right
       }
     }
}
[globalVar = TSFE:page|layout = 3] || [globalVar = TSFE:page|layout = 4] || [globalVar = TSFE:page|layout = 5]
page.10.marks.FLASHAREA = COA
[global]

 

 

 

 

inzwischen gibt es ja die Backendlayouts mit denen man ganz schnell im BE ein Layout ähnlich dem FE anlegen kann, so dass sich Redakteure gut zurecht finden.

um jetzt nicht zwei Layouts parallel pflegen zu müssen läßt man den BE-Layout-Selektor natürlich auch das FE bestimmen. Da es neben der expliziten Zuweisung für die aktuelle Seite auch eien Vererbbare Einstellung gibt kann die Zuordnung etwas komplizierter werden. es sei denn man benutzt die Hilfsmittel von Typoscript.

 

## Assign the Template files with the Backend-Layout-Selector
page {
10 = TEMPLATE 10 { template = FILE template.file.cObject = CASE template.file.cObject {
// wahlweise auch: 10 = FLUIDTEMPLATE 10 { file.cObject = CASE file.cObject {
// get value from sliding field key.data = levelfield:-1, backend_layout_next_level, slide // override by individual value for this page key.override.field = backend_layout // now the template files # Default Template default = TEXT default.value = {$sysDir}/html/default.html // numbers match to uid of BE-Layouts # Standard 1 < .default # Layout 2 2 = TEXT 2.value = {$sysDir}/html/layout2.html : }
// now continue with marks/subparts ... workOnSubPart = DOCUMENT marks {
// ... or settings settings {
LOGO < temp.logo MENU < temp.menu : } } }

gerade bei Fluidtemplates kann das Feld 'layout' dann auch einfach genutzt werden um irgendetwas an der Seite zu parametrisieren, da alle Felder der Seite im Template direkt verfügbar sind:

{f:if(condition:'{data.layout} == 1',then:'400',else:'500')}
 
Ihre aktuelle Seitenauswahl:  
>>>