首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重写重写的Adminhtml控制器

重写重写的Adminhtml控制器
EN

Stack Overflow用户
提问于 2014-11-04 07:45:05
回答 1查看 300关注 0票数 0

我正在尝试覆盖一个社区Adminhtml控制器,它覆盖了已经"Mage_Adminhtml“

具有第一个覆盖的社区模块A

代码语言:javascript
复制
...
<admin>
 <routers>
  ...
   <adminhtml>
    <args>
     <modules>
      <ModuleA before="Mage_Adminhtml">NameSpaceA_ModuleA_Adminhtml</ModuleA>
     </modules>
    </args>
   </adminhtml>
 </routers>
</admin>
...

我想做些改变,所以..本地模块B

代码语言:javascript
复制
...
<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块和模型

本地控制器从未被调用过,我尝试了很多方法,但都没有结果

非常感谢您的帮助

EN

回答 1

Stack Overflow用户

发布于 2015-03-04 16:44:49

您的本地config.xml应该是这样的:

代码语言:javascript
复制
...
<admin>
 <routers>
  ...
   <adminhtml>
    <args>
     <modules>
      <NameSpaceB_ModuleB before="NameSpaceA_ModuleA">NameSpaceB_ModuleB_Adminhtml</NameSpaceB_ModuleB>
     </modules>
    </args>
   </adminhtml>
 </routers>
</admin>
...

然后,您应该将您的控制器类命名为类似于扩展控制器类的名称。下面是一个例子。

扩展类:

代码语言:javascript
复制
NameSpaceA_ModuleA_Adminhtml_CoolController

扩展类(你的控制器):

代码语言:javascript
复制
NameSpaceB_ModuleB_Adminhtml_CoolController

注意类名中的"CoolController“部分。

此外,在您的NameSpaceB_ModuleB_Adminhtml_CoolController类中,您必须要求扩展类并对其进行扩展:

代码语言:javascript
复制
require_once "NameSpaceA/ModuleA/Adminhtml/CoolController.php";

class NameSpaceB_ModuleB_Adminhtml_CoolController 
    extends NameSpaceA_ModuleA_Adminhtml_CoolController {

    /* your code*/

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26725336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档