2014-11-03 179 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*/ 

}