0

我创建了我的自定义块,它应该替换现有的 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,即使该块在其他引用中,如内容或权利等。我该怎么办?

4

1 回答 1

2

如果您想Mage_Newsletter_Block_Subscribe用自己的 block替换每次出现的 ,请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.

于 2013-03-13T15:18:46.983 回答