我正在尝试覆盖一个社区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块和模型
本地控制器从未被调用过,我尝试了很多方法,但都没有结果
非常感谢您的帮助
发布于 2015-03-04 16:44:49
您的本地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注意类名中的"CoolController“部分。
此外,在您的NameSpaceB_ModuleB_Adminhtml_CoolController类中,您必须要求扩展类并对其进行扩展:
require_once "NameSpaceA/ModuleA/Adminhtml/CoolController.php";
class NameSpaceB_ModuleB_Adminhtml_CoolController
extends NameSpaceA_ModuleA_Adminhtml_CoolController {
/* your code*/
}https://stackoverflow.com/questions/26725336
复制相似问题