Fluid templating vs. TemplaVoilá

TemplaVoilá bietet seit einigen Jahren die einfache Möglichkeit Templates anzubinden und dynamische Inhaltselemente zu erstellen. Mit TYPO3 in der Version 4.6 wurde die Möglichkeit eingeführt fluid templates zu verwenden. Fluid ist genau wie extbase aus dem FLOW3 Framework erwachsen und wird schon seit einiger Zeit für die TYPO3 Extension Entwicklung verwendet. Da lag der Schritt nahe fluid auch das alte Markerbasierte Templatesystem “abschaffen” zu lassen.

Nach der Ankündigung TemplaVoilà für TYPO3 ab Version 6.2 nicht mehr weiterzuentwickeln habe ich mich gefragt: Kann man TemplaVoilá wirklich ersetzen?

 

TYPO3 mit fluid templates statt TemplaVoilá (TV)

TemplaVoilá hat in den letzten Jahren das ursprüngliche Marker- und Section-Basierte Templating immer mehr verdrängt. Es wurde zum Quasi-Standard auch für professionelle Projekte. Nach ein wenig Einarbeitungszeit ging das Setup für neue Projekte fix von der Hand. Aber die größte Stärke waren aus meiner Sicht die Flexible Content Elements (FCE). Um einen Vergleich mit dem neuen fluid templating anzustrengen, muss man sicherlich erstmal eine Bestandsaufnahme machen.

Es ergeben sich verschiedene Sichten je nach Benutzerrolle auf die Möglichkeiten, die TemplaVoilá bietet:

 

Sicht des Administrators
Sicht des Redakteurs
Leichte Anbindung vorhandener HTML Templates Auswahl der vorgegebenen Templates für einzelne Seiten
Dynamischer Eingriff in die generierte Ausgabe auf “Spaltenbasis” durch TYPOScript im TV Template Transparente Verwaltung von Inhalten innerhalb der Seite grafisch unterstützt und per Drag’n’Drop möglich
Erstellung neuer Contentelemente (FCE) auf der Basis von HTML Templates Einfacher Aufbau des Seiteninhaltes mit Hilfe von Struktur- und Inhalts-FCEs

 

Für den Integrator ergeben sich daraus Möglichkeiten, die es zuvor in der Form gar nicht oder nur mit sehr komplexen Mitteln gab. All diese Funktionalitäten müsste ein TYPO3-System mitbringen oder – konkret in unserem Fall – durch das fluid templating system angeboten werden, um auf TV vollständig verzichten zu können. Vor allem aus Sicht der Redakteure darf dabei kein Rückschritt stattfinden, da die Akzeptanz dadurch vermutlich stark sinken würde.

Mit fluid templating alleine kann ich recht einfach Seitentemplates bauen und anbinden. Mit den neu eingeführten Backend Layouts kann ich es dem Redakteur sogar mit Bordmitteln einfach machen zu verstehen, wo welcher Inhalt hingehört.

Enger wird es da dann schon mit strukturellen und inhaltlichen FCE’s. Mit ersteren lassen sich einfach dynamische mehrspaltige Strukturen innerhalb einer Seite schaffen. Mit letzterem können ganz neue Content Elemente kreiert werden, die die tägliche Arbeit erleichtern.

Mit der fluid template engine war ich bisher noch nicht in der Lage die genannten Funktionen abzubilden. Das kommt vielleicht noch. Für’s Erste habe ich aber die beiden Extensions “gridelements” und “Dynamic Content Elements (DCE)” für mich entdeckt. In der Kombination konnte ich in ersten Tests alles umsetzen, was ich üblicherweise in einem Projekt benötige.

 

Funktionalität
TV Umsetzung
Umsetzung mit fluid
Anbindung der Seitentemplates TV Datenstruktur (DS) und TemplateObject (TO) Anbindung über TS Objekt “FLUIDTEMPLATE” ähnlich wie in der Marker-Ära
Verfügbarkeit mehrere Seitentemplates TO Auswahl in den Seiteneinstellungen (Erscheinungsbild) Erstellung von Backend-Layouts und deren Anbindung an die FLUIDTEMPLATES via TS
Strukturelemente auf den Seiten (z.B. 2 Spalten) Fest: Seitentemplate (TO), Dynamisch: FCE Fest: Backend-Layouts, Dynamisch: “gridelements” (Extension)
Dynamische Inhaltselemente (z.B. Image Slider) FCE mit entsprechenden Feldern und Logik über TS im FCE Annähernd die selbe Funktionalität wie TV-FCE lässt sich über die Extension “Dynamic Content Elements” (DCE) herstellen

 

Vorteile:

  • Die Seitentemplate-Anbindung lässt sich wieder mit TYPO3 Bordmitteln erledigen
  • Seitentemplates werden mit “fluid” gemacht, sind also zukunftsorientiert und updatesicher
  • Struktur (gridelements) und Inhalt (CEs + DCEs) werden voneinander getrennt
  • Dynamische Inhalte basieren ebenfalls auf fluid-templates
  • Funktionalität der Ausgabe wird weg von FCEs hin zu den fluid Templates verschoben (MVC paradigma parallel zur Extension-Entwicklung mit extbase)

 

Nachteile:

  • Statt einer Extension (TV) werden nun zwei Extensions benötigt (gridelements + DCE) um die gleiche Funktionalität zu erreichen
  • TV ist länger erprobt als das fluid templating. Veränderungen in kommenden Versionen sind zu erwarten und ggfs. bei Updates problematisch

 

Fazit

Da fluid in der TYPO3 Codebase eingebaut ist, setzt man mit FLUIDTEMPLATE langfristig wahrscheinlich auf die sicherere Karte. Da es eine relativ junge Technologie ist, wird es vermutlich Anlaufschwierigkeiten geben. Die Technologie vorab in der Extensionentwicklung zu erproben war sicher ein cleverer Schachzug der TYPO3-Core-Entwickler, da hierdurch schon vorab viele typische Kinderschuh-Probleme ausgemerzt wurden.

Dass ich für die gleiche Funktionalität mit fluid aktuell noch zwei andere Extensions brauche, finde ich nicht so schlimm. Sie scheinen mir nicht so komplex wie TemplaVoilà und passen gut in die neue Welt mit extbase und fluid.

Ich würde die persönliche Weiterentwicklung fokussiert auf fluid legen und TemplaVoilá mittelfristig nicht mehr in neuen Projekten einsetzen.

14 Comments

  1. Vielen Dank für den hilfreichen Beitrag zur rechten zeit! Ich setze gerade eine TYPO3-Seite ohne TemplaVoilà um – und zwar eben aus der Ankündigung heraus, dass diese erst einmal so nicht weiter gepflegt wird.

    Nun habe ich leider einige Zeit damit verbracht eine Extension zu finden, mit der ich eigene Inhaltselemente (also Custom Content Elements – mal etwas Keyword-Dropping, falls jemand nach den gleichen Begriffen wie ich sucht ;) ) erstellen kann und mit den Dynamic Content Elements bin ich wirklich sehr zufrieden.

    Reply
    • Hallo Arne, es freut mich, dass mein Beitrag dir geholfen hat. Ich bin inzwischen schon an der zweiten Seite, die ich ohne TemplaVoilà umsetze. Bislang habe ich es noch nicht bereut.

      Interessant finde ich allerdings auch, dass es inzwischen schon so viele Namen für diese Art der Content Elemente gibt: Flexible Content Elements, Dynamic Content Elements und Custom Content Elements. Mal sehen, was in den nächsten Jahren noch so dazu kommt.

      Reply
  2. Schöner Beitrag zu dem Thema! Was mir in Deiner Auflistung noch fehlt sind:
    – Vorschau der Elemente beim Anlegen
    – Drag & Drop der Elemente
    Diese Punkte sind insbesondere für den Redakteur beim Pflegen der Seite sehr wichtig…ohne mich mit DCE beschäftigt zu haben daher meine Frage: “Geht das?”

    Reply
    • Drag & Drop funktioniert, wenn auch leider (noch) nicht so flüssig wie bei TemplaVoila. Aktuell wird nach dem Drop die Seite neu geladen. Das geht bei TemplaVoila deutlich schneller ohne reload. Was ich allerdings ganz gut finde, ist dass man auch einschränken kann, welche Elemente abgelegt werden dürfen. Somit sind Strukturen möglich, bei denen man z.B. in der linken Spalte nur Bilder zulässt.

      Zu deiner zweiten Frage: Ich weiß nicht genau, was Du mit “Vorschau der Elemente beim Anlegen” meinst. Kannst Du hier vielleicht ein Beispiel nennen?

      Viele Grüße,
      Thorsten

      Reply
  3. Danke für den Beitrag.

    Ich könnte mir vorstellen, dass daniz die Icons meint mit denen man die FCEs ausstatten kann um es dem Redakteur bei der Auswahl der FCEs einfacher zu machen.

    Ich bin gespannt wie es in Zukunft weiter geht. Ich werde mich auch mit fluid und den zusätzlichen Extension anfreunden müssen. Man sollte aber bei allen Versuchen etwas neues zu etablieren nicht vergessen, dass gerade TV zu dem rasanten Erfolg und Akzeptanz von TYPO3 in den letzten Jahren beigetragen hat und unendlich viele Webseiten eben mit TV umgesetzt sind. Besitzer solcher Webseiten werden nicht erfreut darüber sein, dass nun erneute Entwicklungskosten auf sie zukommen.

    Andererseits kann ich auch Verständnis aufbringen, dass Tolleiv Nietsch keine Lust mehr auf die One-Man-Show hat, was für sich genommen schon erschreckend genug ist, dass es eine One-Man-Show ist.

    Für mich, bzw. eher meine Kunden ist TV nach wie vor sehr wichtig.

    Grüße
    Manny

    Reply
    • Danke Manny für dein Feedback.

      Tatsächlich kann man sowohl bei GridElements als auch bei DCEs eigene Icons angeben, die den Redakteur bei der Auswahl unterstützen. Darüber hinaus kann man sowohl GridElements als auch DCEs in eigene Gruppen legen und so die Übersichtlichkeit noch erhöhen.

      Was die weitere Entwicklung angeht, bin ich auch gespannt. Ich bin seit jeher ein Freund von Einfachheit und schon immer begeistert von der Markeridee. Ich habe mich lange gegen TemplaVoilà gesträubt, weil es mir zuviel “Magic” gemacht hat. Allerdings war es in einigen Projekten nicht wegzudenken. Und ich stimme dir zu, dass die Kunden hinter diesen Umsetzungen größtenteils nicht erfreut sein werden, wenn man ihnen erzählt, da müsse man nochmal ran.

      Ich denke trotzdem, dass der Weg einer neuen Leistungsstarken Lösung, die in den Kern integriert ist, der richtige Weg ist. Dass es nicht TemplaVoilà ist, das in den Kern eingebaut wird finde ich zwar schade, aber mit FLUIDTEMPLATE sehe ich den ersten Schritt in eine interessante Zukunft gelegt. Man besinnt sich zurück auf die Anfänge, setzt diese aber mit einer deutlich leistungsstärkeren Technologie um. Das ganze auf einer umfangreichen Entwicklerbasis. Das nimmt mir persönlich ein wenig die Angst, die ich noch aus der Zeit kenne, in der ich mich gegen die TemplaVoilà-One-Man-Show gewehrt habe. Vielleicht sehen wir in absehbarer Zukunft einen komplett in den Kern implementierten Ersatz für TemplaVoilà und im Idealfall noch einen Migrationspfad, der aufwändige Neuimplementierungen bei bestehenden Umsetzungen vermeidet.

      Grüße,
      Thorsten

      Reply
  4. Hi Thorsten,
    vielen Dank für den netten Beitrag. Wusste noch gar nicht von der “DCE” bescheid. Bei meinen Recherche gerade eben bin ich auf “http://fluidtypo3.org/” gestoßen.

    Hast Du mit dieser Variante bereits Erfahrungen gesammelt? Wenn ja kannst Du vielleicht absehen ob “Fluid powered T3” der “DCE”-Ext. zu bevorzugen wäre?

    Beste Grüße
    Guido

    Reply
    • Hi Guido,

      tatsächlich habe ich mich mit fluid powered TYPO3 noch nicht beschäftigt. Sieht insgesamt vielversprechend aus, allerdings auch deutlich komplexer (wie gesagt nur der erste Eindruck). Eine Empfehlung kann ich daher nicht geben. Allerdings werde ich mir das gerne mal demnächst genauer anschauen, denn an einigen Stellen stoße ich mit DCE’s an eine Grenze, die ich gerne einreißen würde.

      Mein grundsätzliches Anliegen ist dabei allerdings, die Konstruktion so simpel wie irgend möglich zu halten und auf möglichst wenige Extensions zurück zu greifen. Damit holt man sich am Ende des Tages einfach auch mal weniger Probleme ins Haus (Updates, nicht weiter betreute Extensions, Debugging bei Fehlern).

      Lass uns doch gerne wissen, welche Erfahrungen Du gemacht hast.

      Grüße,
      Thorsten

      Reply
  5. Wir entwickeln gerade einen würdigen TV-Nachfolger. Auch ein Konverter für alte Projekte ist geplant. Im Moment suchen wir noch bis 10. Juli 2014 Unterstützer auf der Crowdfunding Plattform Startnext. Alle Infos findet Ihr hier:
    http://www.startnext.de/mask
    http://www.typo3experten.com/programmierung/mask.html
    https://www.facebook.com/typo3mask
    Wenn Ihr Mask haben wollt, verbreitet unsere Links und werdet Fans auf Facebook und Startnext. Wir freuen uns über jede noch so kleine Unterstützung! Für größere Sponsoren bieten wir nette Dankeschöns an :-)

    Reply
  6. Danke für den Beitrag. Ich würde bei einer Webseite gerne von TemplaVoila auf FLUID wechseln. Kann ich innerhalb der selben Installation einen zweiten Seitenbaum anlegen und die Seite auf Basis von FLUID nachbauen?

    Reply
    • Hallo Bastian,
      grundsätzlich kannst Du das tun. Ich sehe jetzt auf die Schnelle zwei Möglichkeiten. Entweder Du machst einen unabhängigen Baum auf, mit einem neuen Root-Template und lässt z.B. eine andere Domain oder Subdomain darauf zeigen. Oder Du machst innerhalb deines aktuellen Baums einen neuen, der aber per TYPOScript komplett neu konfiguriert wird, so dass dort nicht TemplaVoila sondern FLUID benutzt wird.
      Ich persönlich würde wahrscheinlich die Domain-Variante nehmen, weil ich meine Bäume und TYPOScript Konfigurationen eh schon immer so baue, dass man ggfs. noch andere Seiten im gleichen CMS betreiben könnte.

      Reply
        • Hallo Bastian,
          viel Erfolg!
          Wenn Du noch Fragen hast, melde dich einfach nochmal.
          Auch deine eigenen Erfahrung zu FLUID würden mich interessieren. Also schreib auch dazu gerne noch was, wenn Du möchtest.

          Reply
  7. Für alle die Templavoila vermissen: Seht euch Mask an: https://typo3.org/extensions/repository/view/mask
    Damit kann man ebenso die Seiteneigenschaften um Felder erweitern und eigene CEs erstellen. Und das Datenbankbasierend (kein Flexform) und mit Core-Funktionen (Backend-Layouts, FLUIDTEMPLATE, uvm.).
    Neu ist der Templavoila Konverter, mit dem man alte Templavoila-Projekte von Flexform zu TCA konvertieren kann (zB für die Verwendung mit Mask). In Folge kann man TYPO3 auf 6, 7 oder 8 upgraden und Templavoila verwerfen ;)
    http://tvconverter.webprofil.at/

    Reply

Leave a Comment.