/** * Check if number of street lines is non-zero * * @param Mage_Customer_Model_Attribute $attribute * @return Mage_Customer_Model_Attribute */ public function processStreetAttribute(Mage_Customer_Model_Attribute $attribute) { if ($attribute->getScopeMultilineCount() <= 0) { $attribute->setScopeMultilineCount(self::DEFAULT_STREET_LINES_COUNT); } return $attribute; }
/** * Saves a new attribute * * @param Mage_Customer_Model_Attribute $attribute * @return Enterprise_Customer_Model_Mysql4_Sales_Abstract */ public function saveNewAttribute(Mage_Customer_Model_Attribute $attribute) { $backendType = $attribute->getBackendType(); if ($backendType == Mage_Customer_Model_Attribute::TYPE_STATIC) { return $this; } switch ($backendType) { case 'datetime': $defination = "DATE NULL DEFAULT NULL"; break; case 'decimal': $defination = "DECIMAL(12,4) DEFAULT NULL"; break; case 'int': $defination = "INT(11) DEFAULT NULL"; break; case 'text': $defination = "TEXT DEFAULT NULL"; break; case 'varchar': $defination = "VARCHAR(255) DEFAULT NULL"; break; default: return $this; } $this->_getWriteAdapter()->addColumn($this->getMainTable(), $this->_getColumnName($attribute), $defination); return $this; }
/** * Saves a new attribute * * @param Mage_Customer_Model_Attribute $attribute * @return Enterprise_Customer_Model_Resource_Sales_Abstract */ public function saveNewAttribute(Mage_Customer_Model_Attribute $attribute) { $backendType = $attribute->getBackendType(); if ($backendType == Mage_Customer_Model_Attribute::TYPE_STATIC) { return $this; } switch ($backendType) { case 'datetime': $definition = array('type' => Varien_Db_Ddl_Table::TYPE_DATE); break; case 'decimal': $definition = array('type' => Varien_Db_Ddl_Table::TYPE_DECIMAL, 'length' => 12, 4); break; case 'int': $definition = array('type' => Varien_Db_Ddl_Table::TYPE_INTEGER); break; case 'text': $definition = array('type' => Varien_Db_Ddl_Table::TYPE_TEXT); break; case 'varchar': $definition = array('type' => Varien_Db_Ddl_Table::TYPE_TEXT, 'length' => 255); break; default: return $this; } $columnName = $this->_getColumnName($attribute); $definition['comment'] = ucwords(str_replace('_', ' ', $columnName)); $this->_getWriteAdapter()->addColumn($this->getMainTable(), $columnName, $definition); return $this; }
/** * @magentoAppIsolation enabled */ public function testPrepareForm() { $entityType = Mage::getSingleton('Mage_Eav_Model_Config')->getEntityType('customer'); $model = new Mage_Customer_Model_Attribute(); $model->setEntityTypeId($entityType->getId()); Mage::register('entity_attribute', $model); $block = $this->getMockForAbstractClass('Mage_Eav_Block_Adminhtml_Attribute_Edit_Main_Abstract')->setLayout(new Mage_Core_Model_Layout()); $method = new ReflectionMethod('Mage_Eav_Block_Adminhtml_Attribute_Edit_Main_Abstract', '_prepareForm'); $method->setAccessible(true); $method->invoke($block); $element = $block->getForm()->getElement('default_value_date'); $this->assertNotNull($element); $this->assertNotEmpty($element->getDateFormat()); }
/** * Return attribute data model by attribute * Set entity to data model (need for work) * * @param Mage_Customer_Model_Attribute $attribute * @param Mage_Core_Model_Abstract $entity * @return Mage_Customer_Model_Attribute_Data_Abstract */ public static function factory(Mage_Customer_Model_Attribute $attribute, Mage_Core_Model_Abstract $entity) { /* @var $dataModel Mage_Customer_Model_Attribute_Data_Abstract */ $dataModelClass = $attribute->getDataModel(); if (!empty($dataModelClass)) { if (empty(self::$_dataModels[$dataModelClass])) { $dataModel = Mage::getModel($dataModelClass); self::$_dataModels[$dataModelClass] = $dataModel; } else { $dataModel = self::$_dataModels[$dataModelClass]; } } else { if (empty(self::$_dataModels[$attribute->getFrontendInput()])) { $dataModelClass = sprintf('customer/attribute_data_%s', $attribute->getFrontendInput()); $dataModel = Mage::getModel($dataModelClass); self::$_dataModels[$attribute->getFrontendInput()] = $dataModel; } else { $dataModel = self::$_dataModels[$attribute->getFrontendInput()]; } } $dataModel->setAttribute($attribute); $dataModel->setEntity($entity); return $dataModel; }
protected function _construct() { parent::_construct(); }
/** * Whether the specified attribute needs to skip rendering/validation * * @param Mage_Customer_Model_Attribute $attribute * @return bool */ protected function _isAttributeOmitted($attribute) { if ($this->_ignoreInvisible && !$attribute->getIsVisible()) { return true; } return false; }
/** * Customer attribute validate before save * * @param Mage_Customer_Model_Attribute $model * @return void */ public function customerAttributeSaveBefore($model) { foreach (array_keys($model->getData()) as $key) { $isScopeKey = strpos($key, 'scope_') === 0; if (!$isScopeKey && $key != $model->getIdFieldName()) { $model->unsetData($key); } } $modelWebsiteId = $model->getWebsite() ? $model->getWebsite()->getId() : null; if (!$modelWebsiteId || !$this->_role->hasWebsiteAccess($modelWebsiteId, true)) { $this->_throwSave(); } }
/** * Return scope values for attribute and website * * @param Mage_Customer_Model_Attribute $object * @return array */ public function getScopeValues(Mage_Customer_Model_Attribute $object) { $select = $this->_getReadAdapter()->select()->from($this->getTable('customer/eav_attribute_website'))->where('attribute_id = ?', $object->getId())->where('website_id = ?', $object->getWebsite()->getId())->limit(1); $result = $this->_getReadAdapter()->fetchRow($select); if (!$result) { $result = array(); } return $result; }
/** * Render attribute row and return HTML * * @param Mage_Customer_Model_Attribute $attribute * @return string */ public function getAttributeHtml(Mage_Customer_Model_Attribute $attribute) { $type = $attribute->getFrontendInput(); $block = $this->getRenderer($type); if ($block) { $block->setAttributeObject($attribute)->setEntity($this->getEntity())->setFieldIdFormat($this->_fieldIdFormat)->setFieldNameFormat($this->_fieldNameFormat); return $block->toHtml(); } return false; }