Hallo an Community, ich möchte im Backend nach dem „Artikel speichern“ noch eine Funktion aus meinem Plugin ausführen. Habe einen Hook registriert, der aber nicht aufgerufen wird. Ich habe die Pfade auch auf verschiedenste Weisen umgeschrieben, alles ohne Erfolg: $this-\>subscribeEvent( 'Shopware\_Controllers\_Backend\_Article::saveArticle::after', 'afterSaveArticle' ); $this-\>subscribeEvent( 'Shopware\Controllers\Backend\Article::saveArticle::after', 'afterSaveArticle' ); $this-\>subscribeEvent( 'Shopware\Controllers\Backend\Shopware\_Controllers\_Backend\_Article::saveArticle::after', 'afterSaveArticle' );
Meine afterSaveArticle Funktion wird einfach nicht aufgerufen. Wie macht man so etwas? Vielleicht nicht über einen Hook? Aber wie dann? Also meine Plugin-Funktion nach dem Aufruf von Shopware\Controllers\Backend\Shopware_Controllers_Backend_Article->saveArticle() ausführen? Danke im Voraus!
Ein Hook ist hier nicht erforderlich. Einfach mit $this-\>subscribeEvent( 'Enlight\_Controller\_Action\_PostDispatch\_Backend\_Article', 'onPostDispatchArticle' );
auf das PostDispatch Event registrieren und anschließend mit public function onPostDispatchArticle(Enlight\_Event\_EventArgs $args) { if ( $args-\>getRequest()-\>getActionName() === 'save' ) { // hier den Code einfügen der nach dem // Speichern ausgeführt werden soll } }
die ausgeführte Aktion prüfen.
Yep, das ist dass, wonach ich gesucht habe. Ähnliches ist auch in dem Tutorial zu finden: http://wiki.shopware.de/Fortgeschritten-Artikelmodul-Bestelluebersicht_detail_1071.html Wenn man auf den Artikel zugreifen möchte, geht es mit $articleId = $args-\>getRequest()-\>getParam('id');
Gibt es irgendwo eine übersichtliche Auflistung aller Events? Ich habe nur diese hier gefunden: sAdmin-Events sArticles-Events sBasket-Events sOrder-Events Das sind aber nicht alle Events, die man gebrauchen könnte.