Example #1
0
 /**
  * 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;
 }
Example #2
0
 /**
  * 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;
 }
Example #3
0
 /**
  * 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;
 }
Example #4
0
 /**
  * @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());
 }
Example #5
0
 /**
  * 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();
 }
Example #7
0
 /**
  * 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;
 }
Example #8
0
 /**
  * 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();
     }
 }
Example #9
0
 /**
  * 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;
 }
Example #10
0
 /**
  * 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;
 }