覆盖已经存在的magento模块adminhtml块
问题描述:
我试图在Amasty shopby模块中添加一个更多的自定义字段。为此,我需要重写adminhtml表单。我为此创建了模块,但不覆盖现有模块。我必须重写“Amasty_Shopby_Block_Adminhtml_Filter_Edit_Tab_General”类。 这是我的代码。覆盖已经存在的magento模块adminhtml块
Mycompany_Mymodule.xml
<?xml version="1.0"?>
<config>
<modules>
<Mycompany_Mymodule>
<active>true</active>
<codePool>local</codePool>
<depends>
<Amasty_Shopby />
<Amasty_Base />
</depends>
</Mycompany_Mymodule>
</modules>
</config>
MyCompany的/ Mymodule中的/ etc/config.xml中
<config>
_____________
______________
<global>
<blocks>
<adminhtml>
<rewrite> <filter_edit_tab_general>Mycompany_Mymodule_Block_Adminhtml_Filter_Edit_Tab_General
</filter_edit_tab_general>
</rewrite>
</adminhtml>
</blocks>
</global>
____________
-________________
</config>
MyCompany的\ Mymodule中\块\ Adminhtml \筛选\编辑\标签\ General.php
public class Mycompany_Mymodule_Block_Adminhtml_Filter_Edit_Tab_General extends Amasty_Shopby_Block_Adminhtml_Filter_Edit_Tab_General
{
_______________
___________
}
答
你现在想要覆盖的不是Amasty块,但是adminhtml/filter_e dit_tab_general。因此改写,你需要以下配置Amasty_Shopby_Block_Adminhtml_Filter_Edit_Tab_General:
<global>
<blocks>
<amshopby>
<rewrite>
<adminhtml_filter_edit_tab_general>Mycompany_Mymodule_Block_Adminhtml_Filter_Edit_Tab_General</adminhtml_filter_edit_tab_general>
</rewrite>
</amshopby>
</blocks>
</global>
哇。谢谢。它的作品:) – Palanikumar 2013-05-02 13:49:03
正如你所说,我试图重写一个表单“Amasty_Shopby_Block_Adminhtml_Page_Edit_Form”。但无法重写。在重写的xml文件中,我添加了这一行。 Mycompany_Mymodule_Block_Adminhtml_Page_Edit_Form adminhtml_page_edit_form> –
Palanikumar
2013-05-04 08:49:11
该行本身看起来不错。你是把它放在还是外面?它应该在你的adminhtml_filter_edit_tab_general行的正下方。 另外它取决于这个Amasty_Shopby_Block_Adminhtml_Page_Edit_Form是否是原始块,或者它覆盖了一些核心块。如果它不是原创的,那么您必须从Amasty config.xml中删除该重写,然后在您的扩展中重写该核心块。 –
2013-05-04 10:24:11