我正在尝试通过在本地模块中扩展自定义操作来为核心控制器添加自定义操作。下面我有类定义,它位于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
感谢您提供任何指导。
答案 0 :(得分:2)
我目前无法访问我的Magento安装程序,但会弹出两件事
首先,你的写规则
[#^/catalog_product/massAttributeSet/]
说“匹配任何以/ catalog_product开头的网址”并且您的问题表明您要匹配以/ admin / catalog_product开头的网址。
其次,如果您使用1.3+,请考虑跳过URL重写方法并尝试a "real" controller override。