# mit before Hook Funktion nicht weiter ausführen?

**URL:** <https://forum.shopware.com/t/mit-before-hook-funktion-nicht-weiter-ausfuhren/19747>\
**Category:** Shopware 3.5\
**Tags:** programming\
**Created:** [14. April 2014 um 22:52 UTC](https://forum.shopware.com/t/mit-before-hook-funktion-nicht-weiter-ausfuhren/19747 "2014-04-14T22:52:38Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![hbee](https://avatars.discourse-cdn.com/v4/letter/h/f08c70/32.png) [@hbee](https://forum.shopware.com/u/hbee)\
**Post date:** [14. April 2014 um 22:52 UTC](https://forum.shopware.com/t/mit-before-hook-funktion-nicht-weiter-ausfuhren/19747/1 "2014-04-14T22:52:38Z")

</div>

Hallo, ich versuche gerade mit einem before Hook eine Funktion einer Klasse abzubrechen. ` $this-\>subscribeEvent( 'Shopware\_Controllers\_Frontend\_Controller::Funktion::before', 'onFunktion' ); [...] public function onFunktion(Enlight\_Hook\_HookArgs $args) { $controller = $args-\>getSubject(); $content = $args-\>getSubject()-\>View()-\>TEMPLATEVAR; if($content['foo'] == 'bar'){ Shopware()-\>Debuglogger()-\>info('Hello', $args-\>getSubject()-\>View()-\>TEMPLATEVAR); return false; }else{ return true; } } ` Also wenn $content[‚foo‘] == ‚bar‘ soll die gehookte Funktion nicht weiter ausgeführt werden. Wird sie aber trotzdem. Wo ist mein Denkfehler? Vielen Dank.

---

<div class="post-metadata">

**Author:** ![DanielNogel](https://avatars.discourse-cdn.com/v4/letter/d/96bed5/32.png) [@DanielNogel](https://forum.shopware.com/u/DanielNogel)\
**Post date:** [14. April 2014 um 22:55 UTC](https://forum.shopware.com/t/mit-before-hook-funktion-nicht-weiter-ausfuhren/19747/2 "2014-04-14T22:55:35Z")

</div>

Hi, dafür sind before Hooks nicht gedacht, du verwechselst das mit notifyUntil Events. Gibt es so eines vll in der Methode, die du abbrechen willst? lG Daniel //edit: Wenn es um eine Controller-Funktion geht, kannst du aber dieses Event nutzen: Enlight\_Controller\_Action\_Frontend\_Account\_ajaxLogin (entsprechend anpassen) Das ist letztlich ein notifyUntil-Event für eine Controller-Action. Das ist nicht die empfohlene Vorgehensweise - aber wenn du keine andere Möglichkeit findest, vll. eine Überlegung wert. lG Daniel

---

<div class="post-metadata">

**Author:** ![EikeBrandtWarneke](https://avatars.discourse-cdn.com/v4/letter/e/cdc98d/32.png) [@EikeBrandtWarneke](https://forum.shopware.com/u/EikeBrandtWarneke)\
**Post date:** [14. April 2014 um 23:01 UTC](https://forum.shopware.com/t/mit-before-hook-funktion-nicht-weiter-ausfuhren/19747/3 "2014-04-14T23:01:19Z")

</div>

Du könntest höchstens einen replace hook setzen und im gegenteiligen Fall die originale Methode per executeParent() aufrufen. Viele Grüße

---

<div class="post-metadata">

**Author:** ![hbee](https://avatars.discourse-cdn.com/v4/letter/h/f08c70/32.png) [@hbee](https://forum.shopware.com/u/hbee)\
**Post date:** [14. April 2014 um 23:12 UTC](https://forum.shopware.com/t/mit-before-hook-funktion-nicht-weiter-ausfuhren/19747/4 "2014-04-14T23:12:46Z")

</div>

Hi, danke für die schnellen Antworten. Es ist eine Controller Action aber mit Events bin ich da nicht weitergekommen. executeParent werde ich mal versuchen, das ist eine gute Idee, danke erstmal. Gesendet von meinem iPhone mit Tapatalk

---

<div class="post-metadata">

**Author:** ![hbee](https://avatars.discourse-cdn.com/v4/letter/h/f08c70/32.png) [@hbee](https://forum.shopware.com/u/hbee)\
**Post date:** [15. April 2014 um 08:33 UTC](https://forum.shopware.com/t/mit-before-hook-funktion-nicht-weiter-ausfuhren/19747/5 "2014-04-15T08:33:33Z")

</div>

[quote=“Aquatuning GmbH”]Du könntest höchstens einen replace hook setzen und im gegenteiligen Fall die originale Methode per executeParent() aufrufen. [/quote] Perfekt! executeParent() ist genau das was ich gesucht habe und ja auch im [Wiki](http://wiki.shopware.de/Shopware-4-Events-und-Hooks%5C_detail%5C_981.html#ExecuteParent) beschrieben ist. Vielen Dank.
