Magento配置XML以将控制器操作添加到核心管理员控制器

时间:2010-04-29 21:10:06

标签: magento

我正在尝试通过在本地模块中扩展自定义操作来为核心控制器添加自定义操作。下面我有类定义,它位于magento1_3_2_2 / app / code / local / MyCompany / MyModule / controllers / Catalog / ProductController.php

class MyCompany_MyModule_Catalog_ProductController extends Mage_Adminhtml_Catalog_ProductController                                                                                                                                                                                
{                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
  public function massAttributeSetAction(){
    ...
  }
}

这是我的配置文件 magento1_3_2_2 /应用程序/代码/本地/ MyCompany的/ MyModule的在/ etc / config.xml中:

...
<global>
    <rewrite>                                                                                                                                                                                                                                                             
        <mycompany_mymodule_catalog_product>                                                                                                                                                                                                                                   
            <from><![CDATA[#^/catalog_product/massAttributeSet/#]]></from>                                                                                                                                                                                              
            <to>/mymodule/catalog_product/massAttributeSet/</to>                                                                                                                                                                                                           
        </mycompany_mymodule_catalog_product>                                                                                                                                                                                                                                  
    </rewrite>

    <admin>                                                                                                                                                                                                                                                                   
        <routers>                                                                                                                                                                                                                                                               
            <MyCompany_MyModule>                                                                                                                                                                                                                                                       
                <use>admin</use>                                                                                                                                                                                                                                                    
                <args>                                                                                                                                                                                                                                                              
                    <module>MyCompany_MyModule</module>                                                                                                                                                                                                                                    
                    <frontName>MyModule</frontName>                                                                                                                                                                                                                                      
                </args>                                                                                                                                                                                                                                                             
            </MyCompany_MyModule>                                                                                                                                                                                                                                                      
        </routers>                                                                                                                                                                                                                                                              
    </admin>
</global>
...

但是,https://example.com/index.php/admin/catalog_product/massAttributeSet/只会产生一个管理员404页面。我知道模块处于活动状态 - 其他代码执行正常。我觉得这只是我的xml语法的一个问题。我是否会写这种写作方式?我犹豫不决,因为我实际上并没有重写控制器方法......我完全添加了一个。但是,它确实有意义,原始管理员网址不会响应该操作名称,并且需要重定向。

我正在使用Magento 1.3.2.2

感谢您提供任何指导。

1 个答案:

答案 0 :(得分:2)

我目前无法访问我的Magento安装程序,但会弹出两件事

首先,你的写规则

[#^/catalog_product/massAttributeSet/]

说“匹配任何以/ catalog_product开头的网址”并且您的问题表明您要匹配以/ admin / catalog_product开头的网址。

其次,如果您使用1.3+,请考虑跳过URL重写方法并尝试a "real" controller override