西部数码主机 | 阿里云主机| 虚拟主机 | 服务器 | 返回乐道官网
当前位置: 主页 > php教程 > magento教程 >

给Magento常用的Block添加缓存

时间:2016-03-06 14:35来源: 作者: 点击:
1、产品页面 修改文件:app\code\local\Mage\Catalog\Block\Product\View.php 在_prepareLayout方法前面添加方法: [php] view plaincopy在CODE上查看代码片派生到我的代码片 protected function _construct() { $this-ad
1、产品页面
 
 
 
修改文件:app\code\local\Mage\Catalog\Block\Product\View.php
在_prepareLayout方法前面添加方法:
[php] view plaincopy在CODE上查看代码片派生到我的代码片
protected function _construct()  
{  
    $this->addData(array(  
       'cache_lifetime' => 86400,   
       'cache_tags' => array(Mage_Catalog_Model_Product::CACHE_TAG . "_" . $this->getProduct()->getId()),  
       'cache_key' => $this->getProduct()->getId(),  
    ));  
}  
这里使用catalog_product_productid使用cache_tags
 
 
 
 
2、分类页面
修改文件:app\code\local\Mage\Catalog\Block\Category\View.php
在_prepareLayout方法前面添加方法:
[php] view plaincopy在CODE上查看代码片派生到我的代码片
protected function _construct()  
{  
        $this->addData(array(  
              'cache_lifetime' => 86400,  
              'cache_tags' => array($this->getCacheKeyInfo()),  
              'cache_key' => $this->getCacheKeyInfo(),   
        ));  
}  
public function getCacheKeyInfo(){  
        $paging = '';  
        $limit = '';  
        $mode = '';  
        $order = '';  
        $productListBlock = $this->getChild('product_list');  
        if ($productListBlock){  
               $toolbarBlock = $productListBlock->getChild('product_list_toolbar');  
               if($toolbarBlock){  
                     $paging = $toolbarBlock->getCurrentPage();  
                     $limit = $toolbarBlock->getLimit();  
                     $mode = $toolbarBlock->getCurrentMode();  
                     $order = $toolbarBlock->getCurrentOrder();  
               }  
        }  
        return array(  
               'CATEGORY_VIEW',  
               Mage::app()->getStore()->getId(),  
               Mage::getDesign()->getPackageName(),  
               Mage::getDesign()->getTheme('template'),  
               $this->getCurrentCategory()->getId(),  
               'template' => $this->getTemplate(),  
               $paging,  
               $limit,  
               $mode,  
               $order  
        );  
}  
3、cms/page页面
修改文件:app\code\local\Mage\Cms\Block\Page.php
在_prepareLayout方法前面添加方法:
[php] view plaincopy在CODE上查看代码片派生到我的代码片
const CACHE_KEY = 'cms_page';   
protected function _construct()  
{  
    $this->addData(array(  
        'cache_lifetime' => 86400,  
        'cache_tags' => array('cms-'.$this->getPage()->getIdentifier()),  
        'cache_key' => $this->getCacheKey(),   
    ));  
 }  
public function getCacheKey()   
{  
        $storeId = $this->getStoreId();  
        $currencyCode = Mage::app()->getStore()->getCurrentCurrencyCode();  
        $uri = $this->getRequest()->getRequestUri() . self::CACHE_KEY;  
        return $storeId.$uri.$currencyCode;  
}  
这里使用cms-pageidentifier作为cache_tags
(责任编辑:好模板)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
热点内容