Hallo zusammen. Ich hoffe von euch kann mir jemand helfen. Ich würde gerne eine Controller-Action überschreiben und habe dazu ein neues Plugin angelegt und im Backend aktiviert. Leider wird weder die Install-Action noch die neu erstellte Methode aufgerufen. [code]<?php class Shopware_Plugins_Frontend_xxxHook_Bootstrap extends Shopware_Components_Plugin_Bootstrap{
public function install(){
echo 'INSTALL';
$this->subscribeEvent( 'Shopware\_Controllers\_Widgets\_Emotion::getCategoryTeaser::after', 'doSomething', 0 ); return true; } function doSomething(Enlight\_Hook\_HookArgs $args){ print\_r($args); } } ?\>[/code] Weiß jemand von euch, woran das liegen könnte? Grüße, S.
Hallo mac, wie ich sehe probierst du im Emotion Widget Controller die Funktion getCategoryTeaser zu hooken. Diese Funktion ist als private deklariert. Hooks können jedoch nur auf protected und public Funktionen gesetzt werden. Um zu kontrollieren ob deine Install() Funktion ausgeführt wird kannst du einfach prüfen ob der entsprechende Hook oder Event in der s_core_subscribes angelegt wird. Hoffentlich konnte ich dir damit weiter helfen. Mit freundlichen Grüßen Oliver Denter
Hallo Oliver, der Hook wird in der Datenbank erfolgreich eingetragen. Kann ja gerne mal kurz erzählen, was ich vorhabe: Ich möchte gerne im Widget wissen, wie viele Artikel sich in der jeweiligen Kategorie befinden, um dann diese Info entsprechend in diesem Widget darzustellen. Wie würde man dies denn in diesem Fall am besten lösen, wenn man die private Funktion nicht hooken kann? Konnte leider auch im gesamten Code sonst keinen Aufruf der Funktion “getCategoryTeaser” finden. Grüße, S.