Mit dem Erscheinen der LTS-Version 6.2 wurden wichtige und große Schritte gemacht, damit TYPO3 konkurrenzfähig bleibt. Nach den ersten erfolgreichen Einsätzen der neuen Version stellt sich mir die Frage, welche Schritte für die weitere Entwicklung sinnvoll sein könnten. Ich möchte deshalb einige Anregungen aus meinem TYPO3-Alltag von mir teilen und bin sehr interessiert daran, von Euch zu hören, welche Punkte Ihr gerne auf der Roadmap sehen würdet.
Core oder Extension?
Einige der Punkte auf der Liste lassen sich bereits mit Extensions lösen. Diese Tatsache demonstriert einerseits eindrucksvoll die Möglichkeit zur Erweiterung von TYPO3, andererseits aber auch die Notwendigkeit, zum Teil grundlegende Funktionalitäten zu ergänzen, die vom Core offensichtlich nicht zufriedenstellend abgedeckt werden.
Definition von Contentelementen
Besonders deutlich wird dies am Themenkomplex „eigene Contentelemente“, der mich während der Erstellung dutzender TYPO3-getriebener Internetauftritte immer wieder in TER („Welche Extension kann das?“), Dokumentation („Kann der Core das vielleicht doch?“) und oft auch fast in die Verzweiflung getrieben hat („Wie kann es sein, dass so eine einfache Aufgabe so kompliziert ist?“). Nach teils langjähriger Benutzung habe ich letztlich der Verwendung von Extensions, die mit dieser Aufgabe mehr oder weniger zu tun haben (z.B. Fluid Content, TemplaVoila, Multicontent, DCE, GridElements usw.) abgeschworen, obwohl Sie ihre jeweiligen Aufgaben bestens erfüllen.
Wichtigster Grund dafür: Jede dieser Extensions kocht ihre eigene Suppe. So verwenden viele der Extensions z.B. FlexForm-Felder, was die die TYPO3-Instanz so recht abhängig von der verwendeten Extension macht und aus meiner Sicht eher ein Feigenblatt ist für eine unflexible Datenstruktur der Contents (tt_content). Gleichzeitig wird ein eigenes Bedienkonzept für eine (wenn nicht die) zentrale Aufgabe eines CMS eingeführt, was nicht im Sinne der Erfinder sein sollte.
Ich möchte Contentelemente
- ohne die Verwendung von Erweiterungen
- vollständig (Darstellung in BE und FE)
- dateibasiert (erleichtert die Versionskontrolle)
- mit Fluid (Templates) und Extbase (Contentmodel)
- mit einer standardisierten Datenstruktur
- ohne programmieren zu müssen
- ohne Umbiegen der Corefunktionen (z.B. für Sprachoverlays)
definieren können. Seit einiger Zeit definiere ich dazu alle verwendeten Contentelement in einer eigenen Extension, die nichts weiter als eine komfortable Ansteuerung der Core-Funktionen ermöglicht; ich finde, das sollte der Core mitbringen und auch als Standard vorgeben.
Steuerung der HTML-Ausgabe
Ausgerechnet beim Rendern ist TYPO3 – im Gegensatz zu seiner sonstigen Flexibilität – recht stur. Für eine saubere HTML5-Ausgabe braucht es meiner Erfahrung nach einiges Know-How und mindestens eine Extension. Im Quellcode vieler TYPO3 Websites (darunter auch Referenzseiten) finden sich Artefakte unsauberer Ausgaben, z.B.
- QueryString nicht im Dateinamen eingebettet
- Redundante Attribute von script- und style-Tags in HTML5 Dokumenten
- Etliche Leerzeilen und -zeichen
- CSC-Kommentare
- Unbenutzte CSC-Styles
- Generator Metatag
All dies lässt sich mit dem nötigen Wissen ändern. Da dies aber Mehraufwand und -wissen erfordert, suggerieren meiner Meinung nach solche Seiten, das TYPO3 keine vollständige Kontrolle über die Ausgabe ermöglicht. Eine Seitenausgabe, die standardmäßig komplett in Fluid erzeugt wird, könnte hier effektiv vorbeugen.
Die Rolle von TypoScript
CSS Styled Content (CSC) ist das Standardwerkzeug zur Ausgabe von Contentelementen und bietet eine breite Palette von Standardelementen in vielen Variationen an. Wer Änderungen an der Ausgabe vornehmen will, braucht ein gutes Verständnis von TypoScript. Überschreibt man das TypoScript Setup vieler Elemente, wird es schnell unübersichtlich, da das Original-TS (aus dem statischen CSC-Template) getrennt von den Modifikationen liegt. TypoScript ermöglicht oft eine sehr kurze Schreibweise komplexer Template-Logiken, ist aber ab einer gewissen Verschachtelungs- und Referenzierungskomplexität nicht mehr leicht zu lesen.
Ich selbst setze Templates am liebsten mit Fluid um – HTML-Code einkopieren, ViewHelper einsetzen und fertig ist ein les- und pflegbares Template.
Trotzdem bleibt TypoScript für viele Aufgaben das Mittel der Wahl – so kann ich mir z.B. kaum eine kürzere Definition komplexer Menüs vorstellen. Mein Vorschlag: TypoScript für die Beschaffung von Daten verwenden und eine Schnittstelle schaffen, mit der die Ausgabe im Fluid-Template erfolgen kann.
Onward
Das war es von meiner Seite – ich bin gespannt auf Eure Beiträge!
Dies ist ein Gast-Beitrag von Rainer Becker.