コード例 #1
0
 /**
  * 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;
 }