/** * Return attribute data model by attribute * Set entity to data model (need for work) * * @param Mage_Eav_Model_Attribute $attribute * @param Mage_Core_Model_Abstract $entity * @return Mage_Eav_Model_Attribute_Data_Abstract */ public static function factory(Mage_Eav_Model_Attribute $attribute, Mage_Core_Model_Abstract $entity) { /* @var $dataModel Mage_Eav_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('eav/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_Eav_Model_Attribute $attribute * @return string */ public function getAttributeHtml(Mage_Eav_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; }
/** * Render attribute row and return HTML * * @param Mage_Eav_Model_Attribute $attribute * @return string */ public function getAttributeHtml(Mage_Eav_Model_Attribute $attribute) { $showOnGuest = TRUE; $setup = new Mage_Eav_Model_Entity_Setup('core_setup'); $entityTypeId = $setup->getEntityTypeId('customer'); if ($attribute->getEntityTypeId() == $entityTypeId) { $collection = Mage::getModel('customerattribute/customerattribute')->getCollection()->addFieldToFilter('attribute_id', $attribute->getAttributeId())->getFirstItem(); if ($collection->getShowOnCheckoutRegisterGuest() == 0) { $showOnGuest = FALSE; } } $type = $attribute->getFrontendInput(); $block = $this->getRenderer($type); if ($block) { $block->setAttributeObject($attribute)->setEntity($this->getEntity())->setFieldIdFormat($this->_fieldIdFormat)->setFieldNameFormat($this->_fieldNameFormat)->setShowOnGuest($showOnGuest); return $block->toHtml(); } return false; }