Einsteigerfrage SW6 Theme erstellen und Templates verändern

Guteb Morgen zusammen,

ich würde gerne meine Änderungen im Template updatesicher machen. Hierzu muss ich ja ein Theme erstellen.

Hier wollte ich nach dieser Anleitung vorgehen: https://docs.shopware.com/de/shopware-6-de/tutorials-und-faq/aenderungen-am-template-vornehmen

 

Ich habe aber im Shop bereits das SW6 Default Theme via Backend (Duplikat erstellen) kopiert und ausgewählt. Ich weiß alelrdings nicht mehr ob ich die Ordnerstruktur custom/plugins/mundschutz-24.de/ selbst angelegt habe oder es vom System kam

Ich versuche jetzt die Datei custom/plugins/mundschutz-24.de/src/Resources/views/storefront/layout/cookie updatesicher zu speichern

 

Pfad Original:

vendor/shopware/storefront/vendor/shopware/storefront/Resources/views/storefront/layout/cookie

Pfad in meinem Theme:

custom/plugins/mundschutz-24.de/src/Resources/views/storefront/layout/cookie

 

Code:

cookie-configuration-child.html.twig

{% sw_extends '@Storefront/storefront/vendor/shopware/storefront/Resources/views/storefront/layout/cookie/cookie-configuration-child.html.twig' %}

{% if child.cookie is not empty and child.hidden is not same as(true) %}
    {% set cookie = child.cookie %}
    
        
        
            {{ child.snippet_name ? child.snippet_name|trans|sw_sanitize : cookie }}
        


        {% if child.snippet_description %}
            {{ child.snippet_description|trans|sw_sanitize }}
        {% endif %}
    
{% endif %}

cookie-configuration-parent.html.twig

{% sw_extends '@Storefront/storefront/vendor/shopware/storefront/Resources/views/storefront/layout/cookie/cookie-configuration-parent.html.twig' %}

{% set name = parent.snippet_name ? parent.snippet_name|trans|sw_sanitize : parent.cookie %}
{% set identifier = parent.cookie ? parent.cookie : name %}

{% if name is not empty %}
    
        
        
            {{ name }}
        
    
{% endif %}

 

Auch bei mehrfacher Leerung des Caches ist meine Teständerung, eine weitere CSS Klasse „ms24“, nicht sichtbar. Allerdings verwende ich hier keine Extend Block Anweisung sondern würde gerne das komplette Template überschreiben. Muss man hier trotzdem Extend verwenden? Ist das vielleicht die Ursache?

 

Wo ist der Fehler?

VG Frank

Also ich habe das Ganze jetzt noch mal nach Anleitung via Console und Pluginmanager gemacht. Das neue Theme ist jetzt vorhanden und die Ordnerstruktur wurde vom System angelegt.  Im Verkaufskanal habe ich das neue Theme zugewiesen. Soweit sollte das jetzt eigentlich passen.

Dennoch werden meine Änderungen nicht genommen.

 

Pfad Original:

vendor/shopware/storefront/vendor/shopware/storefront/Resources/views/storefront/ layout/cookie

Pfad in meinem Theme:

custom/plugins/Ms24/src/Resources/views/storefront/ layout/cookie

{% sw_extends '@Storefront/storefront/layout/cookie/cookie-configuration-child.html.twig' %}

{% if child.cookie is not empty and child.hidden is not same as(true) %}
    {% set cookie = child.cookie %}
    
        
        
            {{ child.snippet_name ? child.snippet_name|trans|sw_sanitize : cookie }}
        


        {% if child.snippet_description %}
            {{ child.snippet_description|trans|sw_sanitize }}
        {% endif %}
    
{% endif %}

 

Und noch ein Versuch mit einem Template das einen Block hat. In diesem Fall die zweite Produktüberschrift bei der Beschreibung entfernen.

"Produktinformationen “Mein PRodukt”

 

Pfad Originaltemplate

vendor/shopware/storefront/Resources/views/storefront/page/product-detail/description.html.twig

Pfad angepasstes Template

custom/plugins/Ms24/src/Resources/views/storefront/page/product-detail/description.html.twig

{% sw_extends '@Storefront/storefront/page/product-detail/description.html.twig' %}

{% block page_product_detail_description_title %}

{% endblock %}

 

Geht leider auch nicht…es muss also irgendwo grundsätzlich klemmen. Cache via Backend UND Konsole geleert :frowning:

Und noch mal ein Nachtrag. Dieses mal mit einem erfolgreichen Versuch. Das Theme muss also von Haus aus stimmen.

Anpassung des Rechnungstemplates base.html.twig nach dieser Anleitung https://docs.shopware.com/de/shopware-6-de/tutorials-und-faq/aenderungen-am-template-vornehmen#datei-im-eigenen-theme-ableiten

 

Originaldatei:  /vendor/shopware/core/Framework/Resources/views/documents/base.html.twig

Custom:  custom/plugins/Ms24/src/Resources/views/documents/base.html.twig

{% sw_extends '@Framework/documents/base.html.twig' %}

{% block document_sender_address %}

{% endblock %}

 

Irgendwas stimmt mit den Pfaden für Templates im Storefront Ordner in der Doku nicht!?

Hallo,

hier evtl. eine Teilösung. Bin jedoch auch Einsteiger und auf der Suche nach einer Lösung für mein Problem hier gelande. Daher keine Ahnung ob dem wirklich so ist und das korrekt ist wie ich es (teilweise) gelöst habe.

(1) Pfade scheinen echt nicht zu passen?

ich hatte das selbe Problem bei Frontend Dateien.

base template ist bei mir z.B.

/vendor/shopware/platform/src/Storefront/Resources/views/layout/header

 

Im Webinar + Doku steht über all “/storefront/views” Wenn ich das aber so aufbaue tut sich rein garnichts bei mir?

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

 

vgl. Shopware 6: Twig templates

child template geht bei mir jedoch scheinbar nur ohne “/storefront” ordner
/custom/plugins/KonVis/src/Resources/views/layout/header

Wenn ich “storefront” weg lasse wird scheinbar die korrekte twig Datei geladen. Füge ich dort nur normales html ein zum Testen, wird es im FE korrekt angezeigt.

=> funktioniert somit?

(2) Extend Befehl stimmt aber auch nicht mit Webinar/Doku überein?

Problem ist… extend Befehl funktioniert bei mir nicht und wirft nur Fehler. Ich verstehe nicht wie der Pfad sein muss und es gibt immer einen Fehler weil der Pfad scheinbar nicht stimmt

Unable to load template “Resources/views/layout/header/logo.html.twig”. (Looked into: Storefront, Administration, Profiling, Framework, Swiftmailer, Twig, WebProfiler, Debug, Enqueue, KonVis)

 

getestet z.B.:

{% sw_extends ‘@Storefront/Storefront/Resources/views/layout/header/logo.html.twig’ %}
=> wirft fehler

 

{% sw_extends ‘@Storefront/Resources/views/layout/header/logo.html.twig’ %}

=> würde ich vermuten ist es, weil Base Template wie folgt ist.

/vendor/shopware/platform/src/Storefront/Resources/views/layout/header

 

Würde mich auch sehr freuen über eine Rückmeldung ob sich die Pfade geändert haben oder dort etwas anderes nicht stimmt?

Verwendet habe ich für Shopware

https://docs.shopware.com/en/shopware-6-en/tutorials-and-faq/virtual-box-setup?category=shopware-6-en/tutorials-and-faq
=> shopware.ova

Generell kann natürlich sein, dass sich zwischen den Videos (wenn es die alten aus letztem Jahr sind) und heute auch etwas getan hat.

Schau dir das mal an: Shopware 6 - Tutorials und FAQ - Änderungen am Template vornehmen

Sollte so korrekt sein.

Lösung(?) für extend auch gefunden

{% sw_extends ‚@Storefront/layout/header/logo.html.twig‘ %}

=> /storefront" muss scheinbar auch dort raus?

 

@Moritz Naczenski schrieb:

Generell kann natürlich sein, dass sich zwischen den Videos (wenn es die alten aus letztem Jahr sind) und heute auch etwas getan hat.

Schau dir das mal an: https://docs.shopware.com/de/shopware-6-de/tutorials-und-faq/aenderungen-am-template-vornehmen#grundlegende-funktionen

Sollte so korrekt sein.

Danke für die Rückmeldung. Ich bin nach genau dieser Doku vorgegangen und bei mir geht es nicht :(. Aber nur bei Storefront Templates. @Framework geht 

Also ich habe jetzt noch mal versucht. Es funktionieren alle Pfade nicht

 

{% sw_extends '@Storefront/storefront/page/product-detail/description.html.twig' %}

{% block page_product_detail_description_title %}

{% endblock %}

{% sw_extends '@Storefront/page/product-detail/description.html.twig' %}

{% block page_product_detail_description_title %}

{% endblock %}

{% sw_extends '@Storefront/Resources/views/storefront/page/product-detail/description.html.twig' %}

{% block page_product_detail_description_title %}

{% endblock %}

 

Damit ging es bei mir für den Footer:

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

(v6.2.0 RC 1)

1 Like

Leider nein :frowning:

Aber alle Anpassungen mit @Storefront funktionieren nicht bei mir. Das Template für die Rechnung mit @Framework hingegen ging schon auf diesem Wege schon.

 

Ordnerstruktur für das Theme

!(<a href=) Bildschirmfoto-2020-05-25-um-15-57-07" />

Tatsächlich ist es entscheidend, wie der Name des Plugins bzw. des Themes aufgebaut ist.
Also statt “Ms24” besser “MsMeinTheme”.

Versuche einmal:

  1. bin/console theme:create
  2. Please enter a theme name: MsMeinTheme
  3. bin/console plugin:refresh
  4. bin/console plugin:install --activate MsMeinTheme
  5. bin/console theme:change
  6. Instruktionen folgen bzw. Auswahl treffen
  7. bin/console cache:clear

 

Damit sollte es mit der Struktur aus deinem letzten Screenshot klappen :wink:

Danke! Du meinst die Zahlen im Namen sind das PRoblem?

Genau so ist es!

1 Like

Hänge mich hier mal dran. Ich habe auch alle Pfade ausprobiert. Auch der Name des Templates ist wie im Webinar mit einem Großbuchstaben ohne Zahl am Anfang. Dennoch erscheint meine Template-Änderung nicht. 

Nutze als Entwicklungsumgebung einen Docker-Contaienr von Dockware.

 

EDIT: Die Änderungen wird angezeigt nachdem ich über CLI mindestens 1x diesen Command ausführe:

  1. bin/console theme:change
1 Like

Mit theme:change mehrfach ausführen hat bei mir nichts geholfen. Ich denke es liegt wirklich am Namen. War aber bisher zu faul das komplette Theme neu anzulegen und zu konfigurieren :wink: