Extension über TypoScript einbinden
In dem letzten Teil deiner Integratorausbildung zeige ich dir, wie du Extbase Extension als Element mit TypoScript erstellen und einbinden kannst.
Du hast gelernt, wie man Inhaltselemente in TypoScript referenzieren und dem TYPO3 Entwickler zur Verfügung stellen kannst. In diesem Schritt zeige ich dir, wie du eine Extbase Extension per TypoScript in einen Pfad anlegen und bereitstellen kannst. Es wäre auch möglich, die Extension als Frontend Plugin umzusetzen und dann das Plugin in einem TYPO3 Ordner abzulegen und wie gewohnt als normales tt_content - Inhaltselement einbinden.
Aber was ist, wenn das nicht geht?
Du kannst eine Extension direkt ansteuern, das heißt Controller und Actionfunktion ansprechen und in einem TypoScriptpfad referenzieren. Wir nutzen dafür das universelle TypoScript - Objekt: USER.
lib.extensions.exampleExtension = USER
lib.extensions.exampleExtension {
userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
extensionName = Example
pluginName = Pi1
vendorName = Slavlee
controller = ControllerOhneControllerAmEnde
action = ActionAberOhneActionAmEnde
view < plugin.tx_example.view
persistence < plugin.tx_example.persistence
settings < plugin.tx_example.settings
}
Das sind viele Zeilen. Lass uns erstmal klären, was die Eigenschaften im Einzelnen bedeuten.
userFunc | PHP - Funktion die für das Initialisieren einer Extbase Extension verantwortlich ist. Hier ist es die TYPO3 Standardfunktion |
extensionName | Name der Extension in der CamelCase - Schreibweise |
pluginName | Name des Plugins |
vendorName | Name des Vendors, also Autor der Extension |
controller | Name des Controllers des angesprochen werden soll |
action | Name der Action - Funktion die angesprochen werden soll |
view | TypoScript Array um die Pfade aller Templateordner zu definieren |
settings | TypoScript Array um Einstellungen der Extension zu setzen |
Eine Extbase - Extension ist in TYPO3 so aufgebaut, dass es Controller und Action - Funktionen gibt. Diese 2 Komponenten sind zentrale Anlaufstelle einer Extension. Die Actionfunktionen lassen sich direkt ansteuern, entweder hier über TypoScript oder durch einen URL-Aufruf. Wichtig ist, dass hier nicht die Zusätze: Controller oder Action mit angegeben werden.
Des Weiteren ist eine Extension unterteilt in Plugins, wenn diese Extension eine Ausgabe in das Frontend machen möchte. Deshalb müssen wir hier den Namen des Plugins angeben.
Für eine vollständige Initialisierung muss TYPO3 noch die Pfade der Templatedateien kennen. Hier gibt es zwar klare Konventionen, aber aufgrund von Flexibilität noch keine automatisierte Ermittlung. Deshalb übergibt man hier ein TypoSript Array: view und teilt Typo3 alle Startordner für Layout, Template und Partial mit.
...
controller = ControllerOhneControllerAmEnde
action = ActionAberOhneActionAmEnde
view < plugin.tx_example.view
persistence < plugin.tx_example.persistence
settings < plugin.tx_example.settings
...
Die Eigenschaft: settings bietet die Möglichkeit, Einstellungen via TypoScript an die Extension zu senden.
In TypoScript lassen sich auch Pfade kopieren. Das siehst du am obigen Beispiel mit den Zeichen: <. Hier kopieren wir den Inhalt eines Pfades in einen anderen. Wichtig: Falls man einen Pfad, via Extension oder aus dem Backend heraus, ändert. Dann ändern sich nicht automatisch die Kopien.
Wir kopieren und erstellen keine Referenz
Die Eigenschaft: persistence kann das Verhalten der Datenbankspeicherung beeinflussen. Diese Eigenschaft ist etwas für TYPO3 Entwickler.
Das ist die Art und Weise, wie du eine Extbase Extension mit TypoScript einbinden bzw. zur Verfügung stellen kannst. Du hast hier die Flexibilität, direkt einen Controller und eine Action - Funktion anzusteuern. Falls du ein Plugin einbinden willst, mit den Standardcontroller und Actionfunktion. Dann geht das in TypoScript wesentlich schneller über diese Anweisung:
lib.extensions.exampleExtension =< tt_content.list.20.example_pi1
Jedes Frontend Plugin ist in TYPO3 unter dem Pfad: tt_content.list.20 aufgelistet. Hier ist die Schreibweise: nameDerExtension.nameDesPlugins. Wir übertragen dann den gesamten Typoscriptpfad zu unserem gewünschten Zielpfad. Mit dem Zeichen =< erstellen wir keine Kopie, sondern eine Referenz. Dadurch werden alle Änderungen am Original, auch direkt in den Referenzen wirksam.
Damit ist deine Basisausbildung im T3 Campus als TYPO3 Integrator erfolgreich beendet.
Herzlichen Glückwunsch
Du kannst mit dem Wissen die meisten gängigen Aufgaben lösen.