[TYPO3-german] Fluidtemplate mit mehreren (Haupt-)Layouts
Dr. Dieter Porth
typo3 at mobger.de
Fri Jan 1 20:10:06 CET 2016
Hallo Martin,
ein erfolgreiches neues Jahr mit Glück, Gesundheit und Zufriedenheit
wünmsche ich dir.
Du hast das gedankliche Prinzip von Layout, Template und Partials noch
nicht tief genug durchdrungen.
Grundsätzlich:
1. Die Templates stellen die Sections zur Verfügung, die in Layouts
eingebaut werden. Nur bei ganz einfachen Websites definieren Templates
das Layout. Im Ordner Layout findet man dagegen nur HTML-Fragmente, die
bestenfalls ein <f:render section="..." /> enthalten.
1.b. Nur wenn das Template aus genau einer Section besteht und so ein
Layout überflüssig macht, kann man auf die Definition eines Layouts
verzichten
2. Im Template kann man mit dem Viewhelper <f:layout
name="defaultLayout" /> bestimmen, welches Layout gezogen wird.
2.a. Nach meinen Erfahrungen verarbeitet TYPO3 auch Fluid-Variablen in
<f:layout name="{fluidVariableLayoutName}" />.
Lösungsansatz:
Wenn du dein CASE-Object also den Namen des gewünschen Layoputs in
{fluidVariableLayoutName} definiert, dann wird dein Main-Template dem
ensprechenden Layout zugeordnet werden.
Du solltest also drei Layouts
= fileadmin/Resources/Private/Layouts/main_layout.html
= fileadmin/Resources/Private/Layouts/main_1_column_without_menu.html
= fileadmin/Resources/Private/Layouts/main_2_column_without_menu.html
und ein Main-Template
= fileadmin/Resources/Private/Templates/main_template.html
anlegen, wobei das Main-Template alle Sections definieren muss, die in
deinen drei Layout vorkommen könnten.
In deinem Fall müsste dein Template also mindestens eine Section "Menü"
und eine Section "Content" bereitstellen.
Ich habe mich bei den Pfaden an die Konventionen von TYPO3 gehalten. Die
solltest die mit übernehmen, denn wenn man sich ersteinmal daran gewöhnt
hat, erleichert es das Arbeiten mit TYPO3 enorm.
Mit besten Grüßen
Dieter
P.S. Das section-Beispiel aus der Dokumentation ist didaktisch nicht ideal.
https://docs.typo3.org/typo3cms/ExtbaseGuide/Fluid/ViewHelper/Section.html
zeigt zwar, wie man Sections einsetzen könnte; aber du solltest nicht
die Idee der Dokumentationsschreiber übernehmen, indem du sections und
ihre Anwendung in einer Datei definierst.
Ich denke, sections sollten nur im Template definiert werden und nur im
Layout zur Anwendung kommen, um die Layouts und Templates jeweils
übersichtlich halten zu können.
Am 31.12.2015 um 11:42 schrieb Martin:
> Ich habe folgendes Problem: Mein Fluidtemplate besteht zur Zeit aus
> einem Haupttemplate, das im Ordner layouts liegt. In diesem
> Haupttemplate werden die weiteren Templates eingearbeitet, die man im
> Inhaltsbereich des backend auswählen kann, in den Seiteneinstellungen
> bei "Appereance".
>
> Ich benötige aber nicht nur ein Haupttemplate, sondern zwei!
>
> Bevor ich den bisherigen Code angebe, möchte ich wissen, wie ich es
> verändern kann, dass ich zwei verschiedene Templates als meine
> Haupttemplates habe?
> CODE:
>
> page.10 = FLUIDTEMPLATE
> page.10 {
> format = html
> file = fileadmin/templates/layouts/main_layout.html
> partialRootPath = fileadmin/templates/partials/
> layoutRootPath = fileadmin/templates/layouts/
> variables {
> content_main < styles.content.get
> content_main.select.where = colPos = 0
> content_column_1 < styles.content.get
> content_column_1.select.where = colPos = 1
> content_column_2 < styles.content.get
> content_column_2.select.where = colPos = 2
> }
> }
>
> page.10.file.stdWrap.cObject = CASE
> page.10.file.stdWrap.cObject {
> key.data = levelfield:-1, backend_layout_next_level, slide
> key.override.field = backend_layout
> default = TEXT
> default.value = fileadmin/templates/main_1_column_with_menu.html
> 1 = TEXT
> 1.value = fileadmin/templates/main_1_column_with_menu.html
> 2 = TEXT
> 2.value = fileadmin/templates/main_1_column_without_menu.html
> 3 = TEXT
> 3.value = fileadmin/templates/main_2_column_without_menu.html
> }
>
> CODE ENDE
>
> Wer kann mir helfen?
> _______________________________________________
> TYPO3-german mailing list
> TYPO3-german at lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
More information about the TYPO3-german
mailing list