2013-03-13 32 views
0

我創建了我的自定義塊,它應該替換現有的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,即使該廣告位在其他參考資料(如內容或權利等)中。我應該怎麼做?

回答

2

如果要用您自己的塊My_Module_Block_Subscribe替換Mage_Newsletter_Block_Subscribe的每個出現,請使用類重寫。在你的模塊config.xml中

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

但是,你的代碼來看,你居然沒有一個自定義的塊,只是一個自定義模板。您可以通過core_block_tohtml_before事件的觀察員更改該模板,該模板的類別爲Mage_Newsletter_Block_Subscribe時,該模塊將調用setTemplate('mynewsletter/subscribe.phtml')