ESI Controller

Hallo,

ich habe einen ESI Controller, den ich im frontend mit einem “on action tag” aufrufen lasse:

{action controller=my_controller action=index}

Das ganze funktioniert auf der Arikel Detailseite ohne Probleme (frontend/detail/data.tpl)

Jetzt wollte ich das gleiche auf der Listing Seite (frontend/listing/product-box/product-price.tpl) machen, jedoch kann da der Controller angeblich nicht gefunden werden:

Uncaught exception 'Enlight_Controller_Exception' with message 'Controller "my_controller" not found'

Hat jemand eine Idee warum das an dieser Stelle nicht funktioniert?

VG

Wie registrierst Du denn den ESI/Widget Controller? 

Ohne Quellcode Beispiele wird es schwierig die Ursache zu finden :wink:

Bezogen auf die Angaben hier (https://developers.shopware.com/developers-guide/plugin-system/#controller-auto-registration) braucht man das ja nicht, oder sehe ich das falsch? An der anderen Stelle und auch wenn ich per Hand die URL des Controllers aufrufe funktioniert es ja…

Versuche den Controller mal in einem anderen Block einzubinden als den price Block.

 

 

Das Problem scheint der HTTP Cache zu sein, wenn ich den ausschalte, funktioniert es…

Hast Du, wie beschrieben, den Controller außerhalb eines prices blockes mal eingebunden? Der HTTP-Cache setzt da imo NoCache Flags bei den Preisen. Ggf. haben diese damit etwas zu tun.

Hab ich auch schon getestet, klappt auch nicht

Dann poste mal bitte ein minimal Beispiel deines Plugins - dann schaue ich mir das gerne an.

Hier der Frontend Controller (custom/plugins/MyController/Controllers/Frontend/MyController.php)

Front()->Plugins()->ViewRenderer()->setNoRender(true);

        if ((empty(Shopware()->Session()->sUserGroup))||(Shopware()->Session()->sUserGroup == "EK"))
        {
	        if (Shopware()->Shop()->getId() == 1)
	        	echo "1";
	        else
	        	echo "2";
	    }
    }
}
?>

Eingebunden habe ich ihn im Template über den Tag

{action controller=my_controller action=index}

Was ja auf der Detail-Seite auch ohne Probleme funktioniert.

Versuche mal das hier:

Shopware_Controllers_Frontend_MyController 

durch dies:

Shopware_Controllers_Widget_MyController

zu ersetzen. Bitte auch die notwendigen Verzeichnisse anpassen.

Fast richtig, es muss Widgets sein, aber dann funktioniert das ganze endlich :slight_smile:
 

tausend Dank!