Footer Template wird nicht extended

Hi zusammen,

ich bin immer noch dabei, einige Extensions auf die neue Struktur umzustellen, allerdings geht das bei allen, bis auf die Footer Erweiterung:

So sieht die Struktur im Plugin aus:

meinplugin/Views/responsive/frontend/index/footer.tpl

Inhalt der footer.tpl:

 

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

{block name="frontend_index_footer_copyright" append}

Gib mir hier was aus!
  
{/block}              

Letzter Abschnitt im Plugin:

 

    public function onPostDispatchDetail(Enlight_Event_EventArgs $arguments)
    {

        /**@var $controller Shopware_Controllers_Frontend_Listing*/
        $controller = $arguments->getSubject();

        $controller->View()->addTemplateDir($this->Path() . 'Views/common/');

        if (Shopware()->Shop()->getTemplate()->getVersion() >= 3) {
            $controller->View()->addTemplateDir($this->Path() . 'Views/responsive/');
        } else {
            $controller->View()->addTemplateDir($this->Path() . 'Views/emotion/');
            $controller->View()->extendsTemplate('frontend/index/header.tpl');
            $controller->View()->extendsTemplate('frontend/detail/index.tpl');
        }

    }

Ich habe keinen blassen Schimmer, wieso das Template nicht ausgegeben wird!

LG und Dankeschön,

Chris

Wenn ich

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

verwende, dann funktionierts :slight_smile:

Bei mir funktioniert es auch nicht mit “index.tpl”.

 

Grundsätzlich habe ich eigentlich nur das “Slogan Of The Day” Plugin umgeschrieben um im Footer Social Media Icons auszugeben… funktioniert nicht.

 

    public function onFrontendPostDispatch(Enlight_Event_EventArgs $args)
    {
        /** @var \Enlight_Controller_Action $controller */
        $controller = $args->get('subject');
        $view = $controller->View();

        $view->addTemplateDir(
            __DIR__. '/Views'
        );

        $view->assign('faceBook', $this->Config()->get('faceBook'));
        $view->assign('youTube', $this->Config()->get('youTube'));
        $view->assign('googlePlus', $this->Config()->get('googlePlus'));
        $view->assign('instagram', $this->Config()->get('instagram'));
        $view->assign('twitter', $this->Config()->get('twitter'));
        $view->assign('additional', $this->Config()->get('additional'));
    }

 

 

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

{block name='frontend_index_footer_menu'}
    
        
            
                {if $facebook}Facebook{/if}
                {if $youTube}Twitter{/if}
                {if $googlePlus}Google+{/if}
                {if $instagram}Instagram{/if}
                {if $twitter}Twitter{/if}
                {if $additional}{$additional}{/if}
                TEST
            
        
        {include file='frontend/index/footer-navigation.tpl'}
    
{/block}

 

Das Original soll dabei überschrieben werden, auf der Seite kommt das aber (trotz neu kompliieren des Themes und leeren des Caches) nicht an.

Sorry, das habe ich an dieser Stelle auch noch nicht richtig kapiert. Ich nehme an, dass da noch irgendein anderes Template dazwischen funkt, welches den Block ebenfalls erweitert…

Ich ging auch erst von einem anderen Plugin aus, allerdings war es die Reihenfolge, in der die Templates verarbeitet wurden.

 

Bei der Standardreihenfolge verarbeitet SW5 folgendermaßen:

 

Bare => Responsive => Plugins => Custom Theme

 

Set 5.1.2 kann man die Reihenfolge mit folgender Zeile in der Theme.php anpassen:

 

 protected $injectBeforePlugins = true;

(gefunden in: http://forum.shopware.com/discussion/32198/ladereihenfolge-von-template-informationen-falsch ), damit wird es dann:

 

Bare => Responsive => Custom Theme => Plugin

 

1 Like