/** * Load data * * @param bool $printQuery * @param bool $logQuery * @return Mage_XmlConnect_Model_Resource_Filter_Collection */ public function load($printQuery = false, $logQuery = false) { if (empty($this->_items)) { $layer = Mage::getSingleton('catalog/layer'); foreach ($this->_filters as $filter) { if ('category_id' == $filter['field']) { $layer->setCurrentCategory((int) $filter['value']); } } if ($layer->getCurrentCategory()->getIsAnchor()) { foreach ($layer->getFilterableAttributes() as $attributeItem) { $filterModelName = 'catalog/layer_filter_attribute'; switch ($attributeItem->getAttributeCode()) { case 'price': $filterModelName = 'catalog/layer_filter_price'; break; case 'decimal': $filterModelName = 'catalog/layer_filter_decimal'; break; default: $filterModelName = 'catalog/layer_filter_attribute'; break; } $filterModel = Mage::getModel($filterModelName); $filterModel->setLayer($layer)->setAttributeModel($attributeItem); $filterValues = new Varien_Data_Collection(); foreach ($filterModel->getItems() as $valueItem) { $valueObject = new Varien_Object(); $valueObject->setLabel($valueItem->getLabel()); $valueObject->setValueString($valueItem->getValueString()); $valueObject->setProductsCount($valueItem->getCount()); $filterValues->addItem($valueObject); } $item = new Varien_Object(); $item->setCode($attributeItem->getAttributeCode()); $item->setName($filterModel->getName()); $item->setValues($filterValues); $this->addItem($item); } } } return $this; }