Пример #1
0
 /**
  * Retrieve Product Compare items collection
  *
  * @return Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Compare_Item_Collection
  */
 public function getItems()
 {
     if (is_null($this->_items)) {
         AO::helper('catalog/product_compare')->setAllowUsedFlat(false);
         $this->_items = AO::getResourceModel('catalog/product_compare_item_collection')->useProductItem(true)->setStoreId(AO::app()->getStore()->getId());
         if (AO::getSingleton('customer/session')->isLoggedIn()) {
             $this->_items->setCustomerId(AO::getSingleton('customer/session')->getCustomerId());
         } else {
             $this->_items->setVisitorId(AO::getSingleton('log/visitor')->getId());
         }
         $this->_items->loadComaparableAttributes()->addAttributeToSelect(AO::getSingleton('catalog/config')->getProductAttributes())->addMinimalPrice()->addTaxPercents();
         AO::getSingleton('catalog/product_visibility')->addVisibleInSiteFilterToCollection($this->_items);
     }
     return $this->_items;
 }
 public function getComparableAttributes()
 {
     /* 1.3.2.3, 1.3.2.4, 1.4.0.0, 1.4.0.1, 1.4.1.1, 1.4.2.0, 1.5.0.1
        // проблема с сортировкой точно существовала до версии 1411,
        // дальше надо проверять.
        // так как функция менялась в разных версиях, то для 13х и
        // для 14х надо разные функции.
        */
     $sortattributes = Mage::getStoreConfig('advancedcompare/popup/sortattributes');
     if ($sortattributes) {
         $version = substr(Mage::getVersion(), 0, 3);
     } else {
         $version = 'disabled';
     }
     switch ($version) {
         case '1.3':
             $returnValue = $this->getComparableAttributes13x();
             break;
         case '1.4':
         case '1.5':
         case '1.6':
         case '1.7':
         case '1.8':
         case '1.9':
             $returnValue = $this->getComparableAttributes14x();
             break;
         default:
             $returnValue = parent::getComparableAttributes();
     }
     return $returnValue;
 }
Пример #3
0
 /**
  * Retrieve compare list items collection
  *
  * @return Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Compare_Item_Collection
  */
 public function getItemCollection()
 {
     if (!$this->_itemCollection) {
         $this->_itemCollection = Mage::getResourceModel('catalog/product_compare_item_collection')->useProductItem(true)->setStoreId(Mage::app()->getStore()->getId());
         if (Mage::getSingleton('customer/session')->isLoggedIn()) {
             $this->_itemCollection->setCustomerId(Mage::getSingleton('customer/session')->getCustomerId());
         } else {
             $this->_itemCollection->setVisitorId(Mage::getSingleton('log/visitor')->getId());
         }
         Mage::getSingleton('catalog/product_visibility')->addVisibleInSiteFilterToCollection($this->_itemCollection);
         $this->_itemCollection->addAttributeToSelect('name')->addUrlRewrite()->load();
     }
     return $this->_itemCollection;
 }
Пример #4
0
 /**
  * Retrieve compare list items collection
  *
  * @return Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Compare_Item_Collection
  */
 public function getItemCollection()
 {
     if (!$this->_itemCollection) {
         $this->_itemCollection = Mage::getResourceModel('catalog/product_compare_item_collection')->useProductItem(true)->setStoreId(Mage::app()->getStore()->getId());
         if (Mage::getSingleton('customer/session')->isLoggedIn()) {
             $this->_itemCollection->setCustomerId(Mage::getSingleton('customer/session')->getCustomerId());
         } else {
             $this->_itemCollection->setVisitorId(Mage::getSingleton('log/visitor')->getId());
         }
         Mage::getSingleton('catalog/product_visibility')->addVisibleInSiteFilterToCollection($this->_itemCollection);
         /* Price data is added to consider item stock status using price index */
         $this->_itemCollection->addPriceData();
         $this->_itemCollection->addAttributeToSelect('name')->addUrlRewrite()->load();
         /* update compare items count */
         $this->_getSession()->setCatalogCompareItemsCount(count($this->_itemCollection));
     }
     return $this->_itemCollection;
 }