Shopware Plugin (System 5.2) override Template(Frontend-View)

Hallo,

ich versuche gerade mit dem neuen Plugin-System(5.2) eine Template zu überschreiben.

 

meine PHP im Hauptverzeichnis sieht dabei folgendermaßen aus:

class HuebertMenuIcons extends \Shopware\Components\Plugin
{

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

    public function addTemplateDir() {
        $this->container->get('template')->addTemplateDir( __DIR__. '/Views');
    }
}

 

Zum testen wollte ich jetzt Views/frontend/detail/index.tpl überschreiben:

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

{block name='frontend_widgets_delivery_infos'}
{$smarty.block.parent}


     
        Alert
    


{/block}

 

Leider funktioniert dies so nicht. Gleiches habe ich aber bereits mit der alten Variante in der Bootstrap.php umgesetzt:

public function install(){

        $this->subscribeEvent(
            'Enlight_Controller_Action_PostDispatchSecure_Frontend_Detail',
            'onActionPostDispatchFrontendDetail'
        );

        $form = $this->Form();
        $form->setElement('textarea', 'infotext', 
            array(
                'label' => 'Info Text',
                'description' => 'Fügt einen Infotext zu den Preis auf Anfrage Produkten hinzu'
            )
        );

        return true;
    }

    protected function getInfoText() {
      $infotext = $this->Config()->get('infotext');
    }

    public function onActionPostDispatchFrontendDetail(Enlight_Event_EventArgs $args){
        $view = $args->getSubject()->View();
        $view->addTemplateDir($this->Path().'Views/');
        //$view->extendsTemplate('frontend/detail/index.tpl');
          $view->assign('infotext', $this->Config()->get('infotext',string));
    }

 

Wie bekomme ich dies jetzt mit der neuen Shopware Plugin-entwicklung umgesetzt. Bin hier echt schon am verzeifeln und die Doku von Shopware dafür ist überhaupt nicht Hilfreich.
Bin für jede Hilfe dankbar.

Habe es mittlerweile hinbekommen :slight_smile:

Problem hier war eifnach nur das im Theme ebenfalls die advanced_menu.tpl überschreiben wurde. Ich dachte das das Plugin stärker greift was aber nciht der Fall war.

Habe die datei aus dem Theme gelöscht und alles hat funktiopniert.

 

du hättest auch in der Theme.php

protected $injectBeforePlugins = true;

ergänzen können.

1 „Gefällt mir“