Glossar

Fluid

Die Template-Sprache von TYPO3. Sie bestimmt, wie Daten in HTML übersetzt werden.

Was Fluid macht

Fluid übersetzt Daten in HTML. Es bekommt Variablen übergeben, etwa einen Datensatz oder eine Liste, und gibt Markup aus. Die Syntax nutzt geschweifte Klammern für Variablen und eigene Tags für alles Weitere.

Das Prinzip ist bewusst schlicht. Ein Template soll lesbar bleiben, auch für jemanden, der kein PHP schreibt.

ViewHelper

Wo reine Ausgabe nicht reicht, kommen ViewHelper ins Spiel. Sie sind kleine, wiederverwendbare Bausteine für Aufgaben wie Verweise erzeugen, Bilder verarbeiten, Zahlen formatieren oder Text kürzen.

TYPO3 bringt viele davon mit. Eigene ViewHelper sind sinnvoll, wenn im Projekt eine bestimmte Darstellungslogik immer wiederkehrt. Sie sind der richtige Ort für alles, was sonst als unübersichtliche Verschachtelung im Template landen würde.

Zusammenspiel mit TypoScript

Fluid und TypoScript teilen sich die Arbeit. TypoScript legt fest, welches Template für welchen Fall zuständig ist und welche Daten hineingereicht werden. Fluid entscheidet, wie diese Daten dargestellt werden.

Bei Fehlern lohnt sich diese Trennung als erste Diagnose. Fehlt eine Variable im Template, liegt die Ursache meist in TypoScript oder im Controller, nicht im Template selbst.

Im Sitepackage

Die Fluid-Dateien eines Projekts liegen im Sitepackage, getrennt nach Templates, Layouts und Partials. Diese Struktur ist Konvention und lohnt sich auch bei kleinen Projekten, weil sie beim Wachsen nicht umgebaut werden muss.

Häufige Fragen

Was ist der Unterschied zwischen Template, Layout und Partial?

Ein Template gehört zu einer konkreten Ausgabe, etwa der Detailansicht eines Datensatzes. Ein Layout beschreibt den Rahmen, der um mehrere Templates herum gleich bleibt. Ein Partial ist ein wiederverwendbarer Ausschnitt, der an mehreren Stellen eingebunden wird.

Die Aufteilung lohnt sich, sobald etwas zum zweiten Mal gebraucht wird. Ein Partial, das an fünf Stellen eingebunden ist, muss nur einmal geändert werden.

Darf Logik ins Template?

So wenig wie möglich. Fluid kann Bedingungen und Schleifen, und das reicht für Darstellungsfragen: etwas anzeigen oder nicht, eine Liste durchlaufen, eine Klasse abhängig von einem Wert setzen.

Alles, was eine Entscheidung über Daten trifft, gehört davor: in den Controller, in einen ViewHelper oder ins Datenmodell. Templates mit verschachtelten Bedingungen sind schwer zu testen und noch schwerer zu ändern.

Begriffe in diesem Text

Templates, die sich gegen Änderungen wehren?

Wenn eine kleine Anpassung an drei anderen Stellen etwas kaputt macht, liegt das selten am Wunsch. Wir sortieren die Templating-Schicht.