public function getAttributes() { $attributes = parent::getAttributes(); $collection = Mage::getModel('customer/attribute')->getCollection(); $filters = array("is_user_defined = 1", "entity_type_id = " . Mage::getModel('eav/entity')->setType('customer')->getTypeId()); $collection = Mage::helper('amcustomerattr')->addFilters($collection, 'eav_attribute', $filters); $temp = array(); foreach ($attributes as $attribute) { $temp[] = $attribute->getAttributeCode(); } foreach ($collection as $attribute) { if ('customer_activated' != $attribute->getAttributeCode() && 'unlock_customer' != $attribute->getAttributeCode()) { // filter attributes by store on the edit customer page in the backend if ('customer' == Mage::app()->getRequest()->getControllerName() && 'edit' == Mage::app()->getRequest()->getActionName()) { $applicableStoreIds = explode(',', $attribute->getStoreIds()); // 0 means allowed on all store views if (!in_array(0, $applicableStoreIds)) { if (!in_array(Mage::registry('current_customer')->getStoreId(), $applicableStoreIds) && 0 != Mage::registry('current_customer')->getStoreId()) { continue; } } } if (!in_array($attribute->getAttributeCode(), $temp)) { $attributes[] = $attribute; } } } return $attributes; }
public function getAttributes() { $attributes = parent::getAttributes(); $collection = Mage::getModel('customer/attribute')->getCollection(); $collection->addFieldToFilter('is_user_defined', 1); $collection->addFieldToFilter('entity_type_id', Mage::getModel('eav/entity')->setType('customer')->getTypeId()); foreach ($collection as $attribute) { if ('customer_activated' != $attribute->getAttributeCode() && 'unlock_customer' != $attribute->getAttributeCode()) { $attributes[] = $attribute; } } return $attributes; }
/** * Handle Read-Only customer * * @param Varien_Data_Form $form * @param Mage_Customer_Model_Customer $customer */ protected function _handleReadOnlyCustomer($form, $customer) { if (!$customer->isReadonly()) { return; } foreach ($customer->getAttributes() as $attribute) { $element = $form->getElement($attribute->getAttributeCode()); if ($element) { $element->setReadonly(true, true); } } }