Hallo,
wir würden gerne ein eingesetztes Plugin SwagCustomProducts durch unser Theme überschreiben. Beim Überschreiben von Plugins stößt man ja leider regelmäßig wieder vor einigen Fragen:
- Wie kann ich Plugins in meine Entwicklungsumgebung bekommen um diese durch das Theme zu bearbeiten?
- Welches sind die richtigen Pfade und extends-Befehle?
- Wie vermeide ich, dass es zu Errors kommt, wenn ich includes ändere und das Plugin z.B.: nicht mehr installiert ist?
Zu 1 - Aktuell arbeite ich das lokal aus und lade das Theme immer wieder hoch und prüfe... das ist sehr mühsam...
Zu 2 - Beispiel:
/engine/Shopware/Plugins/Community/Frontend/SwagCustomProducts/Views/frontend/swag_custom_products/detail/index.tpl
soll bearbeitet werden.
Dazu fallen mir folgende Möglichkeiten ein:
- THEMENAME/frontend/detail/index.tpl - {extends file='parent:frontend/detail/index.tpl'} --> geht
- THEMENAME/frontend/swag_custom_products/detail/index.tpl - {extends file='parent:frontend/swag_custom_products/detail/index.tpl'} --> geht nicht
- THEMENAME/frontend/plugins/swag_custom_products/detail/index.tpl - {extends file='parent:frontend/plugins/swag_custom_products/detail/index.tpl'} --> geht nicht
Ich hatte mal gelesen, dass Plugins, welche im Unterordner /frontend/ einen eigenen Plugin-Ordner haben (/swag_custom_products/) auch mit diesem gezielt im Theme angesprochen werden können.
Das führt mich nämlich zu Problem Nr. 3:
Die Änderung, welche ich in der THEMENAME/frontend/detail/index.tpl mache, führt dazu, dass es zu einem Fehler kommt, wenn das Plugin nicht installiert ist. (Ich verschiebe nämlich einen include-Befehl. Gibt es die dahinterliegende Datei nicht, kommt es zu einem PHP-Fehler.) Wäre natürlilch praktisch, wenn der die Bearbeitung des Plugins auch nur das Plugin-File ersetzt und somit auch nur greift, wenn das Plugin installiert ist. Derzeit behelfe ich mir mit einer Variable, welche ich gefunden habe {if $swagCustomProductsTemplate}{/if} um den Include nur auszuführen, wenn das Plugin auch aktiv ist.
Hoffe jemand kennt Antworten auf meine vielen Fragen ;-)