2017-08-31 9 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' 
    ); 
} 

私はプラグインを実行してTemplateを上書きしようとしましたが、Shopwareはプラグインの変更を見ませんでした。Shopware 4のテンプレートをプラグインからオーバーライドする

プラグインのルートに新しいファイル/Views/frontend/checkout/cart_footer.tplを作成しています。

私はまた

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

の.tplファイルの行が、まだありません成功を挿入します。

どこに問題があるのか​​知っていますか?

答えて

0

これは私がちょうど1行

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

を追加し、コードを少し変更

非常に簡単でした。

私は Enlight_Controller_Action_PostDispatch_Frontend_Checkout

Enlight_Controller_Action_PostDispatchSecure_Frontendから変更イベントだとこのパスは、addTemplateDir方法で宣言されている"/Views"フォルダから関連している$view->loadTemplate('frontend/plugins/checkout/cart.tpl'); を追加します。

ベローは、全体のコードは、お楽しみください:)

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'); 
} 
です
関連する問題