Nach Änderungen an Einkaufswelten funktioniert das Plugin „Einkaufswelten Advanced“ nicht mehr

Hallo,

kann mir jemand helfen? Für eine Anpassung der Einkaufswelten habe ich die Template-Datei Bare/widgets/emotion/index.tpl in die Ordnerstruktur meines Themes übernommen (MyTheme/widgets/emotion/index.tpl). Nun funktioniert das Plugin „Einkaufswelten Advanced“ nicht mehr (was gemäß der Reihenfolge, in der Shopware 5 die Dateien kompiliert, meinem Verständnis nach auch ein zu erwartendes Verhalten ist).

Kann ich eventuell die Funktionalität des Plugins „Einkaufswelten Advanced“ wiederherstellen, indem ich das Plugin oder Teile davon in meinen Theme-Ordner übernehme? Und falls ja, welche Teile müssen in welche Ordner?

Ich freue mich über jede Hilfe.

Hallo,

welche Shopware & Plugin Version verwendest Du? Seit der 5.2 hat sich hier nämlich einiges verändert. Vor der 5.2 hat das Plugin die komplette Template Datei aus dem Theme überschrieben. Wenn Du also selbst die Datei überschreibst, musst Du die Anpassungen aus dem Plugin in Deinem Theme neu implementieren.

Ab der 5.2 und der entsprechenden Version des Plugins ist dies noch etwas besser gelöst. Das Plugin greift hier über das Vererbungssystem und neue Smarty Blöcke in das Template ein. Anpassungen am Plugin sind daher auch deutlich einfacher.

Sonnige Grüße,
Phil

Hey, hallo Phil!

Vielen Dank für die schnelle Rückmeldung! Ich habe Shopware 5.2.1 und Einkaufswelten Advanced 1.1.1 installiert.

Anpassungen am Plugin selbst muss ich im Moment nicht vornehmen. Ich habe den Einkaufswelten über ein Freitextfeld ein Attribut gegeben, das ich nutzen möchte, um ihnen individuelle CSS-Klassen zuzuweisen (für Hintergrundfarbe u.Ä.). Nun ist es mir bisher nur gelungen, dieses Attribut im Block name=“widgets/emotion/index/emotion” aufzurufen, der sich innerhalb einer foreach-Schleife im Template „/Bare/widgets/emotion/index.tpl“ befindet. Wenn ich diese index.tpl in meinen Theme-Ordner kopiere, scheinen die Komponenten aus „/engine/Shopware/Plugins/Community/Frontend/SwagEmotionAdvanced“ nicht mehr zu greifen.

Brauchst du noch weitere Informationen, um dir ein Bild zu machen? Für jeden Hinweis bin ich sehr dankbar.

Herzliche Grüße

Karsten

Hallo,

arbeitest Du denn über das Vererbungssystem mit {extends file=""}?
Welche Einstellung in der Theme.php Deines Themes hast Du für  $injectBeforePlugins gewählt?

Wenn es Dir nur um Styling etc. geht, könntest Du es z.B. auch über einen Wrapper-Container um die einzelne Einkaufswelt lösen. So bleibt der eigentliche Inhalt der Einkaufswelt unverändert.
 

{extends file="parent:widgets/emotion/index.tpl"}

{block name="widgets/emotion/index/emotion"}
  
    {$smarty.block.parent}
  
{/block}

Sonnige Grüße,
Phil

Hey Phil,

das sind prima Ideen. Mit {extends file=""} hab ich es erfolglos probiert. Ich werde es mit

protected $injectBeforePlugins = true;

im Theme.php versuchen und auch die Idee mit dem Wrapper klingt erfolgversprechend. 

Deine Hinweise bringen mich der Lösung bestimmt  näher. Ich geb noch einmal Rückmeldung.

Viele Grüße

Karsten

Also, sowohl der Weg über das Laden des Themes vor den Plugins mit $injectBeforePlugins = true als auch   Einfügen eines Wrappers um  {$smarty.block.parent} sind zielführend. Da wir auch an dem Plugin „Erweitertes Menü“ Änderungen vorgenommen haben, die überschrieben werden, wenn man die Plugins nach dem Theme lädt, verwende ich jetzt die zweite Option:

{extends file="parent:widgets/emotion/index.tpl"}

{block name="widgets/emotion/index/emotion"}
  
    {$smarty.block.parent}
  
{/block}

Vielen Dank für die Hilfe