2012-02-03 127 views
0

我有一個模塊,增加了代碼的小piiece到指定的靜態塊 - 這意味着有2個過濾器:Magento活動。捕捉靜態塊渲染或指定塊渲染

  1. 靜態塊只
  2. 只是其中的一部分,其被指定。

當前我有一個觀察者,它捕獲abstract_html_after事件並檢查它是否是靜態塊,以及此塊是否在指定的塊列表中。如果是這樣的話,它會添加這個小的HTML插件到塊中。

問題是:這個algorythm可怕地減慢系統。

什麼可能是解決方案?

回答

1

當前沒有可用於縮小事件範圍的CMS塊特定事件。
您甚至不能使用cms/block模型上的cms_block_load_after事件來做到這一點,因爲在Mage_Cms_Model_Block中沒有設置$_eventPrefix,所以您被卡在core_abstract_load_after中。

唯一的解決方案是重寫cms/block塊或模型類,並在其中派發自定義事件,或者直接在重寫的類中添加您的內容。

+0

什麼是最好的選擇?要重寫類或實現額外的觀察者將觸發cms_block事件?在兩種方式中,我必須檢查這是cms塊還是其他塊。 – 2012-02-07 09:21:11

+0

實現一個額外的觀察者也需要重寫。我想我會重寫cms/block模型類,如果它是針對特定項目的。 – Vinai 2012-02-07 12:58:52

+0

事情是這是模塊的重要組成部分。爲什麼更多的觀察者正在重寫? – 2012-02-07 13:08:05