Heute hatte ich ein sehr „spannendes“ Problem auf meinem lokalen Testserver. Szenario: Eine normale TYPO3 Website eines Kunden, die ich mir auch am lokalen Server eingerichtet habe damit ich größere Änderungn zuerst lokal entwicklen und testen kann. In dieser Website kommen u.a. Extbase Erweiterungen zum Einsatz, daher werden auch Fluid Templates verwendet. Weiterlesen
Schlagwort-Archiv: fluid
Extbase Plugins mit TypoScript einbinden
TYPO3 Erweiterungen im bisherigen pi_base-Stil kann man ganz einfach mit
lib.foo < plugin.tx_extensionkey_pluginname |
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:
lib.sidebar = COA lib.sidebar { # [...] 10 = USER 10 { userFunc = tx_extbase_core_bootstrap->run # TYPO3 6.0 / Namespaces Kompatibilität vendorName = Foo pluginName = Pi2 extensionName = ExtensionKey controller = Cart action = sidebar switchableControllerActions { Cart { 1 = sidebar } } settings =< plugin.tx_extensionkey.settings persistence =< plugin.tx_extensionkey.persistence view =< plugin.tx_extensionkey.view } } |
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 😉