2014-11-03 109 views
0

我试图重写社区Adminhtml控制器,它已经覆盖“Mage_Adminhtml”覆盖的重写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

您当地的config.xml文件应该是这样的:

... 
<admin> 
<routers> 
    ... 
    <adminhtml> 
    <args> 
    <modules> 
     <NameSpaceB_ModuleB before="Mage_Adminhtml">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*/ 

}