Plugin Template überschreiben

Hallo,

ich bin hier am verzweifeln.

Ich benutze Shopware 5.2.14 und möchte eine Template Datei aus dem PayPal Plugin überschreiben: SwagPaymentPaypal/Views/responsive/frontend/payment_paypal/cancel.tpl

Wo in meinem Theme Ordner muss ich die Datei anlegen? Ich habe schon gefühlte hundert Kombinationen durch, nichts funktioniert. Kann mir hier jemand helfen?

Hallo @michanismus‍,

was du suchst ist die Property “$injectBeforePlugins” in der Theme.php. Hier die entsprechende Dokumentation für die Eigenschaft.

https://developers.shopware.com/designers-guide/smarty/#inheritance-and-plugin-templates

Viele Grüße,
Stephan Pohl

Hallo [@Stephan Pohl](http://forum.shopware.com/profile/2/Stephan Pohl „Stephan Pohl“)‍,

wenn ich mein Theme nach den Plugins lade, dann funktionieren die meisten besagten Plugins nicht mehr. Diese Variante ist also keine Option für mich.

Gibt es keine andere Möglichkeit die Templates der Plugins zu überladen? Wird nicht geprüft ob die Datei für „… payment_paypal/cancel.tpl“ auch unter dem aktivierten Theme zu finden ist und falls ja priorisiert?

So kann ich nur die Template Dateien direkt im Plugin Ordner anpassen, „Shopware Update“ freundlich ist das allerdings nicht… :confused:

Viele Grüße

@michanismus schrieb:

Gibt es keine andere Möglichkeit die Templates der Plugins zu überladen? Wird nicht geprüft ob die Datei für „… payment_paypal/cancel.tpl“ auch unter dem aktivierten Theme zu finden ist und falls ja priorisiert?

Genau das tut die Einstellung die Stephan geschrieben hat. Es wird geprüft ob dein Theme die entsprechende Datei enthält und wenn ja wird die verwendet. Wenn du dann in deinem Theme die gleichen Blöcke überschreibst wie Plugins musst du das ggf. für jedes Plugin einzeln anpassen.

Entweder haben die Plugins das letzte Wort oder dein Theme. Was davon zutrifft kannst du über $injectBeforePlugins in der Theme.php steuern. Ein Mischmasch aus beiden ergibt keinen Sinn.

Aber an welcher Stelle schreibe ich denn nun das überladene Template für besagtes Plugin? Also, wie muss die Struktur im Theme sein (Dateiname und Verzeichnis) für meine Bespieldatei!? Niemand kann es mir sagen…

Ich klinke mich hier einmal ein. Auch bei mir wäre ich interessiert am korrekten Pfad in meinem Theme, wenn ich von einem Plugin ein Template überschreiben will.

Plugin-Directory mit Template (neue Struktur ab Shopware 5.2., verwendet wird übrigens 5.2.27)

SHOP/custom/plugins/KibVariantListing/Resources/views/kib/frontend/plugins/kib_variant_listing/listing/product-box/box-basic.tpl

In meinem von responsive abgeleiteten Theme:

themes/Frontend/SHOP/frontend/KibVariantListing/box-basic.tpl

Das scheint jedoch in meinem Theme nicht zu funktionieren. Ebenso wenn ich in der Theme.php folgendes ergänze. Freue mich über Lösungsvorschläge.

protected $injectBeforePlugins = false;

Edit:

Nach Rücksprache mit dem Pluginhersteller (Danke noch mal an dieser Stelle) hier der Pfad der zu überschreibenden Templatedatei:

SHOP/themes/Frontend/SHOPTHEME/frontend/plugins/kib_variant_listing/listing/product-box/box-basic.tpl

Der zugehörige extends Code lautet:

{extends file="parent:frontend/plugins/kib_variant_listing/listing/product-box/box-basic.tpl

Wird nicht in der Theme.php benötigt:

protected $injectBeforePlugins = false;