Probleme mit Template überschreiben

Hallo,

 

ich habe folgendes Problem:

Mein Plugin kann einen Block nicht überschreibt, wenn das Custom Theme bereits eine tpl Datei mit dem gleichen Namen hat.

Ich benutze folgenden Aufbau:

 

class test extends Plugin {

    public static function getSubscribedEvents() {
        return [
            'Enlight_Controller_Action_PostDispatch' => 'addTemplateDir',
        ];
    }

    public function addTemplateDir(\Enlight_Controller_ActionEventArgs $args)
    {
       $args->getSubject()->View()->addTemplateDir($this->getPath() . '/Resources/views');
    }
}

 

Und mein Template sieht ungefähr so aus:

 

{extends file='parent:frontend/listing/index.tpl'}
{block name='frontend_index_content'}
    Hello World
{/block}

 

Gibt es eine Möglichkeit, dass das Template immer geladen / überschrieben wird?

Guten Morgen @Naahni‍,

wenn beide den selben Block überschreiben, gewinnt das Theme.

Wenn in beiden ein 

 {$smarty.block.parent}

enthalten ist, werden auch beide ausgegeben:

Edit: Getestet mit 5.5.4

1 „Gefällt mir“

Hi,

man kann das Ladeverhalten bzw. die Reihenfolge auch beeinflussen.

https://developers.shopware.com/designers-guide/smarty/#inherit-a-standard-theme

2 „Gefällt mir“

Hallo danke für die Info. Ich habe sowas schon vermutet.  Smile