如何替换整个站点上的块。 Magento的

时间:2013-03-13 14:28:06

标签: magento

我创建了自定义块,它应该替换现有的Magento块。 想要在整个网站上用我的块替换现有的Magento块,独立地在页面和现有Magento块存在的地方。应该参考什么? 其实我有这样的事情:

<default>
<reference name="left">
    <remove name="left.newsletter" />
        <block type="newsletter/subscribe" name="newsletter" after="-" template="mynewsletter/subscribe.phtml"/>
</reference>
</default>

我删除了左侧的默认新闻稿,然后创建我的简报块。它有效,但只替换左侧的时事通讯块。想在整个网站上使用我的块代替left.newsletter,即使该块在其他参考文献中如内容或正确等。我该怎么办?

1 个答案:

答案 0 :(得分:2)

如果要用自己的块Mage_Newsletter_Block_Subscribe替换My_Module_Block_Subscribe的每个出现,请使用类重写。在您的模块 config.xml

<global>
    <blocks>
        <newsletter>
            <rewrite>
                <subscribe>My_Module_Block_Subscribe</subscribe>
            </rewrite>
        </newsletter>
    </block>
</global>

但是根据您的代码判断,您实际上没有自定义块,只有自定义模板。您可以使用core_block_tohtml_before事件的观察者更改模板,如果其类为setTemplate('mynewsletter/subscribe.phtml'),则会在块上调用Mage_Newsletter_Block_Subscribe