2012-04-19 30 views
2

我尝试在一个模块中覆盖2个控制器。这些都是Checkout控制器。 - OnepageController - CartController覆盖CartController和OnepageController

我的购物车控制器工作。但是我的onepage控制器不会覆盖。是否可以覆盖2个文件?

我的文件:

WP/Ajaxcart的/ etc/config.xml中

<?xml version="1.0"?> 
<config> 
    <modules> 
     <WP_Ajaxcart> 
      <version>0.1.0</version> 
     </WP_Ajaxcart> 
    </modules> 
    <frontend> 
     <routers> 
      <checkout> 
       <use>standard</use> 
       <args> 
        <modules> 
         <WP_Ajaxcart before="Mage_Checkout">WP_Ajaxcart</WP_Ajaxcart> 
        </modules> 
       </args> 
      </checkout> 
     </routers> 
    </frontend> 
</config> 

WP/Ajaxcart /控制器/ OnepageController.php

<?php 

require_once "Mage/Checkout/controllers/OnepageController.php"; 
class WP_Ajaxcart_Checkout_OnepageController extends Mage_Checkout_OnepageController 
{ 

    public function successAction() 
    { 

     $session = $this->getOnepage()->getCheckout(); 

     if (!$session->getLastSuccessQuoteId()) { 
      $this->_redirect('checkout/cart'); 
      return; 
     } 

     $lastQuoteId = $session->getLastQuoteId(); 
     $lastOrderId = $session->getLastOrderId(); 
     $lastRecurringProfiles = $session->getLastRecurringProfileIds(); 
     if (!$lastQuoteId || (!$lastOrderId && empty($lastRecurringProfiles))) { 
      $this->_redirect('checkout/cart'); 
      return; 
     } 
     echo 'Do something else'; 
     //$session->clear(); 
     $this->loadLayout(); 
     $this->_initLayoutMessages('checkout/session'); 
     Mage::dispatchEvent('checkout_onepage_controller_success_action', array('order_ids' => array($lastOrderId))); 
     $this->renderLayout(); 
    } 

} 

WP/Ajaxcart/controllers/CartController.php

<?php 

require_once "Mage/Checkout/controllers/CartController.php"; 
class WP_Ajaxcart_Checkout_CartController extends Mage_Checkout_CartController 
{ 

    public function addAction() 
    { 
     echo 'test'; 
    } 

} 

我有人不明白为什么它不覆盖OnepageController.php。

谢谢。

莱克斯

+0

是文件中找到准确的'WP/Ajaxcart /控制器/ OnepageController.php'?如果是,移动到'WP/Ajaxcart/controllers/Checkout/OnepageController.php' – 2012-04-19 11:53:13

+0

错误类型,但它仍然不起作用。我有编辑帖子 – Lexperts 2012-04-19 12:31:26

回答

2

尝试

<WP_Ajaxcart_Checkout before="Mage_Checkout">WP_Ajaxcart_Checkout</WP_Ajaxcart_Checkout> 
+0

这解决了我的问题。非常感谢你! – Lexperts 2012-04-20 07:55:32