我试图覆盖: - Mage_Eav_Block_Adminhtml_Attribute_Edit_Options_Abstract - Mage_Adminhtml_Block_Catalog_Product_Attribute_Edit_Tab_Options扩展了第一个
在config.xml中我有:
<config>
<global>
<blocks>
....
<eav>
<rewrite>
<adminthml_attribute_edit_options_abstract>
Mymodule_Block_Adminhtml_Attribute_Edit_Options_Abstract
</adminthml_attribute_edit_options_abstract>
</rewrite>
</eav>
<adminhtml>
<rewrite>
<catalog_product_attribute_edit_tab>
Mymodule_Adminhtml_Block_Catalog_Product_Attribute_Edit_Tab_Options
</catalog_product_attribute_edit_tab>
</rewrite>
</adminhtml>
</blocks>
....
</global>
</config>
然后在:code / local / Mymodule / Adminhtml / Block / Catalog / Product / Attribute / Edit / Tab / Options.php:
class Mymodule_Adminhtml_Block_Catalog_Product_Attribute_Edit_Tab_Options
extends Mymodule_Eav_Block_Adminhtml_Attribute_Edit_Options_Abstract
{
}
并在: 代码/本地/ Mymodule中/ EAV /砌块/ Adminhtml /属性/编辑/选项/ Abstract.php:
abstract class Mymodule_Eav_Block_Adminhtml_Attribute_Edit_Options_Abstract
extends Mage_Adminhtml_Block_Widget
{
....(code)...
}
但这两个似乎没有加载。有人可以帮忙吗?
答案 0 :(得分:1)
您只能重写实例化的具体类。重写实际上将createBlock()
(或getModel()
,helper()
等)中使用的类别名映射到类名。抽象类永远不会像这样解决。
如果确实需要在那里进行更改,您有两种选择:
app/local/Mage
并进行修改。这样,自动加载器就会优先于核心类。它必须是具有相同类名的完整副本。请注意,这被视为不良做法并降低了可维护性,但在像您这样的情况下可能是不可避免的