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.