public function getFilterableAttributes() { $collection = parent::getFilterableAttributes(); if ($collection instanceof Mage_Catalog_Model_Resource_Product_Attribute_Collection) { $attrUrlKeyModel = Mage::getResourceModel('sm_shopby/attribute_urlkey'); $attrUrlKeyModel->preloadAttributesOptions($collection); } return $collection; }
/** * Get collection of all filterable attributes for layer products set * * @return Mage_Catalog_Model_Resource_Eav_Mysql4_Attribute_Collection */ public function getFilterableAttributes() { $collection = parent::getFilterableAttributes(); if ($collection instanceof Mage_Catalog_Model_Resource_Product_Attribute_Collection) { // Pre-loads all needed attributes at once $attrUrlKeyModel = Mage::getResourceModel('catalin_seo/attribute_urlkey'); $attrUrlKeyModel->preloadAttributesOptions($collection); } return $collection; }
public function testGetFilterableAttributes() { /** @var $collection Mage_Catalog_Model_Resource_Product_Attribute_Collection */ $collection = $this->_model->getFilterableAttributes(); $this->assertInstanceOf('Mage_Catalog_Model_Resource_Product_Attribute_Collection', $collection); $items = $collection->getItems(); $this->assertInternalType('array', $items); $this->assertEquals(1, count($items), 'Number of items in collection.'); $this->assertInstanceOf('Mage_Catalog_Model_Resource_Eav_Attribute', $collection->getFirstItem()); $this->assertEquals('price', $collection->getFirstItem()->getAttributeCode()); //$this->assertNotSame($collection, $this->_model->getFilterableAttributes()); }
public function getFilterableAttributes() { if (Mage::helper('itoris_layerednavigation')->isEnabledThirdEngineSearch()) { $setIds = $this->_getSetIds(); if (!$setIds) { return array(); } /* @var $collection Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Attribute_Collection */ $collection = Mage::getResourceModel('catalog/product_attribute_collection')->setItemObjectClass('catalog/resource_eav_attribute'); if (Mage::helper('enterprise_search')->getTaxInfluence()) { $collection->removePriceFilter(); } $collection->setAttributeSetFilter($setIds)->addStoreLabel(Mage::app()->getStore()->getId())->setOrder('position', 'ASC'); $collection = $this->_prepareAttributeCollection($collection); $collection->addIsFilterableInSearchFilter(); $collection->load(); return $collection; } else { return parent::getFilterableAttributes(); } }