Fluid-Templates in TYPO3

Nach TYPO3 Version 6 im Praxistext habe ich mir jetzt die Zeit genommen, Fluid-Templates unter der Lupe zu nehmen.

Bisher haben wir immer TemplaVoila als Template-Engine genutzt und sind eigentlich recht zufrieden. Wer mit TemplaVoila gearbeitet hat, kennt es: Sobald man das HTML-Template verändert bzw. aktualisiert hat, verliert man die Zuordnung (Mapping). Man muss die fehlende Zuordnung jedes mal wieder neu mappen. Außerdem vermischt sich TypoScript mit XML-Stukturen und ist somit schlecht wartbar, da man beim Debugging die relevanten Stellen schwerer findet.

Was mich für TemplaVoila begeistert hat, ist das FCE (Flexible Content Element). Man kann Content-Elemente beliebig verschachteln. Auch Drag & Drop zählt zur den großen Vorteilen von TemplaVoila.

Da wir Extbase und Fluid teilweise schon bei der Programmierung von Extensions im Einsatz haben, folgt logischerweise die Nutzung von Fluid als Template-Engine.

Fluid bietet viele Freiheit wie IF-Bedingungen, FOR-Schleifen, usw.

Beispiel:
 <f:if condition="{headerline}">
 <h1>{headerline}</h1>
 </f:if>

Die Nutzung von Fluid-Templates ähnelt dem Template Auto-Parser (automaketemplate) und kann bequem mit dem Backend-Layout eingebunden werden.

Für diejenigen, die sich für TypoScript-Code interessieren:

page = PAGE
 page.typeNum = 0
 page.10 = FLUIDTEMPLATE
 page.10{
 # Set the Template Pathes
 partialRootPath = fileadmin/templates/partials/
 layoutRootPath = fileadmin/templates/layouts/
 variables{
 content < styles.content.get
 leftnavi < lib.leftnavi
 breadcrumb < lib.breadcrumb
 mainnavi < lib.mainnavi
 metanavi < lib.metanavi
 }
}
# Assign the Template files with the Fluid Backend-Template
 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
# Set the default Template, our 1 column Template
 default = TEXT
 default.value = fileadmin/templates/one-column.html
# Set also our 3 column Template
 1 = TEXT
 1.value = fileadmin/templates/one-column.html
}

Als FCE-Ersatz bietet sich die Extension Dynamic Content Elements (DCE) oder bzw. und Multiple Content aus dem TER an. Die Konfiguration ist ziemlich einfach.

Fazit:
Fluid-Template ist ein guter Ersatz oder sogar meiner Meinung nach besser als TemplaVoila, nur im Punkto beliebige Content-Elemente bietet TemplaVoila mit FCE mehr Freiheit. Als Entwickler ist es natürlich vorteilhaft, wenn man nur eine Template-Engine sowohl für den Seitenaufbau als auch für Extensions nutzt.

   Kommentare

  1. Hi,
    danke für den sehr interessanten Artikel. Auch ich arbeite mich zur Zeit in die Fluid-Templates ein. Ich kann mich allerdings noch schwer von TV trennen und scheue mich, meine neuen Kundenprojekte mit Fluid zu erstellen. Mir fehlen einfach die vielen Möglichkeiten mit den FCE. Die Möglichkeit, mittels SECTION/CONTAINER sehr aufwändige erweiterbare Tabellen zu erstellen, sind unschlagbar. Nun habe ich gehört, dass mit Hilfe von gridelements 2 oder FEDEXT (http://fedext.net/overview.html) Ähnliches möglich sein soll. Das alles klingt sehr interessant, wenn auch kompliziert.
    Habt Ihr Euch schon entschieden, ganz auf Fluid umzusteigen? Oder fahrt Ihr mit beiden Methoden ganz gut? Ich bin Eurer Meinung, dass man sich allerdings für einen Weg entscheiden sollte.

    Gruß aus Hamburg

    Walter

  2. vtjung

    Hallo Walter,

    Danke für das Feedback. Am Anfang waren wir auch skeptisch, was die Möglichkeit(von TV-Ersatz mit Fluid) angeht, mittelweiler benutzen wir für unsere neuen Kundenprojekte Extbase und Fluid.
    Ich kann nur die Extension „Dynamic Content Elements (DCE)“ empfehlen. Meiner Meinung nach ist die Extension sehr simpel und übersichtlich.

    Viele Grüße,
    Vendy Tjung

  3. Danny Faak

    Hiho,

    Ich kapier nicht wie ich mit DCE wirklich Elemente anlegen kann, in die ich Inhalte verschachtel, ähnlich wie bei bei FCEs …

    Kennt ihr hier ein gutes Tutorial?

    Beste Grüße,

    Danny Faak

Kommentar hinzufügen

(Spamcheck Enabled)