[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