2013-05-04 127 views
0

我尝试覆盖控制器/app/code/core/Mage/Customer/controllers/AccountController.php中的功能。覆盖帐户控制器

创建模块文件夹:

/app/code/local/Mandarin/SkipLogoutSuccess/etc/config.xml

<?xml version="1.0" encoding="UTF-8"?> 
<config> 
    <modules> 
     <Mandarin_SkipLogoutSuccess> 
      <version>0.1.0</version> 
     </Mandarin_SkipLogoutSuccess> 
    </modules> 

    <frontend> 
     <routers> 
      <checkout> 
       <args> 
        <modules> 
         <mandarin_skiplogoutsuccess before="Mage_Customer">Mandarin_SkipLogoutSuccess</mandarin_skiplogoutsuccess> 
        </modules> 
       </args> 
      </checkout> 
     </routers> 
    </frontend> 
</config> 

/app/code/local/Mandarin/SkipLogoutSuccess/controllers/AccountController.php

require_once 'Mage/Customer/controllers/AccountController.php'; 

class Mandarin_SkipLogoutSuccess_AccountController extends Mage_Customer_AccountController 
{ 
    public function logoutAction() 
    { 
     $this->_getSession()->logout()->setBeforeAuthUrl(Mage::getUrl()); 
     Mage::log("its Allive!", null, 'mygento.log'); 
     $this->_redirectUrl(Mage::getUrl()); 
    } 
} 

/应用/ etc/modules中/Mandarin_SkipLogoutSuccess.xml

<?xml version="1.0"?> 
<config> 
    <modules> 
     <Mandarin_SkipLogoutSuccess> 
       <active>true</active> 
       <codePool>local</codePool> 
     </Mandarin_SkipLogoutSuccess> 
    </modules> 
</config> 

当我运行logoutAction控制器是从核心使用。在我的日志文件中,我没有收到消息。 哪里可能是错误?

+0

我使用magento 1.7 – Derk153 2013-05-04 15:59:18

回答

1

我认为你做了一个复制粘贴错误:

在你的config.xml您引用的命名空间“<结账>”,但它应该是“<顾客>”(当然在结束标记过的)

1

在你的config.xml

<frontend> 
    <routers> 
     <customer> <!-- should be customer --> 

而且在Mandarin_SkipLogoutSuccess.xml

<?xml version="1.0"?> 
<config> 
    <modules> 
     <Mandarin_SkipLogoutSuccess> 
       <active>true</active> 
       <codePool>local</codePool> 
       <depends> 
        <Mage_Customer /> <!-- Make sure this is loaded first --> 
       </depends> 
     </Mandarin_SkipLogoutSuccess> 
    </modules> 
</config>