Base.twig.html erweitern

Manche Template Dateien kann ich einfach nicht erweitern.

In meinem Plugin liegt folgende Datei: myplugin\src\Resources\views\storefront\base.html.twig

Vor den Footer möchte ich noch ein Element legen, was aber einfach nicht passiert.

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

{% block base_footer %}
  bar
  {{ parent() }}
{% endblock %}

Wenn ich die sw_extend-Zeile entferne, müsste ja zumindest {{ parent() }} ein Error werfen. Der kommt aber nicht; d.h. die Datei wird komplett ignoriert.

theme:compile && cache:clear ist klar, hilft auch nicht.

Was übersehe ich hier?

hast du mal nur „extends“ oder einen anderen Block versucht?

Funktioniert nicht, egal welcher block.

Das extend ist egal, es soll ja erstmal nur die meine base.html.twig gefunden werden.

kann das jemand reprodizieren oder liegts an mir?

Welche Version hast du von Shopware?

v6.1.3 Stable Version

über die .env den Shop in den dev mode schalten (APP_ENV=dev) danach sollten Änderungen an der base.html.twig angewendet werden.

rm -Rf var/cache auf dem Server ausführen weil bin/console cache:clear den cache nicht komplett leert.

ist halt alles noch verbuggt.

@plufri schrieb:

rm -Rf var/cache

na also, das hat geholfen, danke!

Im dev mode war ich eh schon.

Hallo!

Ich entwickle ein Theme und möchte auch die base.html.twig Datei erweitern:

{% sw_extends '@parent/storefront/base.html.twig' %}

{% block base_footer_inner %}
    Dump
    {{ dump(shopware.config.core) }}
    {% sw_include '@Storefront/storefront/layout/footer/footer.html.twig' %}
{% endblock %}

Das sollte einen h1 (Dump) und einen variablen Dump im Footer anzeigen (siehe Bild unten) aber es geht einfach nicht.

Meine Entwicklungsumgebung:

  • Shopware getaggte 6.1.3 Version
  • MacOS X 10.13.6
  • MAMP Pro 5.7
  • PHP Version 7.2.22
  • MySQL 5.7.26

So sieht meine .env Datei aus:

SHOPWARE_ES_HOSTS="elasticsearch:9200"
SHOPWARE_ES_ENABLED="0"
SHOPWARE_ES_INDEXING_ENABLED="0"
SHOPWARE_ES_INDEX_PREFIX="sw"
SHOPWARE_HTTP_CACHE_ENABLED="1"
SHOPWARE_HTTP_DEFAULT_TTL="7200"
SHOPWARE_CDN_STRATEGY_DEFAULT="id"
APP_ENV="dev"
APP_URL="..."
APP_SECRET="..."
INSTANCE_ID="..."
DATABASE_URL="mysql://shopware6:...@localhost:3306/shopware6_pro"

Das habe ich schon versucht:

  • rm -Rf var/cache
  • bin/console theme:compile
  • bin/console cache:clear
  • composer install

Aber nichts davon hat bislang geholfen. Ich möchte keine Zeit mehr dafür verschwenden. Weiss jemand, wieso alle andere Twig-Vorlage ohne Probleme erweitert werden können aber  base.html.twig nicht? Sie wird, wie @AlexGalax sagte, einfach ignoriert!

Vielen Dank im Voraus.

 

@BenjaminHa‍ Danke für die Antwort.

Ich habe versucht, was du in deinem Post vorschlägst:

platform/src/Core/Framework/Resources/config/packages/twig.yaml

twig:
    debug: '%kernel.debug%'
    strict_variables: false
    exception_controller: null
    cache: false

Da habe ich cache: false  in die letzte Zeile hinzugefügt.

Komischerweise ist das ganze Verzeichnis vendor/shopware  nicht zu finden. Deshalb konnte ich die andere twig.yaml Datei nicht anpassen:

vendor/shopware/core/Framework/Resources/config/packages/twig.yaml

Dann habe ich die folgenden Befehle ausgeführt:

rm -Rf var/cache

bin/build.sh

bin/console cache:clear

bin/build.sh hat eine ganze Menge Kram auf der Konsole produziert, anscheinend alles in Ordnung.

Schliesslich habe ich die Webseite getestet aber nichts Neues ist passiert:
# Debug und der Variablen-Debug werden weiterhin nicht angezeigt.

Ich habe sogar Checkouts auf den anderen GIT-getaggten Shopware-Versionen gemacht (6.1.2; 6.1.1; 6.1.0; 6.0.0+ea2…) aber es scheint, auch nicht daran zu liegen.

Woran könnte das liegen? Für jede Hilfe wäre ich sehr dankbar.

@BenjaminHa schrieb:

@Arbinath‍ Den Pfad ‚vendor/shopware/core/Framework/Resources/config/packages/twig.yaml‘ gibt es nur im „Production Template“ du scheinst das Developer Template zu benutzen, dementsprechend sollte das passen.

So wie habe ich Shopware 6 bei mir installiert:

# clone newest 6.1 patch version from github 
git clone --branch=6.1 https://github.com/shopware/production shopware
cd shopware

# install shopware and dependencies according to the composer.lock 
composer install

# setup the environment
bin/console system:setup
# create database with a basic setup (admin user and storefront sales channel)
bin/console system:install --create-database --basic-setup

@BenjaminHa schrieb:

Bist du dir sicher das deine " base.html.twig" an der richtigen Stelle liegt?

Nein, bin ich nicht. Hoffentlich liegt sie an einer falschen Stelle! Das wäre der einfachste Grund zu lösen… Bitte siehe Bildschirmfoto:

Und so sieht mein base.html.twig :

{% sw_extends '@parent/storefront/base.html.twig' %}

{% block base_footer_inner %}
    Dump:
    {{ dump(shopware.config.core) }}
    {% sw_include '@Storefront/storefront/layout/footer/footer.html.twig' %}
{% endblock %}

Habe ich etwas übersehen? Fällt dir was ein?  Undecided​ Danke!

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

 

@AlexGalax schrieb:

{% sw_extends ‚@Storefront/storefront/base.html.twig‘ %}

Das führt zum gleichen Ergebnis.  Frown

Ich habe mir gerade den Twig-Profiler angeschaut und die base.html.twig Datei wird immer so ausgeführt:

storefront/base.html.twig

Und nie so:

@RevendoTheme/storefront/base.html.twig

Nichts Weiteres kann ich momentan herausfinden.

{% sw_extends '@parent/storefront/base.html.twig' %}

{{ Dies ergibt einen SyntaxError }}

{% block base_footer_inner %}
    Dump:
    {{ dump(shopware.config.core) }}
    {% sw_include '@Storefront/storefront/layout/footer/footer.html.twig' %}
{% endblock %}

Kein SyntaxError trifft auf. Das muss heissen, dass die Datei base.html.twig  einfach ignoriert wird. Passiert das, weil das die einzige Datei ist, die direkt unter storefront/ liegt und urgendwie der Entry Point ist?

Meine Base Datei sieht so aus: 

 

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

        {% block base_footer %}

            ........Mein Code ...........

       {% endblock %}

....

 

Das funktioniert auch und ich sehe mein Ergebniss auf der Startseite, jedoch wenn ich die Artikel-Detail-Seite aufrufe, sind meine Anpassungen weg und der übernimmt Standard Base von Shopware. 

Page–>Product-detail–>index habe ich so  --> 

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

        

hatte das Problem auch, dass die base ignoriert wurde. 

Hab das Plugin deaktiviert und wieder aktiviert und jetzt geht es…

evtl das Theme auch mal switchen

1 „Gefällt mir“

@kommad‍ Leider kein Erfolg. ich habe das Theme geswitched aber Base wird auf der Artikel Detailseite ignoriert. !!

Deaktivieren/Aktivieren hat auch nicht geholfen

Hi,

habe das gleiche Problem. Liegt alles im richtigen Ordner etc. aber es wird einfach ignoriert. Compiliert, Cache gelöscht usw. die Tips hier getestet … kein Erfolg

Shopware 6 :frowning: daumen runter

Endlich habe ich eine Lösung zu der Erweiterung der base.html.twig Datei gefunden, indem man Shopware auf die neuste stabile Version aktualisiert: 6.1.5

Ich entwickle ein Theme-Plugin für Shopware 6 und kontrolliere alle Änderungen mit GIT. Das ist, was ich gemacht habe:

  1. Wie empfohlen habe ich ein Backup aller Dateien und der Datenbank erstellt.
  2. Das Theme habe ich auf “default” gewechselt.
  3. Via CLI habe ich mein Theme-Plugin deaktiviert.
  4. Auf der SW Administration habe ich auf Version 6.1.5 aktualisiert.
  5. git checkout auf Branch “release/6.1.5” auf dem Root-Ordner (GitHub - shopware/production: Shopware 6 production template)
  6. git checkout auf Tag “v6.1.5” auf dem Ordner “platform/” (https://github.com/shopware/platform.git)
  7. Man kann dann einen Branch auf jedem Projekt (development und platform) erstellen (wie z.B. “my-develop-6.1.5”), um die Verfolgung der lokalen Änderungen fortzusetzen.
  8. Via CLI habe ich mein Theme-Plugin wieder aktiviert und auf der Administration das Theme wieder auf mein Theme geändert.

Jetzt werden alle Block-Überschreibungen auf  base.html.twig berücksichtigt.

Ich ermutige alle, die das gleiche Problem haben, auf die neueste Version von Shopware zu aktualisieren.

@thomas1980: die Hoffnung stirbt zuletzt!