/** * Create the block filter for an attribute into the layer. * * @param Mage_Catalog_Model_Entity_Attribute $attribute Filtered attributes. * * @return Mage_Catalog_Block_Layer_Filter_Abstract */ protected function _addFilter($attribute) { $decimalValidationClasses = array('validate-number', 'validate-digits'); if ($attribute->getAttributeCode() == 'price') { $filterBlockName = $this->_priceFilterBlockName; } elseif ($attribute->getAttributeCode() == 'rating_filter') { $filterBlockName = $this->_ratingFilterBlockName; } elseif ($attribute->getSourceModel() == 'eav/entity_attribute_source_boolean') { $filterBlockName = $this->_booleanFilterBlockName; } elseif ($attribute->getBackendType() == 'decimal' || in_array($attribute->getFrontendClass(), $decimalValidationClasses)) { $filterBlockName = $this->_decimalFilterBlockName; } else { $filterBlockName = $this->_attributeFilterBlockName; } $filter = $this->getLayout()->createBlock($filterBlockName, $attribute->getAttributeCode() . '_filter')->setLayer($this->getLayer())->setAttributeModel($attribute)->init(); return $filter; }