Provider Extension zur Konfiguration von TYPO3 Webseite

Mit einer Provider Extension bzw. einem Site Package können Sie die Konfiguration Ihrer TYPO3 Webseite in eine eigene Erweiterung verlagern. Die Extension lässt sich einfach versionieren, updaten und migrieren. Lesen Sie mehr über die Vor- und Nachteile verschiedener Varianten, Quelltexte für TypoScript zu verwalten.

Methoden zur Konfiguration von TypoScript

Es gibt mehrere Arten, das TypoScript und weitere Sourcen für eine Webseite mit TYPO3 zu konfigurieren und zu programmieren: 

  • Das gesamte Setup wird in der Datenbank abgelegt 
  • Das Setup steht mit allen Dateien im fileadmin, also dem Datensystem von TYPO3 
  • Man schreibt alles in eine Provider Extension 

Die beiden ersten Wege bieten die folgenden Nachteile

  • Beim Speichern des Setup in der Datenbank kann man zwar den Editor des TYPO3 Backend nutzen, jedoch wird der Quelltext recht schnell unübersichtlich.
  • Zudem gibt es keine Möglichkeit, einen oder mehrere Schritte rückgängig zu machen, wenn man sich zuvor nicht selbst um Backups bemüht hat 
  • Der fileadmin ist von außen einsehbar, damit auch das gesamte Setup der Webseite. 

Provider Extension oder Site Package

Um all dies zu umgehen, wählt man für das Schreiben einer Webseite heutzutage normalerweise den Weg einer Provider Extension, auch als Site Package bekannt. Das gesamte Setup der Webseite wird in Dateien geschrieben. Dies umfasst alle Sourcen für TypoScript, CSS, HTML / Fluid und JavaScript. Dies hat mehrere Vorteile

  • Die Inhalte der Provider Extension sind von außen nicht einsehbar, ausgenommen die Soucen für CSS und JavaScript, die für Browser verfügbar sein müssen und im Public Verzeichnis liegen 
  • Alle Quellcodes der Extension werden bei einem Update über den Erweiterungsmanager im Backend von TYPO3 mit einem Rutsch auf den neuesten Stand gebracht, es braucht keine Verwaltung für die Sourcen und kein Deployment Tool 
  • Wenn etwas nicht klappt, kann man in wenigen Sekunden die frühere Version der Provider Extension installieren und damit ein Downgrade vollziehen. 

Aufbau einer Provider Extension

Der Aufbau einer Provider Extension folgt den Konventionen jeder Erweiterung in TYPO3. Wichtig sind dabei sind die Verzeichnisse 

  • Configuration 
  • Resources 

Im Verzeichnis Configuration legt man in erster Linie die Konfiguration der Webseite mit TypoScript ab. Als beste Verhaltensweise hat sich etabliert, die Setup Datei über den @import Befehl ins Basis Template einzubinden. Alle weiteren Dateien werden dann von dieser Datei aus referenziert.

Das Verzeichnis Resources gliedert sich in die Unterverzeichnisse 

  • Private
  • Public 

In Private ist der richtige Platz, um HTML-Dateien und Fluid-Templates abzulegen. Damit kann man hier die gesamte Konfiguration für das Frontend der Webseite mit allen Templates, Layouts und Partials ablegen. In diesem Verzeichnis lassen sich aber auch die Fluid-Dateien ablegen, mit denen man die Layouts eingebundener Extensions an das eigene Design anpasst. 

In Public legt man alle Sourcen für CSS und JavaScript ab. Dieses wird von TYPO3 für den externen Zugriff freigeschaltet, damit Browser eine Webseite auch so darstellen können, wie es sich der Betreiber vorgestellt hat. 

Struktur einer Provider Extension

Hier ein Beispiel für den exemplarischen Aufbau der Struktur einer Provider Extension in TYPO:

 └── meineextension
    ├── Configuration
    |   ├── ExtensionBuilder
    |   ├── TCA            
    |   └── TypoScript
    ├── Documentation
    └── Resources
        ├── Private
        |   ├── Language
        |   ├── Layouts
        |   ├── Partials
        |   └── Templates
        └── Public
            ├── Css
            ├── Js
            └── Icons

Mehr zum Aufbau einer Provider Extension im Wiki unserer Internetagentur: 
►wiki.agentur-ibk.de

Einfügen der Provider Extension in Basis Template

Wenn die Arbeit an der Provider Extension abgeschlossen ist, kann diese mit einer einfachen Zeile TypoScript an das System angeschlossen werden:

@import "EXT:meineexetension/Configuration/TypoScript/config.ts"

Ab diesem Zeitpunkt stehen alle Konfigurationen der Webseite zur Verfügung.

Thomas Berscheid ⧉ 29.06.2020