/** * Filter product collection * * @param Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection $collection * @return Mage_Catalog_Model_Layer */ public function prepareProductCollection($collection) { $rule = $this->getRule(); if ($rule->getData('show_outofstock') == 2) { $collection->joinField('stock_status', 'cataloginventory/stock_status', 'stock_status', 'product_id=entity_id', array('stock_status' => Mage_CatalogInventory_Model_Stock_Status::STATUS_IN_STOCK, 'website_id' => Mage::app()->getWebsite()->getWebsiteId())); } $collection->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes())->addMinimalPrice()->addFinalPrice()->addTaxPercents(); /*Filter min, max price*/ $this->currentRate = Mage::app()->getStore()->getCurrentCurrencyRate(); $max = $this->getMaxPriceFilter(); $min = $this->getMinPriceFilter(); if ($min && $max) { $collection->getSelect()->where(' final_price >= "' . $min . '" AND final_price <= "' . $max . '" '); } /*End Filter min, max price*/ Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($collection); Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($collection); //$this->_productCollections = $collection; return $this; }