public function install() {
$this->subscribeEvent(
'Enlight_Controller_Action_PostDispatchSecure_Frontend',
'onFrontendPostDispatch',
0
);
return array('success' => true, 'invalidateCache' => array('frontend'));
}
public function onFrontendPostDispatch(\Enlight_Event_EventArgs $args)
{
/** @var \Enlight_Controller_Action $controller */
$controller = $args->get('subject');
$view = $controller->View();
$view->addTemplateDir(
__DIR__ . '/Views'
);
}
我曾试图运行插件并覆盖模板,但Shopware没有看到插件中的更改。
我正在插件根目录/Views/frontend/checkout/cart_footer.tpl
中创建新文件。
我也插入
{extends file='parent:frontend/checkout/cart_footer.tpl'}
在.tpl文件中排队,但仍然没有成功。
有人知道问题出在哪里吗?
答案 0 :(得分:0)
这很容易
我只需添加一行
$view->loadTemplate('frontend/plugins/checkout/cart.tpl');
稍微改变代码。
我正在从 Enlight_Controller_Action_PostDispatchSecure_Frontend
更改活动
的 Enlight_Controller_Action_PostDispatch_Frontend_Checkout
强>
并添加 $view->loadTemplate('frontend/plugins/checkout/cart.tpl');
此路径与 "/Views"
文件夹相关,该文件夹在 addTemplateDir
方法中声明。
贝娄是完整的代码,享受:)
public function install() {
$this->subscribeEvent(
'Enlight_Controller_Action_PostDispatch_Frontend_Checkout',
'onFrontendPostDispatch'
);
return array('success' => true, 'invalidateCache' => array('frontend'));
}
public function onFrontendPostDispatch(\Enlight_Event_EventArgs $args)
{
/** @var \Enlight_Controller_Action $controller */
$controller = $args->get('subject');
$view = $controller->View();
$view->addTemplateDir(
__DIR__ . '/Views'
);
$view->loadTemplate('frontend/plugins/checkout/cart.tpl');
}