Das Problem geschieht schon etwas früher. Du registrierst das Template-Verzeichnis wahrscheinlich im PostDispatchSecure_ Frontend Event. Jetzt kann es aber passieren, dass dein Template bei einem Request auf das Widgets Modul eingebunden wird. Dann ist dein Template Verzeichnis aber nicht registriert => Fehler.
Lösung:
A) Du registrierst dein Template-Verzeichnis bei jedem möglichen Modul, wo es aufgerufen werden könnte (PostDispatch_Backend, PostDispatch_Widgets, …)
B ) Du lässt einfach das _Frontend weg. Damit bist du auf der sicheren Seite. Aber Achtung! Dann am besten im Event-Listener nur das Template-Verzeichnis registrieren und keine Manipulation an den TPL-Variablen o.ä. durchführen. Sonst passiert das evtl. an ungewünschten Bereichen.
Kannst du mal nicht so sparsam sein mit dem Code? :D
Wo rufst du denn das $this->subscribeEvent auf? In der install-Methode des Plugins? Hast du es mal neuinstalliert? Kannst du mal prüfen, ob das Event auch ganz sicher auch getriggert wird? (Dazu am besten zwei verschiedene Funktionen je Event erstellen und prüfen, ob wirklich beide auch aufgerufen werden)
Kannst du mal nicht so sparsam sein mit dem Code?
Wo rufst du denn das $this->subscribeEvent auf? In der install-Methode des Plugins? Hast du es mal neuinstalliert? Kannst du mal prüfen, ob das Event auch ganz sicher auch getriggert wird? (Dazu am besten zwei verschiedene Funktionen je Event erstellen und prüfen, ob wirklich beide auch aufgerufen werden)
Viele Grüße
Die Neuinstallation war es. Merkwürdig, dass hatte ich noch nie. Danke Dir.
Die Neuinstallation war es. Merkwürdig, dass hatte ich noch nie. Danke Dir.
Plugins nach der alten Struktur müssen bei einer Event Änderung immer neuinstalliert werden, weil die in die Datenbank eingetragen werden. In der Update Methode geht das nur bescheiden, weil das von Shopware danch wieder geändert wird (siehe Forums-Thread).
Plugins nach der neuen Struktur (5.2) müssen nicht neuinstalliert werden, weil das da Shopware jedes mal direkt aus dem Plugin ausliest, welche Events es hat.