Extensionen werden in TYPO3 in vielen, wenn nicht sogar den meisten, Fällen mit Typoscript konfiguriert. Im Typoscript-Template gibt es daher dann für das erste Plugin der Extension mytest einen Bereich a la plugin.mytest_pi1, für weitere Plugins derselben Extension plugin.mytest_pi2 etc. Die Daten des entsprechenden Bereiches steht dem jeweiligen Plugin in der Variablen $this->conf[] zur Verfügung.
Oft trifft es aber zu, dass in den verschiedenen Plugins gewisse Basisdaten der Konfiguration gebraucht werden, die für alle Plugins gelten. Dies können Formatierungen und Templates sein, aber auch jegliche andere Konfiguration.
Um diese Daten jedem Plugin zur Verfügung zu stellen gibt es verschiedene Ansätze. Der allgemeinste Ansatz wäre das Kopieren der Daten im Typoscript Template, in welchem dann folgender Code die Einstellungen vom Plugin1 zum Plugin2 kopieren würde:
plugin.mytest_pi2 < plugin.mytest1
Allerdings ist diese Lösung alles andere als ideal, da dies eine Zeile im Typoscript Template ist, welche einfach gelöscht oder vergessen werden kann. Die Auswirkungen können sehr unterschiedlich ausfallen. Daher ist es besser diese Daten im PHP-Code der Extension zu kopieren, wobei die Daten bei diesem Vorgang zusätzlich auch noch verifiziert und gegebenenfalls modifiziert werden können.
Im PHP-Code der Extension kann jederzeit auf die Typoscript Daten zugegriffen werden:
$ts = $GLOBALS['TSFE']->tmpl->setup['plugin.']['mytest_pi1.'];
Da bei dieser Methode des Zugriffs nicht die Notwendigkeit gegeben ist sich an strikte Namenskonventionen zu halten, kann allgemeiner Code der mehrere Plugins der Extension betrifft auch in einen allgemeinen Teil umverlagert werden, wie der folgende Code zeigt:
$ts = $GLOBALS['TSFE']->tmpl->setup['plugin.']['mytest.'];
In diesem Fall wären alle allgemeinen Einstellungen im Typoscript Template in Bereich plugin.mytest anzugeben, spezielle Einstellungen pro Plugin jedoch weiter hin als plugin.mytest_pi1 etc.
Durch diese Aufteilung und die Verteilung innerhalb des PHP-Codes wird die beste Kombination zwischen Flexibilität, Sicherheit und Übersichtlichkeit getroffen.
Eine Anmerkung ist an dieser Stelle jedoch wichtig: Daten die im „allgemeinen Teil (mytest)“ gespeichert sind, stehen NICHT automatisch in $this-conf zur verfügung und müssen bei Bedarf im PHP-Code dorthin übetragen werden. Auch wichtig anzumerken ist, dass dies nur EINE Möglichkeit der Vereinfachung darstellt, die je nach Anwendung mehr oder weniger gut umzusetzen ist.