Smarty vs Twig - In includierte Datei "ausgelagerte" oder "verschobene" Blöcke nicht erweiterbar

[@Moritz Naczenski](http://forum.shopware.com/profile/14574/Moritz Naczenski „Moritz Naczenski“)‍ könnt ihr folgendes Verhalten einmal prüfen, bitte?

In Shopware 5 mit Smarty war es möglich, die Theme Struktur (Vererbungsreihenfolge: Bare > Responsive > Custom Theme > Plugins) stärker zu verändern und die Inhalte eines Blocks in eine andere tpl-Datei zu packen und dann zu includen. 
Inhalt der Dateien waren dann auch Blöcke, welche bereits vorher in diesem ursprünglichen Smarty-Block vorhanden waren. Sie wurden also in eine andere Datei ausgelagert, die dann wieder in den Block includiert wurde.

Wenn nun andere Plugins einen so verschobenen Block überschreiben oder erweitern wollten, konnten diese den immer noch in einer Ableitung der index.tpl erweitern und mussten nicht wissen, dass es eine custom-navigation-A.tpl oder custom-navigation-B.tpl gibt, welche nur noch includiert wird und den Block nun beinhaltet:

 

THEME SW5

{extends file="parent:frontend/index/index.tpl"}

{block name='frontend_index_navigation'}

{if BedingungA === true}
    {include file="frontend/index/custom-navigation-A.tpl"}
{else}
    {include file="frontend/index/custom-navigation-B.tpl"}
{/if}

{/block}

BEISPIELINHALT custom-navigation-A.tpl oder custom-navigation-B.tpl

                    {* Include the top bar navigation *}
                    {block name='frontend_index_top_bar_container'}
                        {include file="frontend/index/topbar-navigation.tpl"}
                    {/block}

                    {block name='frontend_index_header_navigation'}
                        

                            {* Logo container *}
                            {block name='frontend_index_logo_container'}
                                {include file="frontend/index/logo-container.tpl"}
                            {/block}

                            {* Shop navigation *}
                            {block name='frontend_index_shop_navigation'}
                                {include file="frontend/index/shop-navigation.tpl"}
                            {/block}

                            {block name='frontend_index_container_ajax_cart'}
                                
                            {/block}
                        
                    {/block}
                

                {* Maincategories navigation top *}
                {block name='frontend_index_navigation_categories_top'}
                    
                        
                            {block name="frontend_index_navigation_categories_top_include"}
                                {include file='frontend/index/main-navigation.tpl'}
                            {/block}
                        
                    
                {/block}

PLUGIN SW5 erweitert einen Block, der nun in einer includierten Datei liegt - ohne Probleme.

{extends file="parent:frontend/index/index.tpl"}

{block name='frontend_index_shop_navigation'}
    foobar
{/block}

Problem: Das gleiche Beispiel nachgestellt in Shopware 6 mit Twig funktioniert nicht. Für die Theme Entwicklung ist das aber teilweise wirklich wichtig! Ein Plugin ist nicht in der Lage einen Twig-Block zu überschreiben, der in eine andere Datei ausgelagert und dann includiert wurde…

Wenn das nicht geht, sehe ich die Kompatibilität der Vererbung bei komplexeren Theme-Gestaltungen nicht gegeben… das ist essentiell wichtig!
Ist das ein Bug?

Hallo,

das Problem hatte ich auch schon mal, glaube ich. Am besten kannst du ein Ticket einstellen https://issues.shopware.com/ mit genauer Beschreibung, wie man das nachstellen kann. mMn sollte das wie gewohnt funktionieren, da gebe ich dir Recht. 

Viele Grüße aus Schöppingen

 Michael Telgmann

1 Like

Danke für das schnelle Feedback. Ticket wurde erstellt: Shopware Issuetracker