Hallo zusammen,
ich arbeite mich gerade in Shopware ein und versuche seit gestern verzweifelt, Plugins zum Laufen zu bringen. Genauer gesagt: Plugins, bei denen Templates erweitert werden. Ich habe schnell gemerkt, dass die Plugins an sich funktionieren und ich mich an Events dranhängen kann, nur sobald Templates erweitert werden sollten, ist einfach nichts passiert (keine Fehlermeldung, aber eben auch keine Template-Änderung).
Ich konnte den Fehler nun so weit zurückverfolgen, dass es an der Reihenfolge der Directories liegt, die in der Smarty-Variable template_dir liegen. Wenn ich das richtig verstanden habe, wird dieses Array von vorne durchlaufen und sobald ein Template-Match in einem entsprechenden Verzeichnis gefunden wurde, wird das Template verwendet. Heißt für mich: wenn ich ein Template erweitern möchte, muss mein Plugin-View-Verzeichnis VOR den regulären (Responsive/Bare)-View-Verzeichnissen in template_dir liegen.
Das ist aber nicht der Fall. Wenn ich ein Verzeichnis über
$view->addTemplateDir(
__DIR__. 'Views'
);
hinzufüge, wird es an letzter Stelle in template_dir abgelegt. Wenn ich händisch eingreife und die Position z.B. mit array_reverse tausche, sodass mein Plugin-Verzeichnis vorne liegt, funktioniert es! Aber es wird eben hinten angefügt. Und nicht nur bei den von mir erstellten Plugins, sondern bei allen Plugins, also auch den offiziellen von Shopware und weiteren Drittanbieter-Plugins.
Woran kann das liegen? Ich entwickel auf Windows 10 mit Zend Server CE, PHP 5.6.4 und MySQL Server 5.5. Shopware Version 5.1.6, wobei ich auch 5.1.0 und 5.2.6 ausprobiert habe und auch hier tritt der Fehler auf. Ich habe schon gelesen, dass Windows und Shopware sich nicht so vertragen. Meine Kollegen arbeiten jedoch mit der gleichen Entwicklungsumgebung und bei ihnen funktioniert alles reibungslos, ich bezweifle also, dass es daran liegt.
Hoffe, jemand kann mir weiterhelfen.
Viele Grüße
Malte