Ich möchte gerne das Event “Shopware_Modules_Articles_sGetArticlesByCategory_FilterSql” nutzen, um das SQL dahinter zu manipulieren. Nur wie komme ich überhaupt an das SQL ran? In sArticles.php wird das Event mit $sql = Enlight()-\>Events()-\>filter('Shopware\_Modules\_Articles\_sGetArticlesByCategory\_FilterSql', $sql, array('subject'=\>$this,'id'=\>$this-\>sSYSTEM-\>\_GET['sCategory']));
geworfen und erwartet das manipulierte SQL zurück. In meiner Bootstrap.php habe ich das Event wie folgt registriert. $event = $this-\>createEvent( 'Shopware\_Modules\_Articles\_sGetArticlesByCategory\_FilterSql', 'onCategoryFilterSql' ); $this-\>subscribeEvent($event);
Wie komme ich jetzt in der function ans SQL? Mit $sql = $args["Shopware\_Modules\_Articles\_sGetArticlesByCategory\_FilterSql"];
funktioniert es schon mal nicht.
etwa so: $sql = $args-\>getReturn();
Die geänderte Abfrage muss einfach zurück gegeben werden: return $sql;
1 „Gefällt mir“
Danke, funktioniert. PS: Wer denkt sich bitte so was aus? Da kommt doch niemand drauf. Ist das irgendwo dokumentiert?