我试图扩展第三方Magento扩展的类。
我的模块xml:
在config> modules>中标签
<EDPA_MegaNavigation>
<active>true</active>
<codePool>local</codePool>
<depends>
<Infortis_UltraMegamenu />
</depends>
</EDPA_MegaNavigation>
我的配置xml:
在config&gt; global&gt; blocks&gt;中标签
<ultramegamenu>
<rewrite>
<Infortis_UltraMegamenu_Block_Navigation>EDPA_MegaNavigation_Block_Navigation</Infortis_UltraMegamenu_Block_Navigation>
</rewrite>
</ultramegamenu>
我的扩展课程(Navigation.php)
class EDPA_MegaNavigation_Block_Navigation extends Infortis_UltraMegamenu_Block_Navigation
{
########
}
在系统&gt;配置&gt;高级EDPA_MegaNavigation列出并显示为已启用。
我的目标navigation.php在Infortis&gt; UltraMegamenu&gt; Block中没有被重写。
非常感谢任何帮助/指导。
答案 0 :(得分:4)
这里的问题在
如果Infortis Ultra Mega菜单模块块标签是ultramegamenu
那么
<ultramegamenu>
<rewrite>
<navigation>EDPA_MegaNavigation_Block_Navigation</navigation>
</rewrite>
</ultramegamenu>
答案 1 :(得分:0)
您的<rewrite>
看起来没有正确设置,它应该引用另一个配置节点而不是直接类名。检查UltraMegamenu的config.xml
以从中获取节点。
e.g。如果UltraMegamenu设置如下:
<blocks>
<ultramegamenu>
<class>Infortis_UltraMegamenu_Block_Navigation</class>
</ultramegamenu>
</blocks>
然后你的重写子节点将是“ultramegamenu”而不是类名。