我管理創建一個自定義塊,它顯示隨機數據,如霜和字母/數字如何在Magento中打孔產品相關列表的塊?
但是,這是測試瞭解在Magento中創建塊的過程。
然後我試圖從該塊切換,創造了另一個塊,而不是從Mage_Core_Block_Template
延長,我更改爲使用Enterprise_TargetRule_Block_Catalog_Product_List_Related
,因爲我的目標是有相關的產品是動態的,我指着我的cache.xml
這個新塊。
我在相關的列表框類放在Mage::log
知道什麼時候這就是所謂的,我可以看到它被調用一次,然後被緩存。
對於我的生活,我不能讓它工作,這是我的代碼,請指教。
注:重寫還有另一個獨立的目的,並且實際上我的日誌行代碼在該部分之下方法設置:public function getProductIds($object)
Lg/Hole/etc/config.xml
<config>
<modules>
<Lg_Hole>
<version>0.0.1</version>
</Lg_Hole>
</modules>
<global>
<blocks>
<lg_hole>
<class>Lg_Hole_Block</class>
</lg_hole>
</blocks>
<models>
<lg_hole>
<class>Lg_Hole_Model</class>
</lg_hole>
<enterprise_targetrule_resource>
<rewrite>
<index>Lg_Hole_Model_Mymodel</index>
</rewrite>
</enterprise_targetrule_resource>
</models>
</global>
</config>
Lg/Hole/etc/cache.xml
<config>
<placeholders>
<lg_hole>
<block>lg_hole/related</block>
<name>hole_view_example</name>
<placeholder>CACHE_TEST</placeholder>
<container>Lg_Hole_Model_Cachetest</container>
<cache_lifetime>86400</cache_lifetime>
</lg_hole>
</placeholders>
</config>
Lg/Hole/Model/Cachetest.php
class Lg_Hole_Model_Cachetest extends
Enterprise_PageCache_Model_Container_Abstract {
protected function _getCacheId()
{
return 'HOMEPAGE_PRODUCTS' . md5($this->_placeholder->getAttribute('cache_id'));
}
protected function _renderBlock()
{
$blockClass = $this->_placeholder->getAttribute('block');
$template = $this->_placeholder->getAttribute('template');
$block = new $blockClass;
$block->setTemplate($template);
return $block->toHtml();
}
protected function _saveCache($data, $id, $tags = array(), $lifetime = null) {
return false;
}
public function applyWithoutApp(&$content)
{
return false;
}
}
Lg/Hole/Block/Related.php
class Lg_Hole_Block_Related extends Enterprise_TargetRule_Block_Catalog_Product_List_Related
{
}
謝謝回答,其實這是一個商品詳細頁上正常的相關列表,所以不是真的想另起爐竈,我只是長時間思考它可能是更容易地在自己的模塊中的打孔的塊,而不是衝一個指向核心/企業文件的漏洞,如果不需要擴展我明白,我只需要這個正常的「相關項目塊」在任何時候都不在緩存中。 在理解這個塊的問候包含它自己的邏輯,是我做的其實和必須實現對項目的一些條件,我的工作(這使我需要它的緩存) –
好吧,如果你真的需要把它從緩存中'_saveCache()'你的容器的方法應該工作 –
你嘗試不FPC激活一個簡單的'返回FALSE'了嗎?你確定你的街區沒有它嗎? –