1

所以我试图覆盖核心 CustomerController massDelete 操作。这是我到目前为止所拥有的:

config.xml

<frontend>
  <routers>
    <customer_massdelete>
      <args>
        <modules>
          <MyModule_MyExtension before="Mage_Adminhtml">MyModule_MyExtension</MyModule_MyExtension>
        </modules>
      </args>
    </customer_massdelete>
  </routers>
</frontend>

我的控制器:

app/code/local/MyModule/MyExtension/controllers/CustomerController.php

<?php
require_once 'Mage/Adminhtml/controllers/CustomerController.php';
class MyModule_MyExtension_CustomerController extends Mage_Adminhtml_CustomerController {
  public function massDeleteAction() { 
   die('my controller');
  }
}

然而,当我运行大量删除时,我放入他们的控制器中的骰子会运行。有任何想法吗?

更新:

尝试解决方案如下:

<config>
  <admin>
    <routers>
      <adminhtml>          
        <args>
          <modules>
            <MyModule_MyExtension before="Mage_Adminhtml">MyModule_MyExtension</MyModule_MyExtension>
          </modules>
        </args>
      </adminhtml>
    </routers>
  </admin>
</config>

依然没有...

更新 2:

我最终的 config.xml 是这样的:

<config>
  <admin>
    <routers>
      <adminhtml>      
        <args>
          <modules>
            <Mymodule_Myextension before="Mage_XmlConnect_Adminhtml">Mymodule_Myextension</Mymodule_Myextension>
          </modules>
        </args>      
      </adminhtml>
    </routers>
  </admin>
</config>

但是,如果我之前有 =“Mage_XmlConnect_Adminhtml”,那么在尝试访问大多数索引页面时会遇到一些覆盖问题。但是,如果我的优先级降低,它不会覆盖。所以我又被困住了。

4

2 回答 2

0

所以经过大量研究,我终于弄清楚了这个问题。我的问题是before="Mage_Adminhtml"in config.xml。由于企业的工作方式,覆盖顶级类是不够的。

我曾经print_r(Mage::getConfig()->getNode('admin/routers/adminhtml'), true)找出所有覆盖它的模块并通过列表工作。Mage_XmlConnect_Adminhtml是在企业方法之前覆盖此方法的最后一个类。

我最终的 config.xml 是这样的:

<config>
  <admin>
    <routers>
      <adminhtml>      
        <args>
          <modules>
            <Mymodule_Myextensionbefore="Mage_XmlConnect_Adminhtml">Mymodule_Myextension</Mymodule_Myextension>
          </modules>
        </args>      
      </adminhtml>
    </routers>
  </admin>
</config>

它现在完美运行(编辑:不,它没有......见下面的评论)

于 2013-05-15T13:05:46.900 回答
0

我猜你的 config.xml 是假的,你可以试试:

<admin>
   <routers>
      <adminhtml>
         <args>
           <modules>
             <MyModule_MyExtension before="Mage_Adminhtml">MyModule_MyExtension</MyModule_MyExtension>
           </modules>
         </args>
      </adminhtml>
   </routers>
</admin>

参考: http: //prattski.com/2010/06/24/magento-overriding-core-files-blocks-models-resources-controllers/

于 2013-05-10T14:06:21.917 回答