Exemple #1
0
 /**
  * Product view block, don't cache if rendered with cart item update
  *
  * @param Mage_Catalog_Block_Product_View $block
  */
 public function applyProductView(Mage_Catalog_Block_Product_Abstract $block)
 {
     // The "messages" block is session-dependent, don't cache
     if (Mage::helper('cache')->responseHasMessages()) {
         $block->setData('cache_lifetime', null);
         return;
     }
     // Cart stuff is session-dependent
     $request = $block->getRequest();
     if ($request->getModuleName() == 'checkout' && $request->getControllerName() == 'cart' && $request->getActionName() == 'configure' && $request->getParam('id')) {
         $block->setData('cache_lifetime', null);
         return;
     }
     // Set cache keys
     $keys = $block->getCacheKeys();
     $customer = Mage::getSingleton('customer/session')->getCustomer();
     $keys = array_merge($keys, array($customer->getGroupId()));
     $product = $block->getProduct();
     if ($product) {
         $tags = array(Mage_Catalog_Model_Product::CACHE_TAG . '_' . $block->getProduct()->getId());
         $taxCalculator = Mage::getModel('tax/calculation');
         $product = $block->getProduct();
         $keys = array_merge($keys, array($product->getId(), $taxCalculator->getRate($taxCalculator->getRateRequest()->setProductClassId($product->getTaxClassId()))));
     } else {
         $tags = array(Mage_Catalog_Model_Product::CACHE_TAG);
     }
     $block->setData('cache_tags', $tags);
     $block->setData('cache_keys', $keys);
 }
 /**
  * Retrive product
  *
  * @return Mage_Catalog_Model_Product
  */
 public function getProduct()
 {
     $product = parent::getProduct();
     if (is_null($product->getTypeInstance(true)->getStoreFilter($product))) {
         $product->getTypeInstance(true)->setStoreFilter(Mage::app()->getStore(), $product);
     }
     return $product;
 }
Exemple #3
0
 public function testGetProduct()
 {
     $this->assertSame($this->_product, $this->_block->getProduct());
 }