addTemplateDir in Shopware 5 responsive

Hallo, ich versuche unser altes Shopware 4 emotion-Plugin anzupassen für Shopware 5 responsive. Aber es will einfach nicht. Jetzt hab ich mal das komplette Beispiel-Plugin von hier https://developers.shopware.com/develop … ate-guide/ kopiert und es funktioniert auch nicht. Es erfolgt keine Fehlermeldung, aber leider auch sonst nichts. Bootstrap.php wird angesprochen und ausgeführt, das kann ich noch nachverfolgen. Aber es scheint, dass das Template überhaupt nicht angezogen wird. $controller = $arguments-\>getSubject(); $view = $controller-\>View(); $view-\>addTemplateDir($this-\>Path() . 'Views/common/'); if (Shopware()-\>Shop()-\>getTemplate()-\>getVersion() \>= 3) { $view-\>addTemplateDir($this-\>Path() . 'Views/responsive/'); } else { $view-\>addTemplateDir($this-\>Path() . 'Views/emotion/'); $view-\>extendsTemplate('frontend/meinplugin/detail.tpl'); } Ich weiß, dass das aus der Ferne schwierig nachzuverfolgen ist, aber kann mir hier jemand weiterhelfen? Gerne auch direkt per mail. Suche sowieso jemanden, der mir hin und wieder bei Shopware weiterhilft.

Hallo, ich weiß jetzt, wo das Problem ist, aber nicht wie zu beheben. Es muss an meiner lokalen Installation unter XAMPP liegen. Wenn ich die Dateien auf den Server kopiere, funktioniert es. Was muss in XAMPP eingestellt werden, damit ich auch lokal Plugins für das responsive Design anpassen kann? Wie und wo entwickelt ihr denn?

Shopware läuft nicht rund unter Windows, sondern setzt Linux voraus. Ich persönlich nutze für alle meine Projekte eine virtuelle Maschiene. Hier bspw. ein kurzes Tutorial wie man eine VM aufsetzt für SW: https://developers.shopware.com/develop … -phpstorm/

Hello, I partially agree with kayyy: Shopware does not run smoothly on Windows. But in my personal experience neither does Virtual Machine. My suggestion is to use a little different approach extending templates. I’ve already posted it here. This way plugin will work on Windows as well as Linux.

Danke an kayyy, aber an der Anleitung für Vagrant und phpstorm bin ich gescheitert. Runterladen kann ich noch, aber wo und wie müsste ich die Befehle eingeben? Also thanks to tarkka, This is my trial: $view-\>addTemplateDir($this-\>Path() . 'Views/common/'); if (Shopware()-\>Shop()-\>getTemplate()-\>getVersion() \>= 3) { $controller-\>View()-\>addTemplateDir($this-\>Path() . 'Views/responsive/'); $view-\>extendsTemplate('frontend/plugins/myplugin/item.tpl'); } else { $view-\>addTemplateDir($this-\>Path() . 'Views/emotion/'); $view-\>extendsTemplate('frontend/myplugin/note.tpl'); } I’ve changed the directory structure: Original /Views/responsive/frontend/note/item.tpl Changed /Views/responsive/frontend/plugins/myplugin/item.tpl I have cleared the cache, but nothing has changed. What is wrong?

I think this code should work. One little notice: $controller-\>View()-\>addTemplateDir($this-\>Path() . 'Views/responsive/'); Replace with: $view()-\>addTemplateDir($this-\>Path() . 'Views/responsive/'); I’d suggest you to try something like this: $view-\>addTemplateDir($this-\>Path() . 'Views/common/'); if (Shopware()-\>Shop()-\>getTemplate()-\>getVersion() \>= 3) {     $controller-\>View()-\>addTemplateDir($this-\>Path() . 'Views/responsive/');     $view-\>extendsTemplate('frontend/plugins/myplugin/item.tpl'); die('checking if code is executed here (responsive)'); } else {   $view-\>addTemplateDir($this-\>Path() . 'Views/emotion/');     $view-\>extendsTemplate('frontend/myplugin/note.tpl'); die('checking if code is executed here (emotion)'); } This way you can be sure that the code is executed.

1 Like

Thank you tarkka, with extendsTemplate it works great. But why says the Shopware documentation you don’t have to use extendsTemplate in responsive design? Where is the problem with that?

Und ich suchte wie verrückt nach dem Fehler… Auf die Idee es auf ein anderes System zu spielen bin ich erstmal gar nicht gekommen.
Somit kann ich es nur nochmal bestätigen: Es läuft nicht problemlos unter XAMPP.

Es liegt wohl tatsächlich an den Pfaden, welche übergeben werden - Schade.