【问题标题】:Overriding Core admin controller in Magento 1.7 CE在 Magento 1.7 CE 中覆盖核心管理控制器
【发布时间】:2013-10-09 16:31:26
【问题描述】:

我正在尝试从核心 (Mage/Adminhtml/controllers/Sales/Order/InvoiceController) 覆盖控制器。

我在自定义模块的 config.xml 中的代码:

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

我的控制器文件位于:local/mycompany/mymodule/controllers/adminhtml/dueperiodcontroller.php

路由没有到达这里(仍然使用核心控制器)。

可能有一种方法可以使用 mycompany/adminhtml 作为模块并将所有内容都放在此处。 这行得通吗?

最好是对我已经做过的方式进行简单的修复。

【问题讨论】:

    标签: controller magento-1.7 admin


    【解决方案1】:
    1. module override xml应该在

    >

    <config>
        <admin>
              <routers>
                <adminhtml>
                    <args>
                        <modules>
                            <Mycompany_Mymodule before="Mage_Adminhtml">Mycompany_Mymodule_Adminhtml</Mycompany_Mymodule>
                        </modules>
                    </args>
                </adminhtml>
              </routers>
          </admin>
    </config>
    
    1. 将控制器文件放在相同的目录结构下,并应具有相同的名称 local/mycompany/mymodule/controllers/Adminhtml/Sales/Order/InvoiceController.php

    2. 使用类名如下

    >

    require_once 'Mage/Adminhtml/controllers/Sales/Order/InvoiceController';
    class mycompany_mymodule_Adminhtml_Sales_Order_InvoiceController extends Mage_Adminhtml_Sales_Order_InvoiceController
    

    【讨论】:

      猜你喜欢
      • 2016-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多