Hallo Max

also, noch mals ganz langsam zum mitschreiben:
Ich glaube Du machst ein Durcheinander weil Du verschiedene Dinge gleich
benamst. Main, Content, etc. werden doppelt oder dreifach verwendet und
es ist Dir unklar, wann welches verwendet wird.

Es gibt drei verschiedene Dateien, die zu berücksichtigen sind:
Layout, Template und Partial

Aus diesen drei Dateien wird die gesamte Seite zusammen gebaut.

In jeder Template Datei muss stehen, zu welchem Layout sie gehört,
deshalb der Eintrag <f:layout name="MeinLayout">
Damit das Layout gefunden wird, muss es die Layout-Datei MeinLayout.html
geben.

In der Layout-Datei kann man jetzt wiederum angeben, was gerendert
werden soll:
Da kann dann z.B. stehen, dass die Section "hauptinhalt" gerendert
werden soll mit <f:render section="hauptinhalt">

Fluid sucht die section "hauptinhalt" jetzt in der Template-Datei.
In der Template-Datei steht deshalb sowas:
<f:section name="hauptinhalt">
   {content}
</f:section>

In der Layout Datei könnte man auch gewisse Bedingungen abfragen und
dann davon abhängig eine andere Section rendern. In der Template Datei
müssten die weiteren Section einfach unten angefügt werden.

Damit aber überhaupt irgend ein Inhalt auf die Seite geschrieben wird,
definierst Du in deinem TS Code die Variable "content". Diese wird von
Fluid ausgelesen und angezeigt, dort wo Du sie im Template
hingeschrieben hast.


Die Layout-Datei "MeinLayout.html" sieht demnach so aus:
===============================
<f:render section="hauptinhalt">
===============================

Die Template-Datei "MeinTemplate.html" muss so aussehen:
===============================
<f:layout name="MeinLayout">
<f:section name="hauptinhalt">
   {content}
</f:section>
===============================

Und übrigens hat f:section nichts mit dem HTML5-Tag section zu tun!!

In einer etwas komplexeren Situation, kannst Du auch Partials verwenden.
D.h. immer wiederkehrende Elemente können auch als Partial definiert und
ins Template integriert werden.
Du könntest z.B. eine Fusszeile definieren, die auf allen Seiten
angezeigt werden soll und diesem mit einen Partial rendern.

Das würde so gehen:
Du musst eine Partial-Datei erstellen, z.B. Fusszeile.html, welche etwa
so aussieht.
===============================
{meinefusszeile}
===============================

Diese kannst Du dann in deine Template-Datei "MeinLayout.html" einbauen:
===============================
<f:layout name="MeinLayout">
<f:section name="hauptinhalt">
   {content}
  <f:render partial="Fusszeile">
</f:section>
===============================
Und im TS-Code müsstest Du dann natürlich neben der Variable content
noch die variable meinefusszeile definieren.

So, ich hoffe damit etwas Licht ins Dunkle gebracht zu haben...!
Beste Grüsse, Renzo

-- 
conPassione gmbh
CH-3661 Uetendorf
+41 33 345 00 92 


_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Antwort per Email an