/** * 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; }
/** * 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; }
/** * 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; }