Erweiterung von Pluginfunktion - Business Essentials

Guten Tag,

ich stehe aktuell vor dem Problem, dass ich gerne die Pluginfunktion von Business Essentials erweitern würde. Gibt es die Möglichkeit diese über Hook´s ähnlich wie bei den Shopware Controllern anzusprechen?

Konkret geht es um eine Funktion, welche sich per Subscribe auf das PreDispatch_Frontend legt:

SwagBusinessEssentials/Subscriber/FrontendDispatch.php

Hier findet ein Event subscribe auf folgendes statt:

‘Enlight_Controller_Action_PreDispatch_Frontend’ => ‘checkShopAccess’

Die Funktion checkShopAccess würde ich gern in meinen eigenen Plugin überschreiben / erweitern. (Replace oder Before würde gehen)

Kennt jemand eine Möglichkeit wie man das handhaben könnte?

Problem hierbei ist, dass ich mich nicht einfach danach auf ‘Enlight_Controller_Action_PreDispatch_Frontend’ eine Funktion legen kann, da in der oben beschriebenen Funktion ein Redirect stattfindet.

Mit freundlilchen Grüßen

 

Redirects lassen sich unterbinden. Du kannst dich schon auf Enlight_Controller_Action_PreDispatch_Frontend registieren. Musst halt gucken, dass er nach dem Listener des BusinessEssentials ausgeführt wird. Das geht über die “position” Angabe. Events gibts im Essential Plugmin meines Wissens nicht. Aber du kannst ja selber mal in den Quellcode gucken ob in der checkShopAccess Methode Events gefeuert werden.

Wenn mich nicht alles täuscht, läuft der Dispatch aber auch bis zum PostDispatch durch und macht dann erst den Redirect.

So kann man den Rediect unterbinden 

// reset redirect
$ctrl->Response()->setHttpResponseCode(200);
$ctrl->Response()->clearHeader('Location');

 

 

1 „Gefällt mir“

Super danke das probier ich mal. Wusste nicht, dass man diesen noch clearen kann. :slight_smile:

Leider werden keine Events zur Verfügung gestellt soweit ich gesehen hab.