private function saveAttribute() { if ($this->attributeObj->getId()) { return array('result' => true, 'obj' => $this->attributeObj); } if (!$this->validate()) { return array('result' => false, 'error' => 'Attribute builder. Validation failed.'); } $this->attributeObj = Mage::getModel('catalog/resource_eav_attribute'); $data = $this->params; $data['attribute_code'] = $this->code; $data['frontend_label'] = array(Mage_Core_Model_App::ADMIN_STORE_ID => $this->primaryLabel); $data['frontend_input'] = $this->inputType; $data['entity_type_id'] = $this->entityTypeId; $data['is_user_defined'] = 1; $data['source_model'] = Mage::helper('catalog/product')->getAttributeSourceModelByInputType($this->inputType); $data['backend_model'] = Mage::helper('catalog/product')->getAttributeBackendModelByInputType($this->inputType); $data['backend_type'] = $this->attributeObj->getBackendTypeByInput($this->inputType); !isset($data['is_global']) && ($data['is_global'] = self::SCOPE_STORE); !isset($data['is_configurable']) && ($data['is_configurable'] = 0); !isset($data['is_filterable']) && ($data['is_filterable'] = 0); !isset($data['is_filterable_in_search']) && ($data['is_filterable_in_search'] = 0); !isset($data['apply_to']) && ($data['apply_to'] = array()); $this->prepareOptions($data); $this->prepareDefault($data); $this->attributeObj->addData($data); try { $this->attributeObj->save(); } catch (Exception $e) { return array('result' => false, 'error' => $e->getMessage()); } return array('result' => true, 'obj' => $this->attributeObj); }
private function saveAttribute() { if ($this->attributeObj->getId()) { return array('result' => true, 'obj' => $this->attributeObj, 'code' => $this->attributeObj->getAttributeCode()); } if (!$this->validate()) { return array('result' => false, 'error' => 'Attribute builder. Validation failed.'); } $data = $this->params; $data['attribute_code'] = $this->code; $data['frontend_label'] = array(Mage_Core_Model_App::ADMIN_STORE_ID => $this->primaryLabel); $data['frontend_input'] = $this->inputType; $data['source_model'] = Mage::helper('catalog/product')->getAttributeSourceModelByInputType($this->inputType); $data['backend_model'] = Mage::helper('catalog/product')->getAttributeBackendModelByInputType($this->inputType); !isset($data['is_global']) && ($data['is_global'] = self::SCOPE_STORE); !isset($data['is_configurable']) && ($data['is_configurable'] = 0); !isset($data['is_filterable']) && ($data['is_filterable'] = 0); !isset($data['is_filterable_in_search']) && ($data['is_filterable_in_search'] = 0); $this->attributeObj = Mage::getModel('catalog/resource_eav_attribute'); if (is_null($this->attributeObj->getIsUserDefined()) || $this->attributeObj->getIsUserDefined() != 0) { $data['backend_type'] = $this->attributeObj->getBackendTypeByInput($this->inputType); } // default value if (empty($data['default_value'])) { unset($data['default_value']); } // --------------------------------------- !isset($data['apply_to']) && ($data['apply_to'] = array()); // prepare options foreach ($this->options as $optionValue) { $code = 'option_' . substr(sha1($optionValue), 0, 6); $data['option']['value'][$code] = array(Mage_Core_Model_App::ADMIN_STORE_ID => $optionValue); } // --------------------------------------- $this->attributeObj->addData($data); $this->attributeObj->setEntityTypeId($this->entityTypeId); $this->attributeObj->setIsUserDefined(1); try { $this->attributeObj->save(); } catch (Exception $e) { return array('result' => false, 'error' => $e->getMessage()); } return array('result' => true, 'obj' => $this->attributeObj, 'code' => $this->attributeObj->getAttributeCode()); }
/** * @param string $givenFrontendInput * @param string $expectedBackendType * @dataProvider dataGetBackendTypeByInput */ public function testGetBackendTypeByInput($givenFrontendInput, $expectedBackendType) { $this->assertEquals($expectedBackendType, $this->_model->getBackendTypeByInput($givenFrontendInput)); }