是否可以覆盖Enterprise Banner包?我想要重写的类在\app\code\core\Enterprise\Banner\Block\Widget\Banner.php中
这是我的config.xml的一部分:
<blocks>
<Mycomp_Banners>
<class>Mycomp_Banners_Block</class>
</Mycomp_Banners>
<widget>
<rewrite>
<banners>Mycomp_Banners_Block_Widget_Banners</banners>
</rewrite>
</widget>
</blocks>我的文件在:\app\code\local\Mycomp\Banners\Block\Widget\Banners.php
class Mycomp_Banners_Block_Widget_Banners extends Enterprise_Banner_Block_Widget_Banner {
// ...
}我试过了,但对我不起作用。
发布于 2015-10-02 04:36:26
为了重写一个块(但也可以应用于具有不同行为的帮助器和模型、控制器),您必须模仿它们在自己的模块的config.xml中定义的方式
因此,在Enterprise_Banner的config.xml中,块是这样定义的:
<?xml version="1.0"?>
<config>
<modules>
<Enterprise_Banner>
<version>1.11.0.0</version>
</Enterprise_Banner>
</modules>
<global>
<!-- nodes we don't care about -->
<blocks>
<enterprise_banner>
<class>Enterprise_Banner_Block</class>
</enterprise_banner>
</blocks>
<!-- more nodes we don't care about -->
</global>
<!-- still more nodes we don't care about -->
</config>所以你应该模仿这个块的定义,但是Magento实际上定义了类在哪里,你实际上必须定义你想重写什么,以及它将在哪里。
所以你的config.xml应该是这样的:
<?xml version="1.0"?>
<config>
<modules>
<Mycomp_Banners>
<version>0.0.0.1</version>
</Mycomp_Banners>
</modules>
<global>
<blocks>
<enterprise_banner>
<rewrite>
<widget_banner>Mycomp_Banners_Block_Widget_Banners</widget_banner>
<rewrite>
</enterprise_banner>
</blocks>
</global>
</config>https://stackoverflow.com/questions/32895468
复制相似问题