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>

左側のデフォルトのニュースレターを削除してから、ニュースレター ブロックを作成します。機能しますが、左側のニュースレター ブロックのみを置き換えます。ブロックが content や right などの他の参照にある場合でも、サイト全体で 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 に答える