Von Plugin ableiten

Hallo zusammen,

ich will in einem Plugin eine kleine Anpassung am Template vornehmen. Bei einem Theme leitet man ja ein Child-Theme ab, macht die Änderungen dann in diesem und wählt dieses dann auch als aktives Theme.

Wie funktioniert das Ganze bei einem Plugin? Gibt es dazu eine ausführliche Anleitung?

Anstatt @Storefront den Namen (Order auf Server) des Plugins, bspw. @TollesPlugin

Dann kommt es noch auf die Reihenfolge an, ob erst Theme und dann Plugins geladen werden. Im Standard ist das so. Theoretisch kann man die Reihenfolge aber ändern. Darauf muss man auch achten.

Kannst du das noch etwas genauer ausführen?

Nehmen wir an ich habe folgende Verzeichnisstruktur:
TollesPlugin/src/Resources/views/storefront/index.twig

Ich möchte jetzt in der index.twig einen Templateblock löschen. Ist es richtig, dass ich jetzt im Plugin-Verzeichnis einen neuen Ordner mit der Original Struktur zur index.twig anlege, sprich:
ChildVonTollesPlugin/src/Resources/views/storefront/index.twig
und in dieser Datei mit {% sw_extends ‚@TollesPlugin/src/Resources/views/storefront/index.twig‘ %} ableite?

Im nächsten Schritt würde ich den Code aus der Original-Datei hineinkopieren und nur den Templateblock weglassen. Ist das richtig, um mein Vorhaben umzusetzen?

Muss man dieses „Child-Plugin“ dann auch im Nachgang aktivieren statt des Eltern-Plugins so wie es bei Themes der Fall ist?

Wirklich löschen kann man nur, wenn man nicht erweitert, sondern überschreibt. Sprich sw_extends müsste zu Beginn weggelassen werden.

Du möchtest aber sicherlich nur einen Block überschreiben. Dafür kopierst du den Block

{% block block_name %}
und ersetzt oder lässt den Inhalt leer
{% endblock %}

Dein extend Pfad oben sieht auf den ersten Blich nicht korrekt aus. Du musst lediglich das @Storefront ersetzen und dann mit storefront weiter machen, wie im Original auch.

Schau dir vielleicht noch einmal die Anleitung an: Customize templates - Shopware Developer

Der einzige Unterschied ist das @Storefront durch den @Pluginnamen zu ersetzen.

Ich habe jetzt folgendes gemacht:

Der Original-Pfad der Datei ist
NetiNextStoreLocator/src/Resources/views/storefront/store_locator/index.twig

Ich habe folgende Struktur erstellt
NetiNextStoreLocatorChild/src/Resources/views/storefront/store_locator/index.twig

In die neu erstellte index.twig habe ich folgenden Inhalt kopiert:
{% sw_extends ‚@NetiNextStoreLocator/storefront/base.html.twig‘ %}

{% block base_breadcrumb %}

{% endblock %}

Der Block ist allerdings noch da, was übersehe ich bzw. was mache ich falsch?

Du musst diese Datei erweitern und nicht die base.html.twig

{% sw_extends '@NetiNextStoreLocator/storefront/store_locator/index.html.twig' %}

Die Dateien haben die Endung .html.twig und nicht .twig!

Vielen Dank für deine Hilfe, ich probiere es mal so. Im Original heißt die Datei allerdings index.twig, ohne das .html.

Dann musst du die Schreibweise übernehmen!

Habe ich gemacht, aber leider ist der Block noch da.

Habe ich etwas übersehen, was ich noch tun muss, damit die Änderungen aktiv sind?

Habe es nochmal mit einer anderen Datei aber nach dem gleichen Schema probiert, jedoch greifen auch hier die Anpassungen noch nicht.

Jemand noch eine Idee, woran es liegen könnte?