mit before Hook Funktion nicht weiter ausführen?

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.

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

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

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

[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 beschrieben ist. Vielen Dank.