[TYPO3-german] Diverse Fluid Extensions

Cedric Ziel cedric at cedric-ziel.com
Thu Dec 19 13:01:35 CET 2013


Hallo Jan,

als Kollaborator an dem FluidTYPO3 Projekt bin ich vielleicht nicht 
ganz objektiv-ich bitte das zu entschuldigen und hoffe, dass ich dir 
trotzdem Input geben kann.

Trotz alledem solltest Du, wenn Du mit fluid Templates baust, mal einen 
Blick auf die Extension "vhs" werfen. Hier haben wir einige Utility 
ViewHelper zusammen getackert, die einem das Leben als 
Integrator/Entwickler leichter machen.

Zum Thema:
Wenn man mit TYPO3 Websites erstellt, dann hat man immer schon das 
Problem gehabt, das es keinen Vernünftigen Weg für Strukturelemente 
gibt. Diese Strukturelemente sind neben den FCE's einer der Gründe 
für die massive Verbreitung von TemplaVoila gewesen. Diese 
Strukturelemente sind aber (leider) bei der Konzeption des CMS' back in 
the days nicht beachtet worden-das Produkt kommt auch aus einer Zeit, 
als Spalten-Elemente eher hässliche Trickserei gewesen sind. Das 
Datenbankmodel der Kerntabellen pages und tt_content hat (so behaupte 
ich) immernoch viel mit diesem Start gemeinsam; daher fehlt dem Kern 
die Möglichkeit, solche Elemente zu erstellen.

Das Team um Jo Hasenau leistet gute Arbeit, Strukturelemente 
normalisiert in der Datenbank abzulegen und bietet mit gridelements(2?) 
eine gute Grundlage, um ordentliche Strukturen zu hinterlegen.
Strukturelemente sind auch nicht unser primäres Anliegen, wir freuen 
uns aber trotzdem, dass Kay Strobach und einige Andere mit THEMES daran 
arbeiten, eine Middleware (Gridelements, Flux) agnostische Möglichkeit 
entwickeln, die es erlauben wird, das Beste aus allen Welten zu nutzen.

gridelements oder THEMES als Metapaket (Was tut es, wie tut es das? 
Ralf, vielleicht kannst Du ja erläutern, was hier passiert-Du scheinst 
ein gefestigtes Bild zu haben; vielleicht kannst Du uns aufkären, 
warum es "besser" ist?) sind mE nicht besser oder schlechter, Sie 
erledigen ähnliche Jobs auf andere Arten und Weisen.

Der Kern der FluidTYPO3 Bestrebungen ist es, dem Entwickler schnell und 
einfach ein Interface für die Seitengestaltung zu bieten. Wir sind 
begeisterte Benutzer von fluid und kapseln sämtliche Funktionalität 
in fluid ViewHelpern (nicht exklusiv..). Wir möchten TypoScript 
einsparen, und durch fluid Konstrukte ersetzen. Als Beispiel möchte 
ich gerne angeben, was die einzelnen Extensions ausmacht:

flux: Flux ist der Kern und kommt von fluid flexforms. Flux ebnet den 
Weg, um mit fluid Flexforms zu schreiben. Flexforms als Kernkonstrukt 
in TYPO3 steuern das Backend und generieren über das TCA bspw 
sämtliche Formulare zu Entitäten. Da es hier aber, wenn man über 
einfache Formulare hinausgeht schnell unübersichtlich wird, bietet 
flux ein HTML Interface (fluid verwendet ja html namespaces), welches 
einfach zu bedienen ist, um flexforms zu generieren und mit 
Funktionalität auszustatten, für die man ohne flux viele Brücken 
schlagen müsste. (ZB ein Group Field, das es erlaubt News 
auszuwählen, und im Fluid View direkt die Extbase Entität zur 
Verfügung stellt).

fluidpages: Fluidpages erlaubt es, mit fluid Seitentemplates zu 
erstellen, die selbst bestimmen, wie viele ContentAreas in welcher 
Anordnung verfügbar sind-zur Laufzeit.
Ein einfaches, einspaltiges Template findet sich auf GitHub. 
(https://github.com/Ecodev/bootstrap_package/blob/master/htdocs/typo3conf/ext/speciality/Resources/Private/Templates/Page/1Column.html)
Was zuerst als Overhead angesehen werden kann, zeigt aber ganz gut, das 
dort direkt ein Formular mit weiteren Optionen eingebunden wird, das 
nachher im Rendering zur Verfügung steht.
Statt in einem separaten Datenbank Feld wird die Konfiguration im 
flexforms Feld gespeichert.

fluidcontent: Bietet eine einfache, aber schnelle und mächtige 
Möglichkeit um Flexible Inhalts- und Strukturelemente per flux mit 
Flexforms zu erstellen. (Kurze Antwort, aber goßer Impact ;) )

In jeder Extension bieten wir an, einen Controller Context selbst zu 
gestalten, das heisst, einen PageController für die Layouts, einen 
ContentController für die FCEs. Hier könnte (es gibt keinen Zwang) 
der Entwickler sich nach Belieben mit Extbase auszutoben, und 
Properties in den View einzutüten. Das bedeutet, was vorher sehr viel 
TypoScript benötigt hat, lässt sich (bekannter Weise) mit Extbase 
respektive fluid sehr viel einfacher lösen.
Und hier wird es etwas kompliziert: Der geneigte Integrator träumt 
wahrscheinlich in TypoScript und Extbase ist das große böse Monster. 
Der Punkt ist, dass wir sehr große Komplexität ermöglichen, dies 
aber keinesfalls als Normalfall ansehen. Der 08/15 Entwickler möchte 
schnell und einfach zum Ziel kommen. - Das ist der Grund, warum 
TemplaVoila so erfolgreich war, und auch heute immernoch ist. (Kein 
Bashing, aber viele Agenturen und Einzelkämpfer setzen es heute noch 
in neuen Erzeugnissen ein, weil Sie sich an das Schema gewöhnt haben) 
Wir ermöglichen die Nutzung von fluid in beinahe allen Bereichen und 
ermöglichen damit sehr schnelles, konsequentes Arbeiten in einem 
Kontext.

Um zum Schluss zu kommen:
Jeder muss für sich muss entscheiden, welches Gift für ihn das 
richtige ist. Da gibt es DCE, gridelements und flux-alle machen das 
Gleiche-irgendwie. Sie transformieren Flexforms in fluid properties, 
die im Template weiter verarbeitet werden können. gridelements ragt 
heraus mit einer hervorragenden Struktur für Strukturelemente-hier 
musst Du aber eigene Flexforms schreiben, wenn Du FCE's mit besonderen 
Eingabefeldern haben möchtest.

Der Kern an sich bietet nichts dergleichen an. Auch mit "nur fluid" und 
BackendLayouts fährst du in eine Sackgasse, also gibt es ein 
dringendes Bedürfnis nach zusätzlichen Konfigurationsmöglichkeiten. 
Wenn Du kein herausragender, schneller Entwickler bist, musst Du also 
selbständig die Datenbank Tabellen des Kerns erweitern und die 
passenden Formulare draufpacken. Willst Du das nicht, sondern einfach 
nur deine Arbeit erledigen-dann stehen wir gerne mit unseren Extensions 
parat. THEMES und gridelements bieten nicht ansatzweise die 
Möglichkeiten, die wir anbieten-das ist aber auch gar nicht die 
Intention. THEMES selbst ist in weiter Ferne und wird viel von unseren 
Extensions verwenden, daher schließt das Eine das Andere nicht aus. Es 
ist mE wichtig, diesen Punkt zu verstehen.

Ein weiterer Aspekt: Der geneigte Integrator verwendet eine ganze 
Heerschar an Extensions, die kleine Dinge erledigen, aber viele 
Probleme verursachen. Mit den genannten Extensions kannst Du dir die 
Teile sparen und einfach und sicher das Umsetzen, was dein Designer dir 
vorgelegt hat-weil Du aus dem Template heraus das System anzapfen 
kannst. Wir legen sehr viel Wert auf eine korrekte Benutzung der Core 
Apis, um sicherzustellen, dass das Ergebnis den Erwartungen entspricht.

Wir sind mittlerweile 5 Leute, die über GitHub an den Projekten 
kollaboriert-permanent, Tag für Tag. 
(https://github.com/organizations/FluidTYPO3)

Wir empfehlen, die Möglichkeiten mit gridelements für 
Strukturelemente zu nutzen, um irgendwo eine Normalisierung zu 
erreichen, aber für den Rest-ein Benutzerfreundliches Interface, 
Eingabemöglichkeiten für Redakteure und nicht zu letzt 
Geschwindigkeit in der Entwicklung sehen wir unsere Extensions als 
kleinstes aller Übel an. Für 95% aller Anwendungsfälle, auch im 
Team, würde ich die Suite jedem ans Herz legen.

Das Bootstrap Package (http://get.typo3.org/bootstrap oder 
https://github.com/Ecodev/bootstrap_package/) bietet einen leichten 
Einstieg in die Materie und lohnt mit Sicherheit einen Blick.
Die ViewHelper Referenz (https://fedext.net/viewhelpers.html) bietet 
einen guten Überblick, auch über die Core ViewHelper.

Ich hoffe, ich habe niemandem auf die Füße getreten und würde mich 
über einen Dialog freuen.

Viele Grüße,
Cedric


More information about the TYPO3-german mailing list