T3 Campus T3 Campus

Konfigurationsdatei für eine TYPO3 Extension erstellen

Du kannst globale Einstellungen für deine Extension in TYPO3 mit dem Anlegen einer einzigen Datei definieren und im Backend darauf zugreifen.

Jede gute TYPO3 Erweiterung ermöglicht es, das Verhalten oder Aussehen über eine Konfiguration zu beeinflussen.
Damit erweitert man die Einsatzmöglichkeiten und die Integrierung in fremden TYPO3 Webseiten.

In der TYPO3 Extensionentwicklung gibt es mehrere Möglichkeiten, Einstellungen dem TYPO3 Redakteur zur Verfügung zu stellen.

In diesem Tutorial zeige ich dir, wie du globale Einstellungen für deine Extension definieren kannst. Diese globalen Einstellungen können dann nur von TYPO3 Admin mit dem Install oder den Admin Tools geändert werden.

ext_conf_template.txt

Das geht in TYPO3 auch erschreckend einfach. Du musst lediglich in dem Rootordner deiner Extension eine Datei mit dem Namen: ext_conf_template.txt erstellen.

In dieser Datei schreibt man dann TypoScript im Stil von Konstanten. Das heisst, du behandelst diese Datei wie deine constants.typoscript oder den Constant Bereich im TYPO3 Backend und definierst TypoScript Konstanten.

Damit du die Konfigurationsdatei strukturierst und nicht wahllos Felder unsortiert untereinander platzierst, kategorisiere deine Felder. Das funktioniert auf der gleichen Art und Weise, wie für den Konstanten-Editor.

Beispiele

# cat=Login; type=string; label=Logo: If set, this logo will be used instead of...
loginLogo =

Das erzeugt ein Feld unterhalb dem Reiters: Login, mit dem Feldnamen: Logo und der Beschreibung: "If set, this logo..."

(c) docs.typo3.org

Du kannst diese Datei auch schachteln, wie du das in TypoScript kennst. Falls du beispielsweise mehrere Reiter hast, dann kannst du die im TypoScript wie folgt strukturieren:

login {
  # cat=Login; type=string; label=Logo: If set, this logo will be used instead of...
  loginLogo =
}

backend {
  # cat=Backend; type=string; label=Example Setting: This is just an example setting
  exampleSetting =
}

Bei dieser Schreibweise ist es nur wichtig, dass die Kommentare direkt über halb des letzten TypoScript-Pfades sind. Eine Kategorisierung der obersten oder Zwischenpfade sind nicht möglich. 

Konfiguration im Backend bearbeiten

Diese Konstanten können dann nur von TYPO3 Admins bearbeitet werden. Denn die Formulare für deine Konfiguration über ext_conf_template.txt ist nur im Install Tool oder via Admin Tools -> Settings (Adminwerkzeuge -> Einstellungen) erreichbar. Und beide Bereiche stehen nur TYPO3 Admins zur Verfügung.

Unterhalb von Settings (Einstellungen) gehst du dann auf Configure extensions:

Screenshot von Extension Configuration im Install Tool

Dort findest du dann alle globalen Konfigurationen von allen Extensions, die eine solche haben. Die Bearbeitung geht dann auf der gleichen Art und Weise, wie im Konstanten-Editor.

Konfiguration in Extbase auslesen

Diese Einstellungen mit ihren eingegebenen Werten kannst du dann in deiner Extension an jeder beliebigen Stelle wie folgt zugreifen:

use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Core\Configuration\ExtensionConfiguration;

$extensionConfiguration = GeneralUtility::makeInstance(ExtensionConfiguration::class)
   ->get('my_extension_key');

Du erhältst dann ein assoziatives Array mit derselben Gliederung wie im TypoScript zurück. Für das letzte Beispiel wäre dann der Zugriff wie folgt:

$loginLogo = $extensionConfiguration['login']['loginLogo'];
$exampleSetting = $extensionConfiguration['backend']['exampleSetting'];

Falls du nur einen Wert auslesen möchtest, dann kannst du das auch über die ExtensionConfiguration tun:

$loginLogo = GeneralUtility::makeInstance(ExtensionConfiguration::class)
   ->get('my_extension_key', 'login')['loginLogo'];

Fazit

Du siehst, TYPO3 macht es dir sehr einfach, globale Einstellungen für deine Extension zu hinterlegen. Es reicht aus, indem man eine Datei im Ausgangsordner deiner TYPO3 Erweiterung erstellst und mit TypoScript Konstanten füllst.

Der kinderleichte Zugriff im PHP Code über die Klasse: ExtensionConfiguration ist ein weiterer großer Vorteil dieser Konfigurationsvariante. Denn der Zugriff auf die TypoScript Settings in eigene Klassen ist im Vergleich viel komplizierter.

Bereit mehr zu lernen?

Dann komme in meine TYPO3 Onlineschule

Als Mitglied des T3 Campus für TYPO3 Schulungen erhältst du eine einzigartige Lernplattform, um professionelle Webseiten mit TYPO3 zu erstellen. Egal, ob du ein Einsteiger, Umsteiger oder bereits erfahren bist – hier findest du die passenden Lernvideos für dich.

Kevin Chileong Lee

Gründer vom T3 Campus, TYPO3 Experte mit 10+ Jahren Erfahrung, TYPO3 Liebhaber.

Ich helfe dir dabei, deine Projekte in TYPO3 umzusetzen.

Insbesondere für TYPO3 Einsteiger biete ich zahlreiche kostenfreie Tutorials und kostenpflichtige Kurse rund um TYPO3 an.
Damit kannst du in wenigen Tagen auch ohne Vorkenntnisse deine erste TYPO3 Webseite erstellen und Erweiterungen programmieren.

Auf meinem YouTube-Kanal findest du viele praktische Beispiele und Videotutorials als auch allgemein Videos zu diversen TYPO3 Themen.

Neber den TYPO3 Tutorials und Kopiervorlagen, schreibe ich auch Artikel auf meinem Blog über diverse Themen und Fragen, die die meisten TYPO3 Einsteiger, haben.

Falls du ein TYPO3 Coaching suchst, dann stehe ich dir in einer 1:1 Trainingssession zur Verfügung.

Wenn du auf dem Laufenden sein möchtest über meine Projekte, dann abonniere den Newsletter.