/** * 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; }
/** * 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; }