FLUIDTEMPLATE mit Backend Layouts
Man kann auch mit einem FLUIDTEMPLATE das Backend Layout zur Steuerung der Frontend-Ausgabe nutzen.
Als Beispiel gibt es 2 Backend Layouts mit 2 und mit 3 Spalten.
Dafür kann man die Backend Layout UID der Seite an Fluid als Variable übergeben:
FLUIDTEMPLATE
page.10 = FLUIDTEMPLATE
page.10 {
file = {$Private}/Templates/Page.html
partialRootPath = {$Private}/Partials/
layoutRootPath = {$Private}/Layouts/
variables{
layout = TEXT
layout.data = levelfield:-2,backend_layout_next_level,slide
layout.override.field = backend_layout
contentCenter < styles.content.get
contentLeft < styles.content.get
contentLeft.select.where = colPos = 1
contentRight < styles.content.get
contentRight.select.where = colPos = 2
footer < lib.footer
}
}
Nun mit Fluid verwerten und das entsprechende Partial rendern:
Auszug aus dem Template Page.html
<f:if condition="{layout} == 1">
<f:render partial="TwoCols" arguments="{contentLeft:contentLeft, contentRight:contentRight}" />
</f:if>
<f:if condition="{layout} == 2">
<f:render partial="ThreeCols" arguments="{contentLeft:contentLeft, contentCenter:contentCenter, contentRight:contentRight}" />
</f:if>
<f:comment>Oder direkt im Partial Namen ohne if</f:comment>
<f:render partial="Layout{layout}" arguments="{contentLeft:contentLeft, contentCenter:contentCenter, contentRight:contentRight}" />
<f:comment>Dadurch wird das Partial "Layout.html" verwendet, wenn gar kein Backend Layout zugewiesen wurde, oder "Layout1.html" für BE-Layout 1 und "Layout2.html" für BE-Layout 2.</f:comment>
Ein Partial kann dann etwa so aussehen:
ThreeCols.html
<div class="grid33 grid-first"><f:format.html parseFuncTSPath="">{contentLeft}</f:format.html></div>
<div class="grid34"><f:format.html parseFuncTSPath="">{contentCenter}</f:format.html></div>
<div class="grid33 grid-last"><f:format.html parseFuncTSPath="">{contentRight}</f:format.html></div>