Hallo zusammen,
ich möchte das Template für die Artikel-Box im Artikel-Widet und Artikel-Slider-Widget der Einkaufswelt um ein paar eigene Daten / Felder erweitern.
Im Plugin habe dazu versucht, auf folgende Events zu lauschen:
public static function getSubscribedEvents()
{
return [
'Enlight_Controller_Action_PostDispatch' => 'onPostDispatch',
'Enlight_Controller_Action_PostDispatchSecure_Backend_Emotion' => 'onPostDispatchEmotion',
'Shopware_Controllers_Widgets_Listing_fetchListing_preFetch' => 'onAjaxListing',
'Shopware_Controllers_Widgets_Emotion::indexAction::after' => 'onAjaxListingWidget',
'Shopware_Controllers_Widgets_Emotion::emotionArticleSliderAction::after' => 'onAjaxListingSlider',
'Shopware_Controllers_Widgets_Emotion::productStreamArticleSliderAction::after' => 'onAjaxListingWidget',
'Enlight_Controller_Action_PostDispatchSecure_Frontend_Detail' => 'onFrontendPostDetail',
'Enlight_Controller_Action_PreDispatch_Frontend' => 'onAjaxListing',
'Enlight_Controller_Action_PreDispatch_Widgets' => 'onAjaxListing'
];
}
Leider ist es mir nicht gelungen, das Template-System dazu zu bringen, die Templates aus dem Plugin zu übernehmen, z.B. mit folgenden Methoden:
public function onPostDispatchEmotion(\Enlight_Controller_ActionEventArgs $args)
{
/** @var \Enlight_Controller_Action $controller */
$controller = $args->get('subject');
$view = $controller->View();
$view->addTemplateDir($this->pluginDirectory . '/Resources/views');
$view->extendsTemplate('frontend/widgets/emotion/components/component_article_slider.tpl' );
}
public function onAjaxListingWidget(\Enlight_Hook_HookArgs $args)
{
/** @var \Enlight_Controller_Action $controller */
$controller = $args->getSubject();
$view = $controller->View();
$view->addTemplateDir($this->pluginDirectory . '/Resources/views');
$view->extendsTemplate('frontend/widgets/emotion/components/component_article.tpl' );
}
Weiss jemand, wie das funktionieren soll, dass man mit einem Plugin das Erscheinungsbild der vorhandenen Widgets verändert?