/** * Retrieve advanced search product collection * * @return Mage_CatalogSearch_Model_Resource_Advanced_Collection */ public function getProductCollection() { if (is_null($this->_productCollection)) { $collection = $this->_engine->getAdvancedResultCollection(); $this->prepareProductCollection($collection); if (!$collection) { return $collection; } $this->_productCollection = $collection; } return $this->_productCollection; }
public function getTopProductCollection() { $collection = $this->_engine->getAdvancedResultCollection(); $collection->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes())->setStore(Mage::app()->getStore())->addMinimalPrice()->addTaxPercents()->addStoreFilter(); Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($collection); Mage::getSingleton('catalog/product_visibility')->addVisibleInSearchFilterToCollection($collection); if (isset($_GET['cat']) && is_numeric($_GET['cat'])) { $collection->addCategoryFilter(Mage::getModel('catalog/category')->load($_GET['cat']), true); } if (isset($_GET['make']) || isset($_GET['number_plate'])) { if ($_GET['cat'] == '4') { $sess_str = Mage::getSingleton("core/session")->getSearchRimSize(); $sess_arr = array(); if ($sess_str != '') { $sess_arr = explode(',', $sess_str); for ($k = 0; $k < count($sess_arr); $k++) { $filters[] = array('attribute' => 'article_code', 'eq' => $sess_arr[$k]); } $collection->addAttributeToFilter($filters); } } else { if (isset($_GET['size'])) { $collection->addAttributeToFilter('short_size', array('eq' => $_GET['size'])); } } } if (isset($_GET['width'])) { $collection->addAttributeToFilter('width', array('eq' => $_GET['width'])); } if (isset($_GET['diameter'])) { $collection->addAttributeToFilter('diameter', array('eq' => $_GET['diameter'])); } if (isset($_GET['profile'])) { $collection->addAttributeToFilter('profile', array('eq' => $_GET['profile'])); } if (isset($_GET['product_group'])) { $collection->addAttributeToFilter('product_group', array('eq' => $_GET['product_group'])); } if (isset($_GET['rim_product_group'])) { $collection->addAttributeToFilter('rim_product_group', array('eq' => $_GET['rim_product_group'])); } return $collection; //echo $this->_productCollection->getSelect(); }