2017-08-31 49 views
0
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未在插件中看到更改。从插件中覆盖Shopware 4中的模板

我在plugins root中创建/Views/frontend/checkout/cart_footer.tpl中的新文件。

我也插入.tpl文件

{extends file='parent:frontend/checkout/cart_footer.tpl'} 

线,但仍然没有成功。

是否有人知道问题在哪里?

回答

0

这是很容易

我再补充一条线

$view->loadTemplate('frontend/plugins/checkout/cart.tpl'); 

而变化码点点。

我更改事件从Enlight_Controller_Action_PostDispatchSecure_FrontendEnlight_Controller_Action_PostDispatch_Frontend_Checkout

,并添加$view->loadTemplate('frontend/plugins/checkout/cart.tpl'); 此路径有不同于addTemplateDir方法声明"/Views"文件夹有关。

贝娄是整个代码,享受:)

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'); 
}