Nicht zugewiesenes Theme verändert Storefront - Theme pro Saleschannel

Szenario 1: Installiere und aktiviere ich ein Theme und weise es keinem Sales Channel zu, greifen bereits die Anpassungen der twig-Dateien.

Szenario 2: Weise ich Sales Channel 1 das Standard Theme zu und Sales Channel 2 ein bearbeitetes Theme, kommt es vor, dass die Anpsasungen aus dem bearbeiteten Theme beide Sales Channel verändern.

Der Pfad der Twig-Dateien: src/Resources/views/storefront/

 

Wie soll das getrennt werden?

 

Hallo mdsw, Hallo community,

ich stehe aktuell vor demselben Problem, habe ein Theme erstellt und es einem Sales Channel zugewiesen, jedoch greifen die Änderungen (ovverides der twig files)  auf alle Sales Channels. Konntest du eine Lösung finden?  Hat jemand bereits eine Lösung / Doku-Hinweis oder Workaround dafür? 

Merci im Voraus

 

Hallo @seriewe‍

Nein, habe bisher keine Lösung dazu gefunden. Undecided

Dazu kann im Grunde nur Shopware was sagen. Ich konnte nicht feststellen, einen Fehler gemacht zu haben.

 

Option 1: Im Shopware Core werden die Templates eines nicht zugewiesenes Themes ignoriert.

Option 2: Alle Theme-Hersteller müssen in der Plugin-Config ein Aktive setzen, welches bei jedem Block-Aufruf in den Templates erst geprüft wird - bevor die Änderungen des Themes greifen.

Klingt mir stark nach einem Bug. Hast du dazu bereits ein Ticket aufgemacht?

Sonst mach das mal bitte: issues.shopware.com

Häng doch einfach deine beiden Themes mit an zum testen, dann wirds noch einfacher nachzustellen.

Hallo zusammen,

in der theme.json gibt es das array “views” das die Vererbung bzw. wie die nach den twig files gesucht wird angibt.

Hier beschrieben: Theme template inheritance: https://docs.shopware.com/en/shopware-platform-dev-en/internals/plugins/plugin-themes 

Denke das, wenn man ein zweites Theme erstellt und bei diesem den “@Plugins”  Eintrag entfernt, das nur noch twig Files aus dem jeweiligen Plugin und den Storefront geladen werden. 

 "views": [
     "@Storefront",
der sollte raus => "@Plugins",
     "@DigaShopTheme"
  ]

Sobald ich das Verhalten getestet habe, werde ich berichten.

@seriewe schrieb:

Hallo zusammen,

in der theme.json gibt es das array „views“ das die Vererbung bzw. wie die nach den twig files gesucht wird angibt.

Hier beschrieben: Theme template inheritance: https://docs.shopware.com/en/shopware-platform-dev-en/internals/plugins/plugin-themes 

Denke das, wenn man ein zweites Theme erstellt und bei diesem den „@Plugins“  Eintrag entfernt, das nur noch twig Files aus dem jeweiligen Plugin und den Storefront geladen werden. 

„views“: [
@Storefront“,
der sollte raus => „@Plugins“,
@DigaShopTheme
]

Sobald ich das Verhalten getestet habe, werde ich berichten.

Hallo @seriewe‍,

habs versucht, aber bei mir gehts nicht.

[@Moritz Naczenski](http://forum.shopware.com/profile/14574/Moritz Naczenski „Moritz Naczenski“)‍

Wenn ich das richtig verstehe, werden in der Template-Vererbung Themes als gewöhnliche Plugins interpretiert - was eigentlich nicht sein dürfte. Deshalb müsste man einen Platzhalter für @Themes einbauen, welches Plugins un Themes strikt voneinander trennt.

Bzw die Template-Vererbung sollte im Storefront erst gar nicht ein Theme beachten - welches nicht zugewiesen ist - außer es ist in der Vererbung explizit erwünscht.

@Moorleiche schrieb:

[@Moritz Naczenski](http://forum.shopware.com/profile/14574/Moritz Naczenski „Moritz Naczenski“)‍

Wenn ich das richtig verstehe, werden in der Template-Vererbung Themes als gewöhnliche Plugins interpretiert - was eigentlich nicht sein dürfte. Deshalb müsste man einen Platzhalter für @Themes einbauen, welches Plugins un Themes strikt voneinander trennt.

Bzw die Template-Vererbung sollte im Storefront erst gar nicht ein Theme beachten - welches nicht zugewiesen ist - außer es ist in der Vererbung explizit erwünscht.

Das ist aber aktuell so. 

Plugins greifen immer, Themes nur das zugewiesene. Das hat Tobi hier auch schon einmal recht gut beschrieben: https://forum.shopware.com/discussion/comment/265645/#Comment_265645

Wenn das Theme dennoch immer greift, fehlt wahrscheinlich irgendwas und daher wir des als „plugin“ interpretiert.  

Ich habe genau das selbe Problem. Es sollte doch möglich sein, Templates pro Theme und Storefront zu überschreiben oder?

Ich versuche in 2 Themes jeweils das Footer-Template zu überschreiben.

Wenn ich Storefront 1 öffne, wird das Template aus Theme1 verwendet. Wenn ich dass Storefront2 öffne, wird ebenfalls das Template aus Theme1 verwendet.

Wenn ich den Cache leere und zurest Storefront2 öffne, dann ist es genau umgekehrt. Ist das ein Caching-Bug?

Wenn man das Twig-Caching deaktiviert, dann werden die richtigen Templates geladen:

https://issues.shopware.com/issues/NEXT-7269

1 „Gefällt mir“