我试图覆盖已经覆盖的社区Adminhtml控制器" Mage_Adminhtml"
具有第一次覆盖的社区模块A
...
<admin>
<routers>
...
<adminhtml>
<args>
<modules>
<ModuleA before="Mage_Adminhtml">NameSpaceA_ModuleA_Adminhtml</ModuleA>
</modules>
</args>
</adminhtml>
</routers>
</admin>
...
我想做一些改动,所以...... 本地模块B
...
<admin>
<routers>
...
<adminhtml>
<args>
<modules>
<NameSpaceB_ModuleB before="NameSpaceA_ModuleA_Adminhtml">NameSpaceB_ModuleB_Adminhtml</NameSpaceB_ModuleB>
</modules>
</args>
</adminhtml>
</routers>
</admin>
...
本地模块B依赖于模块A(<depends>
标签),缓存关闭
使用了本地模块B,我已经覆盖了一些Adminhtml块和模型
永远不会调用本地控制器,我尝试了很多但没有结果
非常感谢您的帮助
答案 0 :(得分:0)
您的本地config.xml应该是这样的:
...
<admin>
<routers>
...
<adminhtml>
<args>
<modules>
<NameSpaceB_ModuleB before="NameSpaceA_ModuleA">NameSpaceB_ModuleB_Adminhtml</NameSpaceB_ModuleB>
</modules>
</args>
</adminhtml>
</routers>
</admin>
...
然后,您应该将您的控制器类命名为扩展控制器类。这是一个例子。
扩展课程:
NameSpaceA_ModuleA_Adminhtml_CoolController
扩展类(您的控制器):
NameSpaceB_ModuleB_Adminhtml_CoolController
注意&#34; CoolController&#34;类名的一部分。
此外,在NameSpaceB_ModuleB_Adminhtml_CoolController类中,您必须要求扩展类并对其进行扩展:
require_once "NameSpaceA/ModuleA/Adminhtml/CoolController.php";
class NameSpaceB_ModuleB_Adminhtml_CoolController
extends NameSpaceA_ModuleA_Adminhtml_CoolController {
/* your code*/
}