Magento覆盖了enterpirse banner

时间:2015-10-01 19:33:35

标签: magento

是否可以覆盖企业横幅包? 我要覆盖的类是在 \应用\代码\核心\企业\横幅\块\的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 {   
    // ... 
}

我尝试了这个,但它对我不起作用。我很感激任何答案。 感谢

1 个答案:

答案 0 :(得分:1)

为了重写一个块(但也可以应用于Helpers和Models,具有不同行为的控制器),你必须模仿它们在自己模块中定义的方式config.xml

所以在config.xml的{​​{1}}中,块的定义方式如下:

Enterprise_Banner

所以你应该模仿这个块的定义,但是Magento实际上定义了的位置,你实际上必须定义你想要重写的内容以及它的位置。

所以你的<?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> 应该是这样的:

config.xml