最模板 - 外贸网站建设,外贸网站模板

最模板

当前位置: 首页 > Magento > Magento教程 >

给Magento常用的Block添加缓存

时间:2014-06-21 13:04来源:未知 作者:最模板zuimoban 点击:
1、产品页面 修改文件:app\code\local\Mage\Catalog\Block\Product\View.php 在_prepareLayout方法前面添加方法: [php] view plaincopy protected function _construct() { $this -addData( array ( cache_lifetime =86400, cache_tags

1、产品页面

 

修改文件:app\code\local\Mage\Catalog\Block\Product\View.php
在_prepareLayout方法前面添加方法:
[php] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. protected function _construct()  
  2. {  
  3.     $this->addData(array(  
  4.        'cache_lifetime' => 86400,   
  5.        'cache_tags' => array(Mage_Catalog_Model_Product::CACHE_TAG . "_" . $this->getProduct()->getId()),  
  6.        'cache_key' => $this->getProduct()->getId(),  
  7.     ));  
  8. }  
这里使用catalog_product_productid使用cache_tags

 

 

2、分类页面
修改文件:app\code\local\Mage\Catalog\Block\Category\View.php
在_prepareLayout方法前面添加方法:
[php] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. protected function _construct()  
  2. {  
  3.         $this->addData(array(  
  4.               'cache_lifetime' => 86400,  
  5.               'cache_tags' => array($this->getCacheKeyInfo()),  
  6.               'cache_key' => $this->getCacheKeyInfo(),   
  7.         ));  
  8. }  
  9. public function getCacheKeyInfo(){  
  10.         $paging = '';  
  11.         $limit = '';  
  12.         $mode = '';  
  13.         $order = '';  
  14.         $productListBlock = $this->getChild('product_list');  
  15.         if ($productListBlock){  
  16.                $toolbarBlock = $productListBlock->getChild('product_list_toolbar');  
  17.                if($toolbarBlock){  
  18.                      $paging = $toolbarBlock->getCurrentPage();  
  19.                      $limit = $toolbarBlock->getLimit();  
  20.                      $mode = $toolbarBlock->getCurrentMode();  
  21.                      $order = $toolbarBlock->getCurrentOrder();  
  22.                }  
  23.         }  
  24.         return array(  
  25.                'CATEGORY_VIEW',  
  26.                Mage::app()->getStore()->getId(),  
  27.                Mage::getDesign()->getPackageName(),  
  28.                Mage::getDesign()->getTheme('template'),  
  29.                $this->getCurrentCategory()->getId(),  
  30.                'template' => $this->getTemplate(),  
  31.                $paging,  
  32.                $limit,  
  33.                $mode,  
  34.                $order  
  35.         );  
  36. }  
3、cms/page页面
修改文件:app\code\local\Mage\Cms\Block\Page.php
在_prepareLayout方法前面添加方法:
[php] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. const CACHE_KEY = 'cms_page';   
  2. protected function _construct()  
  3. {  
  4.     $this->addData(array(  
  5.         'cache_lifetime' => 86400,  
  6.         'cache_tags' => array('cms-'.$this->getPage()->getIdentifier()),  
  7.         'cache_key' => $this->getCacheKey(),   
  8.     ));  
  9.  }  
  10. public function getCacheKey()   
  11. {  
  12.         $storeId = $this->getStoreId();  
  13.         $currencyCode = Mage::app()->getStore()->getCurrentCurrencyCode();  
  14.         $uri = $this->getRequest()->getRequestUri() . self::CACHE_KEY;  
  15.         return $storeId.$uri.$currencyCode;  
  16. }  
这里使用cms-pageidentifier作为cache_tags
(责任编辑:最模板)
------分隔线----------------------------
栏目列表
推荐内容