Bauen

TYPO3-Entwicklung: Sitepackages und Extensions

Wir bauen TYPO3-Installationen von der Templating-Schicht bis zur eigenen Extension. Kein zugekauftes Theme, das man zurechtbiegt, sondern eine Struktur, die zu deinen Inhalten passt und die beim nächsten Major-Update nicht auseinanderfällt.

Was TYPO3-Entwicklung in der Praxis bedeutet

Die meisten Anfragen beginnen nicht mit einer technischen Anforderung, sondern mit einem Ärgernis: Inhalte lassen sich nur mit Umwegen pflegen, eine zweite Sprache passt nicht ins Konzept, oder eine Funktion existiert doppelt, weil zwei Extensions dasselbe versuchen.

Solche Symptome haben fast immer dieselbe Ursache. Die Installation ist über Jahre gewachsen, jede Anforderung wurde einzeln gelöst, und niemand hatte den Auftrag, das Ganze zusammenzuhalten. Entwicklung heißt dann zuerst: verstehen, was da ist, und entscheiden, was bleibt.

Das Sitepackage als Fundament

In TYPO3 gehört alles, was das Aussehen und die Struktur einer Seite ausmacht, in eine eigene Extension. Templates, TypoScript, Backend-Layouts, Konfiguration der Inhaltselemente: gemeinsam ergeben sie das Sitepackage.

Der Vorteil ist unspektakulär, aber entscheidend. Alles liegt in Dateien, Dateien liegen in Git, und Git beantwortet die Frage, warum etwas so ist, wie es ist. Konfiguration, die nur in der Datenbank steht, beantwortet diese Frage nie.

TYPO3-Programmierung oder Konfiguration?

Viele Anfragen zur TYPO3-Programmierung lassen sich ohne eine Zeile PHP lösen. TYPO3 ist in weiten Teilen ein Konfigurationssystem: Was ein Inhaltselement kann, steht im TCA, wie es gerendert wird, in Fluid und TypoScript. Wer dort ansetzt, bleibt im vorgesehenen Rahmen und behält die Update-Fähigkeit.

Echte Programmierung beginnt, wo eigene Datenmodelle, Geschäftslogik oder Schnittstellen im Spiel sind: ein Buchungsvorgang mit Zuständen, ein Import, der Daten prüft und zusammenführt, eine Auswertung, die es so nirgends gibt. Dann entsteht eine Extbase-Extension mit Modell, Repository und Controller.

Die Unterscheidung ist keine Wortklauberei, sondern die Grundlage jeder Aufwandsschätzung. Konfiguration ist überschaubar und leicht zu ändern, eigener Code will getestet, dokumentiert und bei jedem Major-Update mitgeführt werden. In welche der beiden Kategorien deine Anforderung fällt, sagen wir dir vorher.

Eigene Extensions, wenn der Standard nicht reicht

TYPO3 bringt viel mit, und der Extension-Katalog deckt weitere Standardfälle ab. Eine eigene Extension lohnt sich, wenn eigene Datenstrukturen im Spiel sind: Produkte mit Varianten, Veranstaltungen mit Anmeldung, Standorte mit Öffnungszeiten, Bewerbungen mit Dateianhang.

Wir bauen solche Erweiterungen mit Extbase, weil damit Backend-Modul, Validierung und Frontend-Ausgabe aus einem Datenmodell entstehen. Das kostet am Anfang etwas mehr Sorgfalt und spart sie später bei jeder Änderung wieder ein.

An Redakteure gedacht

Eine Installation ist erst fertig, wenn die Leute damit arbeiten können, die täglich darin arbeiten. Wir beschriften Felder in der Sprache des Hauses, blenden aus, was im konkreten Fall nicht gebraucht wird, und setzen Voreinstellungen so, dass der übliche Fall ohne Nachdenken funktioniert.

Wie das im Backend aussieht, zeigen wir vor der Übergabe. Wenn dabei auffällt, dass ein Ablauf umständlich ist, ändern wir ihn, solange es noch günstig ist.

Woran wir typischerweise arbeiten

Sitepackage

Die Grundlage jeder individuellen TYPO3-Seite: Fluid-Templates, TypoScript, Backend-Layouts und Konfiguration in einer versionierbaren Extension statt verstreut in der Datenbank.

Individuelle Inhaltselemente

Content Blocks oder klassische Elemente über TCA und Fluid, damit die Redaktion genau die Bausteine bekommt, die sie braucht, und keine, die sie falsch einsetzen kann.

Extbase-Extensions

Eigene Datenmodelle mit Backend-Modul, Frontend-Ausgabe und Validierung, wenn Standard-Extensions den Fall nicht abdecken.

Schnittstellen

Anbindung an CRM, ERP, PIM oder eine Suchlösung wie Solr, in beide Richtungen und mit einem Verhalten, das auch bei einem Ausfall der Gegenseite definiert ist.

Mehrsprachigkeit und Multi-Site

Mehrere Sprachen und mehrere Domains in einer Installation, mit sauberer Trennung von Inhalten, Rechten und Konfiguration.

Redaktionsoberfläche

Feldbeschriftungen, Hilfetexte und sinnvolle Voreinstellungen. Eine Oberfläche, in der Redakteurinnen und Redakteure ohne Handbuch zurechtkommen.

Häufige Fragen

Warum ein eigenes Sitepackage statt eines fertigen Themes?

Ein Theme bringt Annahmen mit, die selten zu den eigenen Inhalten passen. Was zunächst schnell aussieht, wird teuer, sobald man davon abweicht: man überschreibt Templates, hängt sich in fremde Hooks und baut eine Schicht auf, die niemand mehr überblickt.

Ein Sitepackage enthält nur, was das Projekt braucht. Es liegt in Git, lässt sich nachvollziehbar ändern und übersteht ein Major-Update deutlich besser, weil es keine fremden Erweiterungspunkte belegt.

Entwickelt ihr auch an bestehendem Code weiter?

Ja. Vorher sehen wir uns an, wie der Code aufgebaut ist, ob er in Git liegt, welche TYPO3-Version vorausgesetzt wird und wie viel davon noch dem heutigen Stand entspricht.

Manchmal ist Weiterentwickeln der richtige Weg, manchmal ist ein sauberer Neuaufbau der Templating-Schicht auf Dauer günstiger. Diese Einschätzung bekommst du vor dem ersten Handgriff.

Arbeitet ihr mit Composer?

Ja, Composer-basierte Installationen sind der Normalfall. Sie machen Abhängigkeiten explizit, erlauben reproduzierbare Deployments und sind Voraussetzung dafür, dass Updates planbar bleiben.

Bei älteren Installationen ohne Composer klären wir zuerst, ob der Wechsel Teil des Auftrags sein soll. Er ist selten trivial, zahlt sich aber bei jedem folgenden Update aus.

Wie stellt ihr sicher, dass Anpassungen ein Update überstehen?

Vor allem dadurch, dass wir im Rahmen der vorgesehenen Erweiterungspunkte bleiben: eigene Extensions statt Eingriffe in den Core, dokumentierte Konfiguration statt Änderungen an Systemdateien, TypoScript und TCA statt Datenbank-Handarbeit.

Zusätzlich achten wir darauf, was in der jeweiligen TYPO3-Version bereits als veraltet markiert ist. Wer heute noch etwas nutzt, das im nächsten Major entfällt, verlagert Arbeit nur nach hinten.

Ein Vorhaben, das über den Standard hinausgeht?

Beschreib uns, was die Seite können soll. Wir sagen dir, was davon TYPO3 mitbringt, was eine Extension löst und was echten Entwicklungsaufwand bedeutet.