| 
       
	1、产品页面 
	  
	修改文件:app\code\local\Mage\Catalog\Block\Product\View.php 
	在_prepareLayout方法前面添加方法: 
	
	
		- 
			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方法前面添加方法: 
 
	
	
		- 
			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方法前面添加方法: 
	
	
		- 
			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 
      
      (责任编辑:最模板) |