Пример #1
0
 /**
  * Calculate cache product compare collection
  *
  * @param  bool $logout
  * @return Mage_Catalog_Helper_Product_Compare
  */
 public function calculate($logout = false)
 {
     // first visit
     if (!$this->_catalogSession->hasCatalogCompareItemsCount() && !$this->_customerId) {
         $count = 0;
     } else {
         /** @var $collection Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Compare_Item_Collection */
         $collection = Mage::getResourceModel('catalog/product_compare_item_collection')->useProductItem(true);
         if (!$logout && $this->_customerSession->isLoggedIn()) {
             $collection->setCustomerId($this->_customerSession->getCustomerId());
         } elseif ($this->_customerId) {
             $collection->setCustomerId($this->_customerId);
         } else {
             $collection->setVisitorId($this->_logVisitor->getId());
         }
         /* Price data is added to consider item stock status using price index */
         $collection->addPriceData();
         $this->_productVisibility->addVisibleInSiteFilterToCollection($collection);
         $count = $collection->getSize();
     }
     $this->_catalogSession->setCatalogCompareItemsCount($count);
     return $this;
 }