In Extensionen kommt es häufig vor, dass in Abhängigkeit von der aktuellen Konfiguration bestimmte Werte (z.B. Seiten-IDs) an die Extension übergeben werden müssen. Um dies zu erreichen gibt es verschiedene Möglichkeiten, zum Beispiel den ConstantEditor.
Eine weitere Möglichkeit ist die Eingabe der Werte über ein TS-Template, womit die Werte der Extension im conf[]-Array zur Verfügung stehen. Dies wird jedoch spätestens dann aufwändig, wenn die Extension aus mehreren Untermodulen (pi1, pi2, pi3…) besteht und die Parameter allen Untermodulen bekannt sein muss.
In diesem Fall bietet sich eine einfachere Möglichkeit an: ext_conf_template.txt.
Hierbei handelt es sich um eine Textdatei die im Hauptverzeichnis der Extension existieren kann. Ist sie vorhanden, so wird sie eingelesen. In dieser Datei werden nun die Variablen definiert, wobei die Syntax die selbe wie beim ConstantEditor ist. Sollen Variablen thematisch gruppiert werden können sie in eine geschweifte Klammer eingeschlossen werden.
Gruppenname { variablen }
Die zu konfigurierenden Variablen finden Sie, wenn Sie im Extension Manager auf den Namen der Extension klicken, um die Informationsseite aufzurufen. Jede Variable wird mit der angegebenen Beschreibung angezeigt. Wird das Formular gesendet werden die Daten in einem serialisierten Array in der localconf.php gespeichert.
HINWEIS: Falls Sie in einer der Variablen Dateien auswählen wollen, so sollten sich diese im Unterverzeichnis /res der Extension befinden.
Falls Sie die Eingaben im Formular vor dem Speichern in der localconf.php noch prüfen oder modifizieren wollen müssen Sie einen Hook des Extension Managers nutzen und Ihre Funktion in folgendem Aufruf registrieren:
$TYPO3_CONF_VARS['SC_OPTIONS']['typo3/mod/tools/em/index.php']['tsStyleConfigForm'][] = “function"
Um die Variablen später anwenden zu können müssen selbige aus dem serialisierten Array ausgelesen werden. Dies kann recht einfach mit dem folgenden Code geschehen:
$Config = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['extension_key']); $var = $Config['var_name'];