/**
  * 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;
 }
Beispiel #2
0
 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();
 }