Hallo zusammen, ich hätte mal eine (bestimmt doofe) Frage: wie kann ich auf meinen eigenen Controller zugreifen? Hier die Erklärung. Ich habe ein Plugin, liegt in /engine/Shopware/Plugins/Local/Frontend/Test In diesem Verzeichnis habe ich zwei Dateien: Bootstrap.php (mit install Funktion, Events, Hooks u.s.w) und TestController.php, in dem ich meinen Controller definiere: class Shopware\_Plugin\_Frontend\_DirectOrder\_DirectOrderController{ function getArticleDataAjax(){ echo 'GET-ARTICLE-DATA'; return 'GET-ARTICLE-DATA'; } function xxxAction(){ echo 'RRRR'; return 'RRRR'; } }
Frage: wie kann ich auf diesen Controller zugreifen? Zu einem möchte ich eine Funktion per Ajax aufrufen (User gibt ordernumber ein und sieht dann den Namen des Articles). Andere Anwendung dieses Controllers - “action” Feld in einem Formular. Ich möchte ein Formular an den Controller schicken. Hoffe, die Fragen nicht soooo doof und dass mir jemand ein Tipp gibt, wo ich darüber nachlesen kann.
OK, ich glaube, ich hab’s gefunden (genauer gesagt hat mir mein Kollege geholfen). Vielleicht hilft das irgendwann jemanden. Im Plugin, in der Bootstrap.php habe ich so ein Event definiert: $event = $this-\>createEvent( 'Enlight\_Controller\_Dispatcher\_ControllerPath\_Frontend\_Test', 'onGetControllerPathFrontend' ); $this-\>subscribeEvent($event);
In der Funktion onGetControllerPathFrontend(): public static function onGetControllerPathFrontend(Enlight\_Event\_EventArgs $args){ return dirname(\_\_FILE\_\_).'/TestController.php'; # Controller laden }
Und als letztes habe ich in der Datei TestController.php die Actions definiert. Klappt bisher. Würde mich interessieren, ob das richtige Vorgehensweise ist bzw. ob man das anders macht.
Alles korrekt