Die ext_conf_template.txt und class.ext_update.php

Je komplexer die eigenen Extensions werden, um sehr mehr muss man globale Einstellungen aus dem Code fernhalten und zentral zugänglich machen. Dazu eignet sich vor allem die Konstanten Definition im Typoscript Setup und Constants. Die Variablen die hier definiert werden können dann unter Template -> Konstanten editiert werden.

Um schon bei der Extensioninstallation Konstanten eingeben zu können, oder um Daten in die DB zu schreiben, müssen weitere Dateien der Extension hinzugefügt werden:

Die ext_conf_template.txt

Mit dieser Datei wird schon im Extension Manager ein Formular zu Dateneingabe bereitgestellt. Die Syntax ist analog der constants im TypoScript Extensionsetup - die Usereingaben sind auf gleichem Weg auszulesen. Das bekannteste Beispiel ist die Konfigurationsseite von realurl im Extension Manger.

Unter TYPO3 6.1 ist die Konfigurationsseite im Extensionmanger über das "Zahnrad" erreichbar.

 

 

Extensiomanager

 

Extensionsetup am Beispiel realurl.

Jede Konstante wird in der ext_conf_template.txt über folgende Zeilen definiert:

# cat=basic/enable; type=string; label= My lable header: my lable text
myKonstantenName = defaultValue

Ausführlich habe ich das auch in diesem Artikel beschrieben -> Extensionkonstanten im Template Editor

Die class.ext_update.php

Eins vorweg, diese Datei heißt tatsächlich unter Typo3 6.1 so und liegt wie die ext_conf_template.txt im root Verzeichnis der Extension. In Typo3 6.0 ist die ext_update.php nicht aufrufbar!

Im Gegensatz zur ext_conf_template mit der nur die Eingabemöglichkeit für Konstanten zur Verfügung gestellt wird, kann mit der class.ext_update ein php Script ausgeführt werden.

So ist es möglich dem User erst ein Formular zur Verfügung zu stellen und mit diesen Eingaben dann die Datenbank zu manipulieren (mit der ext_table_static+adt.sql können nur vorher fest definierte Werte in die DB geschrieben werden).

Ein Praxisbeispiel:

Meine Extension reponsive_template schreibt automatisch Backendlayouts bei der Installation in die DB. Das ist in der ext_table_static+adt.sql definiert, allerdings kann die Seiten ID der neuen Datensätze hier nur fest vorgeben werden. Liegt das Template auf einer anderen pid, werden die Backendlayouts nicht erkannt.

Über die class.ext_update.php erzeuge ich ein Formular in der die SeitenId des Templates angegeben wird und nutze diese Eingabe zum schreiben der Backendlayouts in die DB.

 


In der Klasse muss die function access() enthalten sein, die bei einer Rückgabe von TRUE das updatescript im Extension Manager anzeigt (TYPO3 6.1: update Symbol im Extension Manager, siehe erste Abbildung, rechts neben dem "Zahnrad").

Bei einer Rückgabe von TRUE wird dann die function main() aufgerufen in der Ihr eure eigentlichen Anweisungen schreibt.

Empfehlenswerte Lektüre:

Schrödinger lernt HTML5, CSS3 ...

Die Buchfigur Schrödinger lernt hier auf sehr unterhaltsameweise html, CSS und Javascript. Da er dabei nahezu bei null beginnt, holt er auch Einsteiger punktgenau ab. Selbst "Alte Hasen",  für die html 5 und CSS3 zum Tagesgeschäft gehören, werden das ein oder andere Neue erfahren oder einfach nur perfekt von der Story unterhaten. Fazit: überaus lesenswert.

Weitere Artikel zu diesem Thema:

Kommentare

keine Kommentare vorhanden


Kommentar verfassen

Die Email Adresse wird nicht veröffentlicht.