/** * Initialize product collection * * @param Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection $collection Product collection. * * @return Mage_Catalog_Model_Layer */ public function prepareProductCollection($collection) { $query = $collection->getSearchEngineQuery(); $allowedVisibilities = Mage::getSingleton('catalog/product_visibility')->getVisibleInCatalogIds(); $query->addFilter('terms', array('visibility' => $allowedVisibilities)); $allowedStatuses = Mage::getSingleton('catalog/product_status')->getVisibleStatusIds(); $query->addFilter('terms', array('status' => $allowedStatuses)); if (Mage::helper('cataloginventory')->isShowOutOfStock() == false) { $query->addFilter('terms', array('in_stock' => 1)); } $query->setQueryType('category_products_layer'); return parent::prepareProductCollection($collection); }