Basketbutton Event

Hallo ich habe folgendes Problem, ich möchte, nachdem der Kunde einen Artikel in den Warenkorb legt und das Fenster aufpopt, ob man weiter einkaufen möchte oder zum Warenkorb, unter dem Artikel einen von mir definierten Artikel anzeigen lassen. Als Event benutze ich public function registerEvent() { $this-\>subscribeEvent( 'Enlight\_Controller\_Action\_PostDispatch\_Frontend\_Detail', 'onEnlightControllerActionPostDispatchFrontendDetail' ); } public function onEnlightControllerActionPostDispatchFrontendDetail(Enlight\_Event\_EventArgs $arguments) { $controller = $arguments-\>getSubject(); $view = $controller-\>View(); $view-\>addTemplateDir($this-\>Path() . 'Views/'); $view-\>extendsTemplate('frontend/plugins/meinplugin/index.tpl'); $view-\>assign('test', $this-\>getTestFunktion()); } public function getTestFunktion() { return 'Test Hallo'; } In meiner index.tpl habe ich zum test folgends stehen. {block name="ajax\_add\_article" append}{$test}{/block} Doch beim Aufruf der Seite kommt eine Fehlermeldung. Kann mir da jemand einen Denkanstoß geben. Vielen Dank :wink:

Schön … und welche Fehlermeldung kommt nun ?

Tut mir leid :wink: Die Fehlermeldung bestand darin, dass die index.tpl nicht eingebunden werden konnte, das habe ich nun beheben können, nachdem ich den richtigen Pfad eingegeben habe. Das Problem, das aber noch besteht, ist, dass meine Template Datei nicht den Block überschreibt. public function onPostDispatchFrontendDetail(Enlight\_Event\_EventArgs $arguments) { $controller = $arguments-\>getSubject(); $view = $controller-\>View(); $request = $controller-\>Request(); if ($request-\>getControllerName() !== 'account' || $request-\>getModuleName() !== 'frontend' || !$view-\>hasTemplate()) { return; } $view-\>addTemplateDir($this-\>Path() . 'Views/'); $view-\>extendsTemplate('frontend/plugins/meinplugin/index.tpl'); $view-\>assign('test', $this-\>getTestFunktion()); }

Wo liegt denn genau dein Template ? Schau mal hier -> http://wiki.shopware.de/Shopware-4-Grun … l_971.html „engine/Shopware/Plugins/Local/Frontend/SwgaSloganOfTheDay/Views/frontend/plugins/slogan_of_the_day“

Das Template liegt im Ordner engine/Shopware/Plugins/Local/Frontend/testplug/Views/frontend/plugins/meinplugin/index.tpl

Doofe Frage, aber hast du das Plugin im Backend auch entsprechend aktiviert ? Gibt der Debug Modus Fehler aus ?

Ja, war es, aber ich habe es jetzt noch mal gelöscht, den Shopcache geleert, das Debug Plugin ist auch aktiviert, aber keine Fehlermeldung. Nichts.

Nach vielem herum probieren, denke ich, das es einfach daran liegt, das ich das Falsche Event benutze und deshalb die Template Datei nicht eingelesen wird. Zu letzt habe ich es mit $this-\>subscribeEvent( 'sBasket::sAddArticle::before', 'onPostDispatch' ); Wenn ich die Funktion verwende, wird das Popup nicht mehr aufgerufen, nur das Ladeicon ist zu sehen.