Extbase Plugins mit TypoScript einbinden

TYPO3 Erweiterungen im bisherigen pi_base-Stil kann man ganz einfach mit

in ein beliebiges TypoScript Objekt einfügen.

Mit neueren Erweiterungen die man mit Extbase und Fluid erstellt, gestaltet sich das (noch) etwas schwieriger. Hier muss man einen Umweg über eine userFunc mit dem Extbase Bootstrapper gehen.

Bei dem Beispiel handelt es sich um eine kleine Webshop Erweiterung die ich für ein Projekt geschrieben habe. Ziel ist es, eine Warenkorb Übersicht in der Sidebar auszugeben:

Jetzt muss nur noch im Cart Controller (wie im TS angegeben) die sidebarAction implementiert werden, in der unsere gewünschte Ausgabe generiert wird. Das erfolgt üblicherweise mit einem Fluid Template – dazu wiederum das entsprechende Template sidebar.html im Templates/Cart Verzeichnis anlegen, in der sidebarAction mit $this->view->assign() die Templatevariablen zuweisen und schließlich die fertige Ausgabe mit return $this->view->render(); zurückgeben. Das return Statement bitte nicht vergessen denn sonst passiert gar nichts 😉

Beteilige dich an der Unterhaltung

5 Kommentare

  1. Wenn wir ab der  TYPO3-Version 6.0 mit Namespaces arbeiten, laufen wir in einen Fehler, da der Dispatcher die Klasse Tx_Extensionname_Controller_CartController aufrufen möchte und nicht findet  – logisch, die Klasse gibt’s ja unter der Benamung so auch nicht.

    Lösung:

    Wenn wir bei extensionName etc. noch folgendes angeben:

    vendorName = xyz

    Wenn ein vendorName angegeben ist: der controller-Name wird nach dem Namespace-Schema zusammengebaut: VendorName\ExtensionName\Controller\CartController

    Wenn KEIN vendorName angegeben ist: der controller-Name wird nach dem klassischen Schema zusammengebaut: Tx_Extensionname_Controller_CartController

    den vendorName findet ihr in der Controller-Klasse zu Beginn der Namespace-Deklaration ganz oben.

  2. Danke für diesen wunderbaren Tipp! Ich habe schon ewig gesucht, woran es liegen kann, dass TYPO3 einen alte tx_-Controller analysieren möchte, obwohl die Extension auf Namespaces umgestellt wurde.

  3. Obacht bei Verwendung von switchableControllerActions: nutzt die Extension diese Methode, so muss die gewünschte Controller-Action-Kombination in TypoScript angegeben werden (dafür kann aber wohl die Angabe von controller und action entfallen):

     

Schreib einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.