TYPO3

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
TYPO3

Logo von TYPO3
Screenshot des TYPO3 10.4 backends
TYPO3 CMS 10.4 Backend
Basisdaten

Hauptentwickler TYPO3 Association
Entwickler Kasper Skårhøj, TYPO3 Association
Erscheinungsjahr 29. Mai 2001
Aktuelle Version 12.4 LTS[1]
(25. April 2023)
Betriebssystem plattformunabhängig
Programmier­sprache PHP[2], JavaScript
Kategorie Content-Management-System (CMS)
Lizenz GPL (Freie Software)
deutschsprachig ja
typo3.org

TYPO3 CMS ist ein freies Content-Management-System für Websites, das seit Oktober 2012 offiziell unter dem Namen TYPO3 CMS angeboten wird. Ursprünglich wurde TYPO3 von Kasper Skårhøj entwickelt. Der Kern von TYPO3 ist in der Skriptsprache, PHP, Symfony geschrieben, die Ausgabe im Browser erfolgt mit HTML und JavaScript. Als Datenbank können gängige SQL-basierte Datenbanken, wie z. B. MySQL, MariaDB eingesetzt werden, die Anbindung erfolgt hier abstrakt über Doctrine DBAL.

Von 2007 bis 2015 wurde TYPO3 von zwei Kernentwicklungsteams beständig weiterentwickelt. Ein Team kümmerte sich um das „TYPO3 CMS“,[3] das andere um das neuere „TYPO3 Neos“. 2015 trennte sich Neos von der TYPO3-Association und wird seitdem als eigenes Produkt weiterentwickelt. Die geschützte Marke TYPO3 dient zudem seit Oktober 2012 als Heimat für eine Reihe weiterer Produkte.[4][5]

Zahlreiche Funktionen von TYPO3 können mit Erweiterungen (Extensions)[6] integriert werden, ohne dass ein eigener Programmcode geschrieben werden muss. Die derzeit über 7000 Erweiterungen stammen zum größten Teil von Fremdanbietern und sind zum Großteil kostenlos verfügbar. Erhältlich sind unter anderem Erweiterungen für News, Blogs, Shop-Systeme, Schnittstellen zu Fremdanbietern oder Diskussionsforen. Das System ist auf Mehrsprachigkeit ausgelegt und wird von einer Anwender- und Entwicklergemeinde aus aller Welt betreut. In einer bislang (Stand: 2024) unvollständigen Untersuchung[7] wurden etwa 225.000 TYPO3-Installationen im Internet gefunden, überproportional viele davon im deutschen Sprachraum. TYPO3 gehört damit neben Drupal, Joomla und WordPress mit zu den bekanntesten Content-Management-Systemen aus dem Bereich der freien Software.

Der Name TYPO3 stammt daher, dass Kasper Skårhøj bei der Entwicklung durch einen Tippfehler (englisch „typing error“, kurz „typo“) einen Teil seiner Arbeit verlor. Die Zahl „3“ wurde dem Namen schließlich angehängt, nachdem die dritte Version von TYPO durch ihren Erfolg als eine Art Marke bekannt wurde.[8]

Die TYPO3-Association schätzt, dass TYPO3 CMS weltweit mehr als 500.000 Mal schon eingesetzt wurde.[9] TYPO3 stellt mittlere Anforderungen an die Leistungs- und Konfigurationsfähigkeit eines verwendeten Servers.[10] Die Einarbeitungszeit eines Entwicklers beträgt erfahrungsgemäß mehrere Wochen bis Monate, für einen Autor/Redakteur, der eine Website via TYPO3 betreut und bedient, je nach freigeschalteten Funktionen/Erweiterungen, wenige Minuten bis einige Stunden. Ein Entwickler, der mit TYPO3 eine Website einrichten möchte, muss sich in der Regel intensiv mit der Metasprache TypoScript, FLUID oder YAML beschäftigen.

Der Support findet durch die Anwendergemeinde (Bugtracker,[11] Foren[12][13], slack[14] und News-/Mailinglisten[15]) und eine vergleichsweise große Anzahl an Dienstleistern statt, die sich auf die Verwendung von und Support für TYPO3 spezialisiert haben. Die Angebote reichen dabei von der Erstellung von Websites auf Basis von TYPO3 oder Entwicklung spezifischer Erweiterungen bis zu Website-Hosting mit vorinstalliertem TYPO3 CMS.

Die deutsche Bundesregierung hat im Jahr 2023 angekündigt, alle Webseiten (Government Site Builder (GSB)) von proprietären Systemen auf TYPO3 umstellen zu wollen und insgesamt 108 Millionen Euro für die Weiterentwicklung, den Umzug und den Betrieb zur Verfügung zu stellen.[16][17] Die Ausschreibungsphasen betreffen nicht nur verschiedene TYPO3-Agenturen, sondern auch allgemeine Web-Agenturen.

TYPO3 CMS wird auf einem Webserver installiert und mit einem Webbrowser benutzt. Außer einem Browser ist für die Benutzung keine Zusatzsoftware erforderlich. Die Nutzung von TYPO3 gliedert sich in drei große Bereiche:

  • die Erstellung des Website-Designs mittels Templates HTML mit FLUID
  • die Konfiguration von TYPO3 mittels TypoScript, FLUID oder YAML
  • die Eingabe und Redaktion des Website-Inhalts

TYPO3 CMS besteht aus einem Backend, das der Pflege der Website dient, und einem Frontend, das die Website selbst darstellt.

Im Backend wird die Website verwaltet, TYPO3 konfiguriert, es werden Inhalte eingepflegt und bearbeitet. Ein WYSIWYG-Editor (CKEditor) erlaubt es Anwendern ohne HTML-Kenntnisse, redaktionelle Tätigkeiten zu erledigen. Alternativ dazu kann die Bearbeitung von Inhalten auch direkt über das Frontend der Website vorgenommen werden. Diese Option bietet einen schnelleren Einstieg in das System.

Funktion und Architektur

[Bearbeiten | Quelltext bearbeiten]

Verwaltung der Inhalte, Rechte, Gestaltung und Datenbasis

[Bearbeiten | Quelltext bearbeiten]

Zu den Funktionen gehören unter anderem zeitliche Steuerung zum Ein- und Ausblenden von Inhalten, ein Rollen-, Workspaces und Rechtesystem (Benutzerverwaltung), eine Suchfunktion für statische und dynamische Inhalte, suchmaschinenfreundliche URLs, URL Weiterleitungsoptionen, Backend Dashboard, Extension Manager, ein Datei-Verwaltungssystem, Formulare, Aufgaben-Planer (Scheduled Tasks), Mehrsprachigkeit, Content Security Policy sowohl für das Backend als auch das mehrsprachenfähige Frontend. Weitere, über verschiedene Erweiterungen (sogenannte Extensions[18]) integrierbare Funktionen sind beispielsweise ein News[19] / Blog[20]-System, Login-Bereich, Grid-System[21], Formulare, Adressen-Listen[22], Gästebuch, verbesserte Suche mit Facetten[23][24], das Verfassen und der Versand eines Newsletters oder eine Statistik für Seitenaufrufe. Videomaterial, Bilder, Texte, Tabellen, Animationen sowie externe Datenquellen können in TYPO3 CMS (zum Teil nur über extra Erweiterungen) verwaltet werden.

Templates, in denen Seitenaufbau und Formate definiert werden, erleichtern die Darstellung von Inhalten. Inhalte werden über frei konfigurierbare Eingabemasken eingegeben, zum Beispiel in Form des enthaltenen Rich-Text-Editors, der über eine an gängige Textverarbeitungen angelehnte, WYSIWYG-artige Oberfläche verfügt. Eine integrierte Bildverarbeitung ist vorhanden. Der Objektmanager gestattet es, grafische Elemente zu skalieren, zu drehen, Rahmen hinzuzufügen etc., wobei TYPO3 CMS in Verbindung mit dem Bildkonverter ImageMagick und GDLib eine modifizierte Bilddatei im neuen Format erzeugt.

TYPO3 CMS wird intern über verschiedene PHP-Arrays gesteuert. Sie enthalten alle Informationen, die notwendig sind, um aus den in einer Datenbank gespeicherten Inhalten über TypoScript-Befehle oder FLUID-Ausgaben daraus HTML-Code zu erzeugen. In der Regel kann man fast jede Ausgabe und viele Backendeinstellungen über Änderungen der Konfiguration in den Arrays anpassen. Der dadurch während der Laufzeit der PHP-Skripte am Webserver benötigte Speicher ist deshalb von Bedeutung.

Die Inhalte und Parameter werden in einer relationalen Datenbank gespeichert und stehen unabhängig von dem jeweils verwendeten Template zur Verfügung. Dadurch kann das Erscheinungsbild einer Website theoretisch allein durch Austausch des Templates vollständig geändert werden, ohne die Inhalte anzufassen. Ebenso können dieselben Inhalte in unterschiedlichen Layouts oder Ausgabeformaten (zum Beispiel XML, RSS oder LaTeX) präsentiert werden.

Während in früheren Versionen die MySQL-Datenbank direkt angesprochen wurde, kann nun mit dem optionalen Database Abstraction Layer DBAL zwischen einer Anzahl gängiger SQL-Datenbanken gewählt werden, darunter als Open-Source-Alternative PostgreSQL, als kommerzielle Variante Oracle.

Ein integriertes Caching-System speichert Ergebnisse vorher definierter Datenbankaufrufe zwischen. Dadurch wird gerade bei hoch frequentierten Websites die Server- (CPU)-Belastung gesenkt, die Anzahl der Datenbankabfragen verringert und die Seite im Endeffekt schneller ausgeliefert und angezeigt.

Gestaltungselemente

[Bearbeiten | Quelltext bearbeiten]

Gestaltung und Programmierung von Webseiten mit TYPO3 CMS erfolgt üblicherweise über folgende Elemente:

  • Seitenbaum: Darstellung und Veränderung der Struktur und Eigenschaften der Seiten einer Website
  • Konstanten: Universell gültige Konfigurationsparameter
  • Template: Traditionell wurden früher einfache HTML-Dateien mit Platzhaltern, sog. Markern (zum Beispiel ###MARKER###) und Bereichsmarkierungen, sog. Subparts verwendet. Inzwischen wird innerhalb von TYPO3 und in sogenannten Extensions bevorzugt die Template-Engine FLUID verwendet. Das Fluid-Framework wurde 2008 entwickelt und wird sowohl von TYPO3 als auch von dem abgespaltenen Projekt Neos verwendet.[25]
  • TypoScript: Mit dieser internen Konfigurationssprache wird beschrieben, wie TYPO3 die Inhalte ermittelt, formatiert und ausgibt. Die Ausgabe von Seiten ist auch ohne HTML-Templates – mit reinem TypoScript-Code – möglich.
  • Erweiterungen: Die Funktion von TYPO3 erweiternde, zusätzliche Plug-ins / Extensions.
  • PHP: Die Funktionen von TYPO3 CMS sind in PHP und den PHP Framework Symfony geschrieben und können von Anwendern, die besondere Zusatzfunktionen realisieren wollen, geändert oder ergänzt werden. Hervorzuheben ist hierbei die XCLASS-Funktionalität, die es ermöglicht, Klassen und Methoden zu überschreiben. In der Regel werden aber Hooks bevorzugt eingesetzt.

Die Ausgabe von Inhalten im Frontend wird in erster Linie über die Metasprache TypoScript gesteuert. Genau genommen ist TypoScript eine Konfigurationssprache: Was in TypoScript definiert ist, wird in ein systemweites PHP-Array geparst. Dieses wiederum steuert, welche PHP-Funktionen beim Aufruf der Seite ausgeführt werden. Damit können Eigenschaften und Erweiterungen mit wenigen Handgriffen global für die gesamte Website verwaltet werden. TypoScript ist (bezogen auf die Syntax) objektorientiert.[26][27]

Beispiel: Um überhaupt eine Ausgabe erzeugen zu können, ist mindestens das Erzeugen eines PAGE-Objektes nötig. Mit folgendem Code wird die formatierte Überschrift „Hello, world!“ ausgegeben:

TypoScript Code:

page = PAGE
page {
    10 = TEXT
    10.value = Hello, world!
    10.wrap = <h2>|</h2>
}

Ausgabe:

<h2>Hello, world!</h2>

Weitere wichtige TypoScript-Objekte sind CONTENT zum Auslesen von Inhalten aus der Datenbank und FLUIDTEMPLATE zum Rendern eines HTML-Templates.[28]

Spricht man von TypoScript, meint man in der Regel die in den TypoScript-Templates festgelegte Konfiguration zur Frontend-Ausgabe; es gibt aber auch Backend-Konfigurationen, die (abgesehen von wenigen Ausnahmen) mit der gleichen Syntax notiert werden. Sie werden User TSconfig (Einstellungen für einen Backend-Benutzer oder -Benutzergruppe) und Page TSconfig (Einstellungen für das Backend, die für einzelne Seiten und deren Unterseiten gelten) genannt und werden unter dem Begriff TSconfig[29] zusammengefasst.

Für die Entwicklungsumgebung PhpStorm gibt es seit Mai 2014 ein Plugin,[30] welches TypoScript als Sprache integriert. Dies gibt es auch für FLUID[31] Templating. Dieses bietet neben Syntax-Highlighting auch Unterstützung für Auto-Vervollständigung, Auto-Formatierung und diversen anderen Funktionen. Neben jenem Plugin gibt es seit längerer Zeit auch eine Lösung von Jetbrains direkt, welche jedoch lediglich Syntax-Highlighting integriert.

Geistiger Vater und ehemaliger Chefprogrammierer von TYPO3 ist der Däne Kasper Skårhøj. Die Entwicklung des Systems wird derzeit von Benni Mack (TYPO3 Project Lead) geleitet.[32][3]

Startseite der Demo-Website „Introduction Package“

Die Benutzeroberfläche wurde mit den Versionen 4.2 und 4.3 geändert, hier wurde das Backend überarbeitet und soll damit intuitiver sein. Im Rahmen von Version 4.4, die am 22. Juni 2010 veröffentlicht wurde, ist das Design auf Basis der Ergebnisse der sogenannten User Experience Week (T3UXW) aus dem Vorjahr speziell hinsichtlich der Benutzerfreundlichkeit erneut verbessert worden. Zudem wurde mit dieser Version erstmals eine Demo-Website (genannt Introduction Package) ausgeliefert, die es Erstnutzern ermöglicht, sich schneller mit den Funktionen des Systems vertraut zu machen.[33] Mit TYPO3 4.5 wurden die wichtigsten Bearbeitungsformulare neu strukturiert. In neueren Versionen wurde das Interface weiter aufgeräumt und unter anderem für die Darstellung auf mobilen Geräten optimiert.

Da die Version 5.0 über mehrere Jahre parallel zum 4.x-Zweig komplett neu entwickelt wurde, wurden neue Hauptversionen im Rahmen der TYPO3-Branch 4.x veröffentlicht. Die Nummerierung der Versionen wich aufgrund dieser Eigenheit von der sonst üblichen ab. Ab Version 4.0 sind bereits mehrere Hauptversionen mit neuen Features veröffentlicht worden. Innerhalb der jeweiligen Unter-Zweige gilt der sogenannte „Feature-Freeze“; es werden also mit kleineren Updates keine neuen Funktionen hinzugefügt, sondern lediglich Fehler behoben und Sicherheitslücken geschlossen.

Nachdem sich mehr und mehr zeigte, dass der ursprünglich als TYPO3 5.0 geplante Nachfolger sich von seinem Funktionsumfang und den möglichen Einsatzgebieten her nicht als Nachfolger eignet, sondern eher ein eigenständiges Produkt neben TYPO3 bildet, wurde im März 2012 beschlossen, diese Entwicklung auch durch einen anderen Namen deutlich zu machen: Als Arbeitstitel von TYPO3 5 wurde „Phoenix“ gewählt. Der offizielle Name lautete ab dann „TYPO3 Neos“. Um Verwirrung bei der Bezeichnung der folgenden TYPO3-Releases zu vermeiden, folgte auf TYPO3 4.7 als nächste Version nicht TYPO3 5.0, sondern direkt TYPO3 6.0. TYPO3 Neos ist in einer eigenständigen Version 1.0 auf den Markt gekommen, die Versionsnummer 5 wurde vollständig aus dem Versionszyklus des TYPO3-Projektes gestrichen.[34][35] 2015 wurde bekannt gegeben, dass Neos in Zukunft unabhängig von der TYPO3 Association weiterentwickelt werden solle.

Wichtige Versionen

[Bearbeiten | Quelltext bearbeiten]
Legende: Ältere Version; nicht mehr unterstützt Ältere Version; noch unterstützt Aktuelle Version Aktuelle Vorabversion Zukünftige Version
Paket-Name Version Unter-
version[36]
Veröffentlichung Allgemeine Korrekturen bis Sicherheitsrelevante Korrekturen bis Wichtigste Änderungen
TYPO3 CMS 3.x Ältere Version; nicht mehr unterstützt: 3.0 2001[37] Erste veröffentlichte Version.
Ältere Version; nicht mehr unterstützt: 3.2 Mai 2002[38] Diverse Fehlerkorrekturen.
Ältere Version; nicht mehr unterstützt: 3.3 3. Juni 2002[39] Diverse Fehlerkorrekturen. Erste über sourceforge verfügbare Version.
Ältere Version; nicht mehr unterstützt: 3.5 18. Februar 2003 Diverse Fehlerkorrekturen. Mit Version 3.5.1 Einführung des Erweiterungs-Managers. Damit ist die Erweiterung von TYPO3 um von Benutzern geschriebene Module