/**
  * Returns true if given attribute has options
  * @param Mage_Catalog_Model_Resource_Eav_Attribute $attribute
  * @return bool
  */
 public function isAttributeWithOptions(Mage_Catalog_Model_Resource_Eav_Attribute $attribute)
 {
     $model = Mage::getModel($attribute->getSourceModel());
     return $attribute->usesSource() && $attribute->getBackendType() == 'int' && $model instanceof Mage_Eav_Model_Entity_Attribute_Source_Table;
 }
Exemplo n.º 2
0
 /**
  * Checks if attribute is using options.
  *
  * @param Mage_Catalog_Model_Resource_Eav_Attribute $attribute
  * @return bool
  */
 public function isUsingOptions($attribute)
 {
     $sourceModel = Mage::getModel($attribute->getSourceModel());
     $backendType = $attribute->getBackendType();
     return $attribute->usesSource() && ($backendType == 'int' && $sourceModel instanceof Mage_Eav_Model_Entity_Attribute_Source_Table) || $backendType == 'varchar' && $attribute->getFrontendInput() == 'multiselect';
 }
 /**
  * Returns attribute type for indexation.
  *
  * @param Mage_Catalog_Model_Resource_Eav_Attribute $attribute Attribute
  *
  * @return string
  */
 protected function _getAttributeType($attribute)
 {
     $type = 'string';
     if ($attribute->getBackendType() == 'int' || $attribute->getFrontendClass() == 'validate-digits') {
         $type = 'integer';
     } elseif ($attribute->getBackendType() == 'decimal') {
         $type = 'double';
     } elseif ($attribute->getSourceModel() == 'eav/entity_attribute_source_boolean') {
         $type = 'boolean';
     } elseif ($attribute->getBackendType() == 'datetime') {
         $type = 'date';
     } elseif ($attribute->usesSource() && $attribute->getSourceModel() === null) {
         $type = 'integer';
     } else {
         if ($attribute->usesSource()) {
             $type = 'string';
         }
     }
     return $type;
 }
Exemplo n.º 4
0
 /**
  * Retrieve filter array
  *
  * @deprecated since 1.12.0.0
  *
  * @param Enterprise_Search_Model_Resource_Collection $collection
  * @param Mage_Catalog_Model_Resource_Eav_Attribute $attribute
  * @param string|array $value
  * @return array
  */
 public function getSearchParam($collection, $attribute, $value)
 {
     if (empty($value) || isset($value['from']) && empty($value['from']) && isset($value['to']) && empty($value['to'])) {
         return false;
     }
     $locale = Mage::app()->getStore()->getConfig(Mage_Core_Model_Locale::XML_PATH_DEFAULT_LOCALE);
     $languageSuffix = $this->getLanguageSuffix($locale);
     $field = $attribute->getAttributeCode();
     $backendType = $attribute->getBackendType();
     $frontendInput = $attribute->getFrontendInput();
     if ($frontendInput == 'multiselect') {
         $field = 'attr_multi_' . $field;
     } elseif ($backendType == 'decimal') {
         $field = 'attr_decimal_' . $field;
     } elseif ($frontendInput == 'select' || $frontendInput == 'boolean') {
         $field = 'attr_select_' . $field;
     } elseif ($backendType == 'datetime') {
         $field = 'attr_datetime_' . $field;
         $format = Mage::app()->getLocale()->getDateFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT);
         if (is_array($value)) {
             foreach ($value as &$val) {
                 if (!is_empty_date($val)) {
                     $date = new Zend_Date($val, $format);
                     $val = $date->toString(Zend_Date::ISO_8601) . 'Z';
                 }
             }
         } else {
             if (!is_empty_date($value)) {
                 $date = new Zend_Date($value, $format);
                 $value = $date->toString(Zend_Date::ISO_8601) . 'Z';
             }
         }
     } elseif (in_array($backendType, $this->_textFieldTypes)) {
         $field .= $languageSuffix;
     }
     if ($attribute->usesSource()) {
         $attribute->setStoreId(Mage::app()->getStore()->getId());
     }
     return array($field => $value);
 }
Exemplo n.º 5
0
 /**
  * Check attribute availability for super product creation
  *
  * @param  Mage_Catalog_Model_Resource_Eav_Attribute $attribute
  * @return bool
  */
 public function canUseAttribute(Mage_Catalog_Model_Resource_Eav_Attribute $attribute)
 {
     return $attribute->getIsGlobal() == Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL && $attribute->getIsVisible() && $attribute->getIsConfigurable() && $attribute->usesSource() && $attribute->getIsUserDefined();
 }