T3 Campus T3 Campus

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.

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.