# Welches Event für meinen Anwendungszweck?

**URL:** <https://forum.shopware.com/t/welches-event-fur-meinen-anwendungszweck/872>\
**Category:** Shopware 3.5\
**Tags:** programming\
**Created:** [29. November 2010 um 18:37 UTC](https://forum.shopware.com/t/welches-event-fur-meinen-anwendungszweck/872 "2010-11-29T18:37:10Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![K\_Storch](https://avatars.discourse-cdn.com/v4/letter/k/7ab992/32.png) [@K\_Storch](https://forum.shopware.com/u/K_Storch)\
**Post date:** [29. November 2010 um 18:37 UTC](https://forum.shopware.com/t/welches-event-fur-meinen-anwendungszweck/872/1 "2010-11-29T18:37:10Z")

</div>

Hallo zusammen, ich suche das richtige Event, um per GET-Parameter den Subshop zu ändern. Mein momentanes Plugin funktioniert zwar schon tadellos, indem es in einem Event-Listener per Shopware()-\>Shop()-\>setShop($shopID) die entsprechende Einstellung trifft. Das Problem ist nur, dass bei Verwendung von z. B. Enlight\_Controller\_Action\_PreDispatch die Kategorie-Pfade nicht mehr adäquat aufgelöst werden können. Ziel der Übung ist es, das [http://shop.de/englishCategory/?L=en](http://shop.de/englishCategory/?L=en) bzw. [http://shop.de/deutscheKategorie/?L=de](http://shop.de/deutscheKategorie/?L=de) nicht erst nach einem reload die korrekten Ergebnisse liefern. Was mir fehlt, ist eine Dokumentation der Auslöse-Zeitpunkte der verschiedenen Events. Momentan kann ich nur raten, wann und ob welches Event ausgelöst wird. Die unten stehende Liste an Events gibt es wohl - aber eben unkommentiert. Ich bräuchte ein Event, bei zwar die Modulkonfigurationen (z. B . Shopware()-\>Plugins()-\>Frontend()-\>ShopChooser()-\>Config()) schon auszulesen sind, aber die Änderung des Subshops noch Auswirkungen auf das Listing hat. Kann mir da jemand weiterhelfen? Shopware()-\>Events()-\>getEvents() array(32) { [0]=\> string(36) „Enlight\_Bootstrap\_InitResource\_Adodb“ [1]=\> string(34) „Enlight\_Bootstrap\_InitResource\_Api“ [2]=\> string(35) „Enlight\_Bootstrap\_InitResource\_Auth“ [3]=\> string(35) „Enlight\_Bootstrap\_InitResource\_Cron“ [4]=\> string(38) „Enlight\_Bootstrap\_InitResource\_License“ [5]=\> string(35) „Enlight\_Bootstrap\_InitResource\_Menu“ [6]=\> string(38) „Enlight\_Bootstrap\_InitResource\_Modules“ [7]=\> string(35) „Enlight\_Bootstrap\_InitResource\_Shop“ [8]=\> string(37) „Enlight\_Bootstrap\_InitResource\_System“ [9]=\> string(39) „Enlight\_Bootstrap\_InitResource\_Template“ [10]=\> string(38) „Enlight\_Controller\_Action\_PostDispatch“ [11]=\> string(37) „Enlight\_Controller\_Action\_PreDispatch“ [12]=\> string(57) „Enlight\_Controller\_Dispatcher\_ControllerPath\_Backend\_Cron“ [13]=\> string(42) „Enlight\_Controller\_Front\_AfterSendResponse“ [14]=\> string(45) „Enlight\_Controller\_Front\_DispatchLoopShutdown“ [15]=\> string(36) „Enlight\_Controller\_Front\_PreDispatch“ [16]=\> string(38) „Enlight\_Controller\_Front\_RouteShutdown“ [17]=\> string(37) „Enlight\_Controller\_Front\_RouteStartup“ [18]=\> string(38) „Enlight\_Controller\_Front\_StartDispatch“ [19]=\> string(34) „Enlight\_Controller\_Router\_Assemble“ [20]=\> string(46) „Enlight\_Controller\_Router\_FilterAssembleParams“ [21]=\> string(35) „Enlight\_Controller\_Router\_FilterUrl“ [22]=\> string(41) „Enlight\_Plugins\_ViewRenderer\_FilterRender“ [23]=\> string(31) „Shopware\_CronJob\_ArticleComment“ [24]=\> string(29) „Shopware\_CronJob\_ArticleStock“ [25]=\> string(25) „Shopware\_CronJob\_Birthday“ [26]=\> string(37) „Enlight\_Controller\_Front\_PostDispatch“ [27]=\> string(44) „Enlight\_Controller\_Front\_DispatchLoopStartup“ [28]=\> string(30) „Enlight\_Controller\_Action\_Init“ [29]=\> string(37) „Enlight\_Controller\_Front\_SendResponse“ [30]=\> string(40) „Enlight\_Bootstrap\_InitResource\_SessionID“//keine Rkt [31]=\> string(31) „Enlight\_Controller\_Router\_Route“ }

---

<div class="post-metadata">

**Author:** ![Stefan\_Hamann](https://avatars.discourse-cdn.com/v4/letter/s/5e9695/32.png) [@Stefan\_Hamann](https://forum.shopware.com/u/Stefan_Hamann)\
**Post date:** [30. November 2010 um 07:03 UTC](https://forum.shopware.com/t/welches-event-fur-meinen-anwendungszweck/872/2 "2010-11-30T07:03:47Z")

</div>

Moin, das modifizieren des Shops musst du eigentlich wie folgt durchführen: ` $shop = Shopware()-\>Shop(); $shop-\>setShop($ID); $shop-\>registerResources(Shopware()-\>Bootstrap()); ` Dann müsste es passen, bzw. was funktioniert denn konkret aktuell nicht? Schreibt er die falschen URLs in das Frontend? Ansonsten wird es in den nächsten Tagen eine komplette Event-Dokumentation geben…

---

<div class="post-metadata">

**Author:** ![Stefan\_Hamann](https://avatars.discourse-cdn.com/v4/letter/s/5e9695/32.png) [@Stefan\_Hamann](https://forum.shopware.com/u/Stefan_Hamann)\
**Post date:** [30. November 2010 um 07:09 UTC](https://forum.shopware.com/t/welches-event-fur-meinen-anwendungszweck/872/3 "2010-11-30T07:09:32Z")

</div>

Und du solltest einen Event nehmen, der vor dem Routing ausgeführt wird - also z.B. Enlight\_Controller\_Front\_RouteStartup

---

<div class="post-metadata">

**Author:** ![avenger](https://avatars.discourse-cdn.com/v4/letter/a/9de0a6/32.png) [@avenger](https://forum.shopware.com/u/avenger)\
**Post date:** [30. November 2010 um 09:06 UTC](https://forum.shopware.com/t/welches-event-fur-meinen-anwendungszweck/872/4 "2010-11-30T09:06:56Z")

</div>

[quote=“Stefan Hamann”]Und du solltest einen Event nehmen, der vor dem Routing ausgeführt wird - also z.B. Enlight\_Controller\_Front\_RouteStartup[/quote] Das ist genau der Punkt wo ich noch etwas schwimme… Es wäre sicher hilfreich, wenn der Event-Ablauf beim Aufruf des Shops etwas beschrieben würde: In welcher Reihenfolge geschehen welche Events? Welche Events sind wofür verantwortlich? usw.

---

<div class="post-metadata">

**Author:** ![Heiner\_Lohaus](https://avatars.discourse-cdn.com/v4/letter/h/b5a626/32.png) [@Heiner\_Lohaus](https://forum.shopware.com/u/Heiner_Lohaus)\
**Post date:** [30. November 2010 um 11:35 UTC](https://forum.shopware.com/t/welches-event-fur-meinen-anwendungszweck/872/5 "2010-11-30T11:35:13Z")

</div>

Hi, eine kleine Liste von Events hatte ich hier schon gepostet: [viewtopic.php?f=41&t=669&p=3613&hilit=events#p3613](http://www.shopware-community.de/viewtopic.php?f=41&t=669&p=3613&hilit=events#p3613) Ein Wiki-Artikel dazu wird aber sicher noch kommen. Viele Grüße Heiner

---

<div class="post-metadata">

**Author:** ![K\_Storch](https://avatars.discourse-cdn.com/v4/letter/k/7ab992/32.png) [@K\_Storch](https://forum.shopware.com/u/K_Storch)\
**Post date:** [30. November 2010 um 15:27 UTC](https://forum.shopware.com/t/welches-event-fur-meinen-anwendungszweck/872/6 "2010-11-30T15:27:39Z")

</div>

Vielen Dank für die Antworten, ich habe es nun mit Enlight\_Controller\_Front\_RouteStartup versucht. Das resultiert allerdings in ‘Method “Shopware::Shop” not found failure’ - wohl weil beim Aufruf von Shopware()-\>Shop() das Shop-Model noch nicht initialisiert ist - gibt es denn dann überhaupt ein Event, dass zwar nach der Initialisierung des Shop-Modells aber vor dem Routing verwendet wird?

---

<div class="post-metadata">

**Author:** ![Heiner\_Lohaus](https://avatars.discourse-cdn.com/v4/letter/h/b5a626/32.png) [@Heiner\_Lohaus](https://forum.shopware.com/u/Heiner_Lohaus)\
**Post date:** [30. November 2010 um 18:31 UTC](https://forum.shopware.com/t/welches-event-fur-meinen-anwendungszweck/872/7 "2010-11-30T18:31:16Z")

</div>

Hi, ein solches Event gibt es nicht. Das System muss ja erst wissen wo es hingeht, bevor es was ausführen kann. Das sollte aber nicht das Problem sein. Der Shop kann ja auch nach dem Routing geändert werden. In Shopware findet z.B. der Shop-Wechsel so statt: ` $event = $this-\>createEvent( 'Enlight\_Controller\_Front\_PreDispatch', 'onPreDispatch', -50 ); public static function onPreDispatch(Enlight\_Event\_EventArgs $args) { $request = $args-\>getSubject()-\>Request(); if($request-\>getModuleName()&&$request-\>getModuleName()!='frontend'){ return; } $response = $args-\>getSubject()-\>Response(); if($response-\>isException()) { return; } $shop = Shopware()-\>Shop(); if($request-\>getPost('sLanguage')!==null) { $shop-\>setShop($request-\>getPost('sLanguage')); $shop-\>setHost($request-\>getHttpHost()); } } ` Viele Grüße Heiner
