header.html.twig im abgeleitetem Template anpassen?

Hallo Gemeinde, 

gerne möchte ich mein Abgeleitetes Template erweitern bzw. an dem Template etwas verändern. 

Dazu gehe ich gerade die Anleitung durch. 
Shopware 6 - Tutorials und FAQ - Änderungen am Template vornehmen

So wie ich das verstanden habe:

Als erstes muss ich folgen Befehl in der Konsole/Terminal ausführen. 

php bin/console theme:create

Getan und alles erfolgreich.
Das neue Template installiert und aktiviert.

Jetzt kommt es:  Nehmen wir an ich möchte die Datei: 

src/Resources/views/storefront/layout/header/header.html.twig

Kopiere ich einfach die Datei header.html.twig

in den Ordner: 

/custom/plugins/MeinNeusTemplate/src/Resources/views/storefront/layout/header/header.html.twig 

und verändere diese? 

Aber wozu benötige ich das hier: 

{% sw_extends '@Storefront/storefront/ordner1/ordner2/datei.html.twig' %}

Irgendwie verstehe ich die Anleitung nicht ganz. 

Danke im Voraus. 

 

Hi,

du willst die komplette Datei ersetzen oder nur „kleinere“ Dinge bearbeiten? Dann musst du nur den jeweiligen twig block anpassen und den Rest „weglassen“, wenn du extendest. Wenn du das ersetzt, brauchst du das sw_extends nicht wirklich. Wird aber nicht wirklich angeraten, da wenn sich was am Originalen header was ändert, willst du ja diese Änderung ggf. auch bekommen und weiterhin nur deine Anpassung haben.

Hi rockinmc, 

ich möchte einen bestmmten DatenBlock entfernen z.B. Rechts oben den Warenkorb und co. 

Kannst du mir sagen was du mit extendest meinst? 

Was ist die beste vorgehensweise? 

Hi Danke,

wenn du nur einen Block entfernen willst, dann musst du diesen und nur diesen leer in deine theme header.html.twig schreiben. Sieht dann wie folgt aus:

{% sw_extends '@Storefront/storefront/layout/header/header.html.twig' %}

{% block layout_header_actions_account %}
{% endblock %}

Schau dir aber auch mal auf academy.shopware.com die Tutorials bzgl. Themes an und Theme guide.

vielen Dank für die Hilfe, den artikel den du verlinkst war sehr nutzlich. Danke dafür. 

Leider kann ich keine änderung feststellen, keine Ahnung warum, Etwas übersehe ich.  Blush

Werde das gleiche mit einer anderen Datei mal testen. 

 

Hi,

durchaus ist es möglich, dass in deiner theme.json der Theme-Name nach dem @ nicht Groß geschrieben ist und dadurch das nicht funktioniert?

1 Like

Hi, 

meine 

custom/plugins/VnBase/src/Resources/theme.json

Inhalt

{                                                                                                                                        
  "name": "vnBase",                                                                                                                      
  "author": "Shopware AG",                                                                                                               
  "views": [                                                                                                                             
     "@Storefront",                                                                                                                      
     "@Plugins",                                                                                                                         
     "@vnBase"                                                                                                                           
  ],                                                                                                                                     
  "style": [                                                                                                                             
    "app/storefront/src/scss/overrides.scss",                                                                                            
    "@Storefront",                                                                                                                       
    "app/storefront/src/scss/base.scss"                                                                                                  
  ],                                                                                                                                     
  "script": [                                                                                                                            
    "@Storefront",                                                                                                                       
    "app/storefront/dist/storefront/js/vn-base.js"                                                                                       
  ],                                                                                                                                     
  "asset": [                                                                                                                             
    "app/storefront/src/assets"                                                                                                          
  ]                                                                                                                                      
}

 

Kann es sein, das es ein Bug ist, denn du hast ja diesen Forumeintrag verwiesen; 

https://stackoverflow.com/questions/62692360/shopware-6-twig-files-not-loaded-when-using-sw-include

das beschreibt die ähnliches verhalten. 

Wobe ich Datei:  header.html.twig   auch mal in die  header-custom.html.twig benannt habe kein Ergebnis.

 Falls es noch etwas ist, was ich testen kann, das mache ich gerne. Damit das läuft. 

 

bin jetzt auf die Version 6.20 zurück gesprungen und immer das gleiche verhalten.

also es tut sich nix, sprich das Theme lässt sich nicht erweitern. 

 

Hallo es Klappt, wenn ich die Caches und Indizies lösche. 

Nochmal zum Thema Vererbung:

Ich habe zwei Plugins, beide extenden die meta.html.twig

 {% sw\_extends '@Storefront/storefront/layout/meta.html.twig' %}

Nun ist es aber so, dass Plugin A und Plugin B nicht beide zugleich extenden können… habe auch das @Storefront entfernt…

was Funktioniert

Plugin A:

 {% extends '@PluginB/storefront/layout/meta.html.twig' %}

Plugin B:

 {% extends '@Storefront/storefront/layout/meta.html.twig' %}

Wenn ich jetzt im Custom Theme nochmal die selbe Datei extenden will, muss ich…

 {% extends '@PluginA/storefront/layout/meta.html.twig' %}

… nutzen

Aber was ist denn nun wenn die Plugins sich untereinander nicht kennen? 

Aktuell gibt es keine Logik dahinter, auch die View-Reihenfolge in der theme.json zu ändern ist erfolglos.

Dieses Problem habe ich schon länger. In einer Shopware 6 Early Access hat es mal funktioniert, wurde aber kaputt gepatcht. Hat denn niemand ähnliche Probleme bei der Vererbung? Oder fällt nur mir das auf?

 

Hi,

schau mal hier im Stackoverlow die Antwort an. symfony - Shopware 6: Twig files not loaded when using sw_include - Stack Overflow

wie heißt das twig-file, welches du zum Extenden d. meta.html.twig verwendest?