# Theme template inheritance - Vererbungsreihenfolge

**URL:** <https://forum.shopware.com/t/theme-template-inheritance-vererbungsreihenfolge/64406>\
**Category:** Themes & Design\
**Created:** [1. Februar 2020 um 11:20 UTC](https://forum.shopware.com/t/theme-template-inheritance-vererbungsreihenfolge/64406 "2020-02-01T11:20:13Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![mdsw](https://avatars.discourse-cdn.com/v4/letter/m/94ad74/32.png) [@mdsw](https://forum.shopware.com/u/mdsw)\
**Post date:** [1. Februar 2020 um 11:20 UTC](https://forum.shopware.com/t/theme-template-inheritance-vererbungsreihenfolge/64406/1 "2020-02-01T11:20:13Z")

</div>

Laut dieser Doku&nbsp;[https://docs.shopware.com/en/shopware-platform-dev-en/internals/plugins/plugin-themes?category=shopware-platform-dev-en/internals/plugins#theme-template-inheritance](https://docs.shopware.com/en/shopware-platform-dev-en/internals/plugins/plugin-themes?category=shopware-platform-dev-en/internals/plugins#theme-template-inheritance)

kann die Reihenfolge der Vererbung in der theme.json festgelegt werden.

&nbsp;

**MEIN ZIEL:** Storefront \> Mein Theme \> Plugins  
_Eben gau so, wie das in Shopware 5 möglich war, damit Plugins aus dem Store im Theme wirken können._

&nbsp;

**theme.json**

```
"views": [
        "@Storefront",
        "@MyTheme",
        "@Plugins"
    ],

```

_@MyTheme habe ich durch den Namen meines Themes ausgetauscht._

&nbsp;

Im Theme bearbeite ich die **base.html.twig**

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

{% block base_header %}
    
        {% block base_header_inner %}
            FOOOOOOOOO
        {% endblock %}
    
{% endblock %}

```

&nbsp;

In einem Plugin bearbeite ich ebenfalls die **base.html.twig**

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

{% block base_header %}
    BAAAAAAAAAR

    {{ parent() }}
{% endblock %}

```

&nbsp;

**ERGEBNIS** :&nbsp;Die Überarbeitung aus dem Plugin greift nicht. Sie greift erst, wenn ich im Theme in der base.html.twig ebenfalls {{ parent() }} einfüge.

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

{% block base_header %}
    {{ parent() }}

    
        {% block base_header_inner %}
            FOOOOOOOOO
        {% endblock %}
    
{% endblock %}

```

**ERGEBNIS** :&nbsp;Zwei mal der selbe Header + Inhalt des Plugins.

---

<div class="post-metadata">

**Author:** ![mdsw](https://avatars.discourse-cdn.com/v4/letter/m/94ad74/32.png) [@mdsw](https://forum.shopware.com/u/mdsw)\
**Post date:** [3. Februar 2020 um 19:29 UTC](https://forum.shopware.com/t/theme-template-inheritance-vererbungsreihenfolge/64406/2 "2020-02-03T19:29:07Z")

</div>

Ich habe folgendes herausgefunden:&nbsp;

**Plugin A** und **Plugin B** überschreiben den Block {% block base\_header %}, welcher im Theme bereits verändert wurde.

&nbsp;

die theme.json sieht so aus:

```
"views": [
    "@Storefront",
    "@MyTheme",
    "@Plugins"
],

```

**Plugin A** habe ich **vor** dem Theme installiert  
Danach habe ich das **Theme** installiert  
**Plugin B** habe ich **nach** dem Theme installiert

Leere ich nun den Cache mit **bin/console cache:clear** erscheint **Plugin B**  
Leere ich den Cache mit **./psh.phar cache** erscheint **Plugin A**

&nbsp;

Ich habe das nun auch mit&nbsp;

```
"views": [
    "@Storefront",
    "@Plugins",
    "@MyTheme"
],

```

getestet. **Die Reihenfolge spielt keine Rolle…** Auch ist mir nicht klar, ob es @MyTheme heißen soll, oder ob es ein Platzhalter ist und man dieses gegen den Namen des eigenen Theme Plugins austauschen muss…&nbsp;

&nbsp;

[@Moritz Naczenski]([http://forum.shopware.com/profile/14574/Moritz](http://forum.shopware.com/profile/14574/Moritz) Naczenski „Moritz Naczenski“)‍ Kann das irgendwer bei euch mal prüfen oder erklären was ich alles hier falsch mache?

&nbsp;

Getestet mit der aktuellsten v6.1.9 Stable Version 999999.9999999&nbsp;

---

<div class="post-metadata">

**Author:** ![Moritz\_Naczenski](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/moritz_naczenski/32/7792_2.png) [@Moritz\_Naczenski](https://forum.shopware.com/u/Moritz_Naczenski)\
**Post date:** [3. Februar 2020 um 19:38 UTC](https://forum.shopware.com/t/theme-template-inheritance-vererbungsreihenfolge/64406/3 "2020-02-03T19:38:03Z")

</div>

Also ich bin mir ziemlich sicher, dass bei @ dein Theme-Name hingehört, damit es funktioniert.

---

<div class="post-metadata">

**Author:** ![mdsw](https://avatars.discourse-cdn.com/v4/letter/m/94ad74/32.png) [@mdsw](https://forum.shopware.com/u/mdsw)\
**Post date:** [3. Februar 2020 um 19:46 UTC](https://forum.shopware.com/t/theme-template-inheritance-vererbungsreihenfolge/64406/4 "2020-02-03T19:46:29Z")

</div>

[@Moritz Naczenski]([http://forum.shopware.com/profile/14574/Moritz](http://forum.shopware.com/profile/14574/Moritz) Naczenski „Moritz Naczenski“)‍ Danke für die abendliche Antwort&nbsp; ![Thumb-Up](https://forum.shopware.com/plugins/CKEditor/plugins/smiley/images/thumb-up.png "Thumb-Up")

&nbsp;

Theme Name aus der theme.json&nbsp;

oder

Name des Plugins aus der composer.json?

&nbsp;

Ich habe beides getestet…

&nbsp;

Es bleibt dennoch dabei, dass die Installations-Reihenfolge darüber entscheidet, welche Templates letztlich überschreiben… abhängig vom gewählten Cache-Leeren Befehl…&nbsp;

---

<div class="post-metadata">

**Author:** ![biloba](https://avatars.discourse-cdn.com/v4/letter/b/ccd318/32.png) [@biloba](https://forum.shopware.com/u/biloba)\
**Post date:** [4. Februar 2020 um 09:16 UTC](https://forum.shopware.com/t/theme-template-inheritance-vererbungsreihenfolge/64406/5 "2020-02-04T09:16:28Z")

</div>

Gerade bei mir auch getestet, bei mir tut folgendes auch nicht

> „views“: [
> 
> „@Storefront“,
> 
> „@SwagCmsExtensions“,
> 
> „@Plugins“,
> 
> „@Theme“
> 
> ]

SwagCmsExtensions überschreibt mir immer noch meine Theme

---

<div class="post-metadata">

**Author:** ![Moorleiche](https://avatars.discourse-cdn.com/v4/letter/m/6f9a4e/32.png) [@Moorleiche](https://forum.shopware.com/u/Moorleiche)\
**Post date:** [4. Februar 2020 um 09:34 UTC](https://forum.shopware.com/t/theme-template-inheritance-vererbungsreihenfolge/64406/6 "2020-02-04T09:34:50Z")

</div>

> [@Moritz Naczenski schrieb:](https://forum.shopware.com/profile/14574/Moritz%20Naczenski "Moritz%20Naczenski")
> 
> Also ich bin mir ziemlich sicher, dass bei @ dein Theme-Name hingehört, damit es funktioniert.

:D&nbsp;

---

<div class="post-metadata">

**Author:** ![StefanSl](https://avatars.discourse-cdn.com/v4/letter/s/d6d6ee/32.png) [@StefanSl](https://forum.shopware.com/u/StefanSl)\
**Post date:** [4. Februar 2020 um 10:33 UTC](https://forum.shopware.com/t/theme-template-inheritance-vererbungsreihenfolge/64406/7 "2020-02-04T10:33:28Z")

</div>

&nbsp;Was die art des cache löschens angeht, ist das Problem bekannt und wird gerade gefixed.

> **[Shopware Issuetracker](https://issues.shopware.com/issues/NEXT-6646)**
>
> Shopware Issuetracker

Bis dahin liefert nur ./psh.phar cache das richtige Ergebnis.

rufen Plugin A und Plugin B jeweils parent() auf?

> [@mdsw schrieb:](https://forum.shopware.com/profile/26615/mdsw "mdsw")
> 
> Ich habe folgendes herausgefunden:&nbsp;
> 
> **Plugin A** und **Plugin B** überschreiben den Block {% block base\_header %}, welcher im Theme bereits verändert wurde.

---

<div class="post-metadata">

**Author:** ![mdsw](https://avatars.discourse-cdn.com/v4/letter/m/94ad74/32.png) [@mdsw](https://forum.shopware.com/u/mdsw)\
**Post date:** [4. Februar 2020 um 13:02 UTC](https://forum.shopware.com/t/theme-template-inheritance-vererbungsreihenfolge/64406/8 "2020-02-04T13:02:02Z")

</div>

> [@StefanSl schrieb:](https://forum.shopware.com/profile/33839/StefanSl "StefanSl")
> 
> &nbsp;Was die art des cache löschens angeht, ist das Problem bekannt und wird gerade gefixed.
> 
> [https://issues.shopware.com/issues/NEXT-6646](https://issues.shopware.com/issues/NEXT-6646)
> 
> Bis dahin liefert nur ./psh.phar cache das richtige Ergebnis.
> 
> rufen Plugin A und Plugin B jeweils parent() auf?
> 
> > [@mdsw schrieb:](https://forum.shopware.com/profile/26615/mdsw "mdsw")
> > 
> > Ich habe folgendes herausgefunden:&nbsp;
> > 
> > **Plugin A** und **Plugin B** überschreiben den Block {% block base\_header %}, welcher im Theme bereits verändert wurde.

Jepp
