/**
  * @param Open_Gallery_Model_Item $item
  * @param Varien_Data_Form $form
  * @return $this|Open_Gallery_Helper_Item_Interface
  */
 public function prepareEditForm(Open_Gallery_Model_Item $item, Varien_Data_Form $form)
 {
     $isReadonlyMode = false;
     foreach ($form->getElements() as $element) {
         /** @var Varien_Data_Form_Element_Abstract $element */
         if ($element instanceof Varien_Data_Form_Element_Fieldset && 'general_information' == $element->getId()) {
             $fieldSet = $element;
             $fieldSet->addField('value', 'image', array('name' => 'item[value]', 'label' => $this->__('Image File'), 'title' => $this->__('Image File'), 'required' => !$item->getData('value'), 'disabled' => $isReadonlyMode, 'note' => $this->__('Allowed format(s): <strong>%s</strong>', implode(', ', $item->getAllowedFormats())) . '<br/>' . $this->__('Your server allow you to upload files not more than <strong>%s</strong>. You can modify <strong>post_max_size</strong> (currently is %s) and <strong>upload_max_filesize</strong> (currently is %s) values in php.ini if you want to upload larger files.', $this->getDataMaxSize(), $this->getPostMaxSize(), $this->getUploadMaxSize())));
             break;
         }
     }
     return $this;
 }
Example #2
0
 public function getFields()
 {
     $form = new Varien_Data_Form();
     //todo add logic for getting fields by step
     $dateFormatIso = Mage::app()->getLocale()->getDateFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT);
     switch (intval(Mage::helper('gomage_checkout')->getConfigData('deliverydate/dateformat'))) {
         case GoMage_DeliveryDate_Model_Adminhtml_System_Config_Source_Dateformat::EUROPEAN:
             $dateFormatIso = 'dd.MM.yyyy';
             break;
         default:
             $dateFormatIso = 'MM.dd.yyyy';
     }
     $element = new GoMage_DeliveryDate_Model_Form_Element_Date(array('name' => 'deliverydate[date]', 'label' => $this->__('Select a Date:'), 'title' => $this->__('Delivery Date'), 'image' => $this->getSkinUrl('images/grid-cal.gif'), 'input_format' => Varien_Date::DATE_INTERNAL_FORMAT, 'format' => $dateFormatIso, 'no_span' => 1));
     $element->setId('delivery_date');
     $interval = intval(Mage::helper('gomage_checkout')->getConfigData('deliverydate/interval_days'));
     $available_days = Mage::helper('gomage_deliverydate')->getDeliveryDays();
     $available_days = array_keys($available_days);
     $shift = 0;
     $date_value = time() + $interval * 60 * 60 * 24;
     $w = date('w', $date_value);
     if (!in_array($w, $available_days)) {
         if ($w > max($available_days)) {
             $shift = 7 - $w + min($available_days);
         } else {
             foreach ($available_days as $d) {
                 if ($d > $w) {
                     $shift = $d - $w;
                     break;
                 }
             }
         }
     }
     $date_value = time() + ($interval + $shift) * (60 * 60 * 24);
     while ($this->isNonWorkingDay($date_value) || !in_array(date('w', $date_value), $available_days)) {
         $date_value += 60 * 60 * 24;
     }
     $element->setValue(date('d.m.Y', $date_value));
     $form->addElement($element, false);
     $values = array();
     $delivery_days = Mage::helper('gomage_deliverydate')->getDeliveryDays();
     if (isset($delivery_days[date('w', $date_value)])) {
         $values_options = Mage::getModel('gomage_deliverydate/adminhtml_system_config_source_hour')->toOptionHash();
         foreach ($delivery_days[date('w', $date_value)] as $value) {
             $values[$value] = $values_options[$value];
         }
     }
     $form->addField('delivery_time', 'select', array('name' => 'deliverydate[time]', 'title' => $this->__('Delivery Time'), 'no_span' => 1, 'values' => $values));
     return $form->getElements();
 }
Example #3
0
 public function getFormElements()
 {
     if (!is_null($this->_formElements)) {
         return $this->_formElements;
     }
     $attributes = $this->getAttributes();
     $attributesToRender = $this->_getElementsToRender();
     $form = new Varien_Data_Form();
     $fieldset = $form->addFieldset('amcustomerattr' . rand(0, 100), array('class' => 'amcustomerattr'));
     /**
      * Loading current customer, it we are on edit page
      */
     $customer = Mage::getSingleton('customer/session')->isLoggedIn() ? Mage::getSingleton('customer/session')->getCustomer() : null;
     $currentStore = $customer ? $customer->getStoreId() : Mage::app()->getStore()->getId();
     $isAnyAttributeApplies = false;
     $customerAttributes = Mage::getSingleton('customer/session')->getAmcustomerattr();
     foreach ($attributes as $attribute) {
         if (!empty($attributesToRender) && !in_array($attribute->getAttributeCode(), $attributesToRender)) {
             continue;
         }
         if ($attribute->getAccountFilled() && $this->_isCustomerEdit() && $customer->getData($attribute->getAttributeCode()) || $attribute->getBillingFilled() && $this->_isCheckout() && $customer && $customer->getData($attribute->getAttributeCode())) {
             continue;
         }
         $storeIds = explode(',', $attribute->getData('store_ids'));
         if (!in_array($currentStore, $storeIds) && 0 != $currentStore && !in_array(0, $storeIds)) {
             continue;
         }
         $isAnyAttributeApplies = true;
         $inputType = $attribute->getFrontend()->getInputType();
         if (!$inputType) {
             continue;
         }
         $typeInternal = $attribute->getTypeInternal();
         $inputTypes = array('statictext' => 'note', 'selectgroup' => 'select');
         if ($typeInternal) {
             $inputType = isset($inputTypes[$typeInternal]) ? $inputTypes[$typeInternal] : $typeInternal;
         }
         $fieldType = $inputType;
         // $rendererClass  = $attribute->getFrontend()->getInputRendererClass();
         $renderer = "Amasty_Customerattr_Block_Data_Form_Element_" . ucfirst($inputType);
         if (class_exists($renderer)) {
             $fieldType = $inputType . '_' . $attribute->getAttributeCode();
             $fieldset->addType($fieldType, $renderer);
         }
         $fieldName = $this->_isCheckout() ? 'billing[amcustomerattr][' . $attribute->getAttributeCode() . ']' : 'amcustomerattr[' . $attribute->getAttributeCode() . ']';
         if ('file' == $inputType) {
             $fieldName = 'amcustomerattr[' . $attribute->getAttributeCode() . ']';
         }
         // default_value
         $attributeValue = '';
         if ('statictext' != $typeInternal) {
             if ($customer) {
                 $attributeValue = $customer->getData($attribute->getAttributeCode());
             } elseif ($attribute->getData('default_value')) {
                 $attributeValue = $attribute->getData('default_value');
             }
             // if for example there was page reload with error, we putting attribute back from session
             if (isset($customerAttributes[$attribute->getAttributeCode()])) {
                 $attributeValue = $customerAttributes[$attribute->getAttributeCode()];
             }
         } else {
             $attributeValue = $attribute->getData('default_value');
         }
         $fileAttributeValue = '';
         if ('file' == $inputType) {
             $fileAttributeValue = $attributeValue;
             $attributeValue = '';
         }
         // applying translations
         $translations = $attribute->getStoreLabels();
         if (isset($translations[Mage::app()->getStore()->getId()])) {
             $attributeLabel = $translations[Mage::app()->getStore()->getId()];
         } else {
             $attributeLabel = $attribute->getFrontend()->getLabel();
         }
         $required = 0;
         if ($attribute->getIsRequired() || $attribute->getRequiredOnFront()) {
             $required = 1;
             $this->_hasRequired = true;
         }
         if ($attribute->getFrontend()->getClass()) {
             $this->_hasValidation = true;
         }
         $config = array('name' => $fieldName, 'label' => $attributeLabel, 'class' => $attribute->getFrontend()->getClass(), 'required' => $required, 'disabled' => $attribute->getIsReadOnly(), 'note' => $attribute->getNote(), 'value' => $attributeValue, 'text' => $attributeValue);
         /*if ('selectgroup' == $attribute->getTypeInternal()
               && Mage::getSingleton('customer/session')->isLoggedIn()
               && !Mage::getStoreConfig('amcustomerattr/general/allow_change_group')) {
               $config['disabled'] = 1;
           }*/
         $afterElementHtml = '';
         if ('date' == $inputType) {
             $config['readonly'] = 1;
             $config['onclick'] = 'amcustomerattr_trig(' . $attribute->getAttributeCode() . '_trig)';
             $afterElementHtml .= '<script type="text/javascript">' . 'function amcustomerattr_trig(id)' . '{ $(id).click(); }' . '</script>';
         }
         $element = $fieldset->addField($attribute->getAttributeCode(), $fieldType, $config)->setEntityAttribute($attribute);
         if ('file' == $inputType) {
             if ($fileAttributeValue) {
                 // to Controller
                 $fileName = Mage::helper('amcustomerattr')->cleanFileName($fileAttributeValue);
                 $downloadUrl = Mage::helper('amcustomerattr')->getAttributeFileUrl($fileAttributeValue, true, true, $customer->getId());
                 $afterElementHtml .= '<br /><a href="' . $downloadUrl . '"><img alt="' . Mage::helper('amcustomerattr')->__('Download File') . '" title="' . Mage::helper('amcustomerattr')->__('Download File') . '" src="' . Mage::getDesign()->getSkinUrl('images/fam_bullet_disk.gif') . '" class="v-middle"></a>' . '<a href="' . $downloadUrl . '">' . $fileName[3] . '</a><br />' . '<input type="checkbox" id="' . $attribute->getAttributeCode() . '_delete_file" name="amcustomerattr_delete[' . $attribute->getAttributeCode() . ']" value="' . $fileAttributeValue . '" /> Delete File' . '<input type="hidden" id="' . $attribute->getAttributeCode() . '" name="amcustomerattr[' . $attribute->getAttributeCode() . ']" value="' . $fileAttributeValue . '" />' . '<div style="padding: 4px;"></div>';
             } else {
                 $afterElementHtml .= '<input type="hidden" id="' . $attribute->getAttributeCode() . '" name="amcustomerattr[' . $attribute->getAttributeCode() . ']" value="" />' . '<div style="padding: 4px;"></div>';
                 $afterElementHtml .= '<div style="padding: 4px;"></div>';
             }
         } else {
             $element->setText($attributeValue);
             $afterElementHtml .= '<div style="padding: 4px;"></div>';
         }
         $element->setAfterElementHtml($afterElementHtml);
         if ($inputType == 'select' || $inputType == 'selectimg' || $inputType == 'multiselect' || $inputType == 'multiselectimg') {
             // getting values translations
             $valuesCollection = Mage::getResourceModel('eav/entity_attribute_option_collection')->setAttributeFilter($attribute->getId())->setStoreFilter(Mage::app()->getStore()->getId(), false)->load();
             foreach ($valuesCollection as $item) {
                 $values[$item->getId()] = $item->getValue();
             }
             // applying translations
             $options = $attribute->getSource()->getAllOptions(true, true);
             $defaultValue = $attribute->getDefaultValue();
             foreach ($options as $i => $option) {
                 if (isset($values[$option['value']])) {
                     $options[$i]['label'] = $values[$option['value']];
                 }
                 if ($defaultValue == $option['value']) {
                     $options[$i]['default'] = true;
                 }
             }
             $element->setValues($options);
         } elseif ($inputType == 'date') {
             $dateImage = $this->getSkinUrl('images/grid-cal.gif', array('_area' => 'adminhtml', '_package' => 'default'));
             if ($attribute->getIsReadOnly()) {
                 $dateImage = '';
             }
             $element->setImage($dateImage);
             $element->setFormat(Mage::app()->getLocale()->getDateFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT));
         }
     }
     if ($isAnyAttributeApplies) {
         $this->_formElements = $form->getElements();
     } else {
         $this->_formElements = array();
     }
     return $this->_formElements;
 }
Example #4
0
 /**
  * Prepare form before rendering HTML
  *
  * @return Enterprise_Cms_Block_Adminhtml_Cms_Hierarchy_Edit_Form
  */
 protected function _prepareForm()
 {
     $form = new Varien_Data_Form(array('id' => 'edit_form', 'action' => $this->getUrl('*/*/save'), 'method' => 'post'));
     /**
      * Define general properties for each node
      */
     $fieldset = $form->addFieldset('node_properties_fieldset', array('legend' => Mage::helper('enterprise_cms')->__('Page Properties')));
     $fieldset->addField('nodes_data', 'hidden', array('name' => 'nodes_data'));
     $fieldset->addField('removed_nodes', 'hidden', array('name' => 'removed_nodes'));
     $fieldset->addField('node_id', 'hidden', array('name' => 'node_id'));
     $fieldset->addField('node_page_id', 'hidden', array('name' => 'node_page_id'));
     $fieldset->addField('node_label', 'text', array('name' => 'label', 'label' => Mage::helper('enterprise_cms')->__('Title'), 'required' => true, 'onchange' => 'hierarchyNodes.nodeChanged()', 'tabindex' => '10'));
     $fieldset->addField('node_identifier', 'text', array('name' => 'identifier', 'label' => Mage::helper('enterprise_cms')->__('URL Key'), 'required' => true, 'class' => 'validate-identifier', 'onchange' => 'hierarchyNodes.nodeChanged()', 'tabindex' => '20'));
     $fieldset->addField('node_label_text', 'note', array('label' => Mage::helper('enterprise_cms')->__('Title')));
     $fieldset->addField('node_identifier_text', 'note', array('label' => Mage::helper('enterprise_cms')->__('URL Key')));
     $fieldset->addField('node_preview', 'link', array('label' => Mage::helper('enterprise_cms')->__('Preview'), 'href' => '#', 'value' => Mage::helper('enterprise_cms')->__('No preview available')));
     $yesNoOptions = Mage::getSingleton('adminhtml/system_config_source_yesno')->toOptionArray();
     /**
      * Define field set with elements for root nodes
      */
     if (Mage::helper('enterprise_cms/hierarchy')->isMetadataEnabled()) {
         $fieldset = $form->addFieldset('metadata_fieldset', array('legend' => Mage::helper('enterprise_cms')->__('Render Metadata in HTML Head')));
         $fieldset->addField('meta_first_last', 'select', array('label' => Mage::helper('enterprise_cms')->__('First'), 'title' => Mage::helper('enterprise_cms')->__('First'), 'name' => 'meta_first_last', 'values' => $yesNoOptions, 'onchange' => 'hierarchyNodes.nodeChanged()', 'container_id' => 'field_meta_first_last', 'tabindex' => '30'));
         $fieldset->addField('meta_next_previous', 'select', array('label' => Mage::helper('enterprise_cms')->__('Next/Previous'), 'title' => Mage::helper('enterprise_cms')->__('Next/Previous'), 'name' => 'meta_next_previous', 'values' => $yesNoOptions, 'onchange' => 'hierarchyNodes.nodeChanged()', 'container_id' => 'field_meta_next_previous', 'tabindex' => '40'));
         $fieldset->addField('meta_cs_enabled', 'select', array('label' => Mage::helper('enterprise_cms')->__('Enable Chapter/Section'), 'title' => Mage::helper('enterprise_cms')->__('Enable Chapter/Section'), 'name' => 'meta_cs_enabled', 'values' => $yesNoOptions, 'onchange' => 'hierarchyNodes.nodeChanged()', 'container_id' => 'field_meta_cs_enabled', 'tabindex' => '45'));
         $fieldset->addField('meta_chapter_section', 'select', array('label' => Mage::helper('enterprise_cms')->__('Chapter/Section'), 'title' => Mage::helper('enterprise_cms')->__('Chapter/Section'), 'name' => 'meta_chapter_section', 'values' => Mage::getSingleton('enterprise_cms/source_hierarchy_menu_chapter')->toOptionArray(), 'onchange' => 'hierarchyNodes.nodeChanged()', 'container_id' => 'field_meta_chapter_section', 'tabindex' => '50'));
     }
     /**
      * Pagination options
      */
     $pagerFieldset = $form->addFieldset('pager_fieldset', array('legend' => Mage::helper('enterprise_cms')->__('Pagination Options for Nested Pages')));
     $pagerFieldset->addField('pager_visibility', 'select', array('label' => Mage::helper('enterprise_cms')->__('Enable Pagination'), 'name' => 'pager_visibility', 'values' => Mage::getSingleton('enterprise_cms/source_hierarchy_visibility')->toOptionArray(), 'value' => Enterprise_Cms_Helper_Hierarchy::METADATA_VISIBILITY_PARENT, 'onchange' => "hierarchyNodes.metadataChanged('pager_visibility', 'pager_fieldset')", 'tabindex' => '70'));
     $pagerFieldset->addField('pager_frame', 'text', array('name' => 'pager_frame', 'label' => Mage::helper('enterprise_cms')->__('Frame'), 'onchange' => 'hierarchyNodes.nodeChanged()', 'container_id' => 'field_pager_frame', 'note' => Mage::helper('enterprise_cms')->__('How many Links to display at once'), 'tabindex' => '80'));
     $pagerFieldset->addField('pager_jump', 'text', array('name' => 'pager_jump', 'label' => Mage::helper('enterprise_cms')->__('Frame Skip'), 'onchange' => 'hierarchyNodes.nodeChanged()', 'container_id' => 'field_pager_jump', 'note' => Mage::helper('enterprise_cms')->__('If the Current Frame Position does not cover Utmost Pages, will render Link to Current Position plus/minus this Value'), 'tabindex' => '90'));
     /**
      * Context menu options
      */
     $menuFieldset = $form->addFieldset('menu_fieldset', array('legend' => Mage::helper('enterprise_cms')->__('Navigation Menu Options')));
     $menuFieldset->addField('menu_excluded', 'select', array('label' => Mage::helper('enterprise_cms')->__('Exclude from Navigation Menu'), 'name' => 'menu_excluded', 'values' => $yesNoOptions, 'onchange' => "hierarchyNodes.nodeChanged()", 'container_id' => 'field_menu_excluded', 'tabindex' => '100'));
     $menuFieldset->addField('menu_visibility', 'select', array('label' => Mage::helper('enterprise_cms')->__('Enable Navigation Menu'), 'name' => 'menu_visibility', 'values' => $yesNoOptions, 'onchange' => "hierarchyNodes.metadataChanged('menu_visibility', 'menu_fieldset')", 'container_id' => 'field_menu_visibility', 'tabindex' => '110'));
     $menuFieldset->addField('menu_layout', 'select', array('label' => Mage::helper('enterprise_cms')->__('Menu Layout'), 'name' => 'menu_layout', 'values' => Mage::getSingleton('enterprise_cms/source_hierarchy_menu_layout')->toOptionArray(true), 'onchange' => "hierarchyNodes.nodeChanged()", 'container_id' => 'field_menu_layout', 'tabindex' => '115'));
     $menuBriefOptions = array(array('value' => 1, 'label' => Mage::helper('enterprise_cms')->__('Only Children')), array('value' => 0, 'label' => Mage::helper('enterprise_cms')->__('Neighbours and Children')));
     $menuFieldset->addField('menu_brief', 'select', array('label' => Mage::helper('enterprise_cms')->__('Menu Detalization'), 'name' => 'menu_brief', 'values' => $menuBriefOptions, 'onchange' => "hierarchyNodes.nodeChanged()", 'container_id' => 'field_menu_brief', 'tabindex' => '120'));
     $menuFieldset->addField('menu_levels_down', 'text', array('name' => 'menu_levels_down', 'label' => Mage::helper('enterprise_cms')->__('Maximal Depth'), 'onchange' => 'hierarchyNodes.nodeChanged()', 'container_id' => 'field_menu_levels_down', 'note' => Mage::helper('enterprise_cms')->__('Node Levels to Include'), 'tabindex' => '130'));
     $menuFieldset->addField('menu_ordered', 'select', array('label' => Mage::helper('enterprise_cms')->__('List Type'), 'title' => Mage::helper('enterprise_cms')->__('List Type'), 'name' => 'menu_ordered', 'values' => Mage::getSingleton('enterprise_cms/source_hierarchy_menu_listtype')->toOptionArray(), 'onchange' => 'hierarchyNodes.menuListTypeChanged()', 'container_id' => 'field_menu_ordered', 'tabindex' => '140'));
     $menuFieldset->addField('menu_list_type', 'select', array('label' => Mage::helper('enterprise_cms')->__('List Style'), 'title' => Mage::helper('enterprise_cms')->__('List Style'), 'name' => 'menu_list_type', 'values' => Mage::getSingleton('enterprise_cms/source_hierarchy_menu_listmode')->toOptionArray(), 'onchange' => 'hierarchyNodes.nodeChanged()', 'container_id' => 'field_menu_list_type', 'tabindex' => '150'));
     if ($this->isLockedByOther()) {
         foreach ($form->getElements() as $formElement) {
             if ($formElement->getType() == 'fieldset') {
                 foreach ($formElement->getElements() as $fieldsetElement) {
                     $fieldsetElement->setDisabled(true);
                 }
             }
         }
     }
     $form->setUseContainer(true);
     $this->setForm($form);
     return parent::_prepareForm();
 }
Example #5
0
 /**
  * Initialize form
  *
  * @return Mage_Adminhtml_Block_Customer_Edit_Tab_Account
  */
 public function initForm()
 {
     $form = new Varien_Data_Form();
     $form->setHtmlIdPrefix('_account');
     $form->setFieldNameSuffix('account');
     $customer = Mage::registry('current_customer');
     /** @var $customerForm Mage_Customer_Model_Form */
     $customerForm = Mage::getModel('customer/form');
     $customerForm->setEntity($customer)->setFormCode('adminhtml_customer')->initDefaultValues();
     $fieldset = $form->addFieldset('base_fieldset', array('legend' => Mage::helper('customer')->__('Account Information')));
     $attributes = $customerForm->getAttributes();
     foreach ($attributes as $attribute) {
         /* @var $attribute Mage_Eav_Model_Entity_Attribute */
         $attribute->setFrontendLabel(Mage::helper('customer')->__($attribute->getFrontend()->getLabel()));
         $attribute->unsIsVisible();
     }
     $disableAutoGroupChangeAttributeName = 'disable_auto_group_change';
     $this->_setFieldset($attributes, $fieldset, array($disableAutoGroupChangeAttributeName));
     $form->getElement('group_id')->setRenderer($this->getLayout()->createBlock('adminhtml/customer_edit_renderer_attribute_group')->setDisableAutoGroupChangeAttribute($customerForm->getAttribute($disableAutoGroupChangeAttributeName))->setDisableAutoGroupChangeAttributeValue($customer->getData($disableAutoGroupChangeAttributeName)));
     if ($customer->getId()) {
         foreach ($form->getElements() as $mfieldset) {
             $mfieldset->removeField('amountused');
             $mfieldset->removeField('credit_amount');
             $mfieldset->removeField('credit_due_date');
             $mfieldset->removeField('credit_payment_status');
             $mfieldset->removeField('credit_pending_amount');
             $mfieldset->removeField('credit_time_period');
             $mfieldset->removeField('storecreditactive');
             $mfieldset->removeField('zapproverimage');
             $mfieldset->removeField('zcorporateapprover');
             $mfieldset->removeField('zmyapprover');
             $mfieldset->removeField('suffix');
             $mfieldset->removeField('taxvat');
             $mfieldset->removeField('company');
             $mfieldset->removeField('approver');
             $mfieldset->removeField('is_verified');
             $mfieldset->removeField('order_placed');
             //$mfieldset->removeField('std_code');
             $mfieldset->removeField('new_telephone');
             $mfieldset->removeField('is_approver');
             $mfieldset->removeField('zcorporatename');
         }
         $renderer = $this->getLayout()->createBlock('adminhtml/customer_edit_renderer_telephone');
         $form->getElement('std_code')->setRenderer($renderer);
         $form->getElement('website_id')->setDisabled('disabled');
         $form->getElement('created_in')->setDisabled('disabled');
     } else {
         $fieldset->removeField('created_in');
         $form->getElement('website_id')->addClass('validate-website-has-store');
         $websites = array();
         foreach (Mage::app()->getWebsites(true) as $website) {
             $websites[$website->getId()] = !is_null($website->getDefaultStore());
         }
         $prefix = $form->getHtmlIdPrefix();
         $form->getElement('website_id')->setAfterElementHtml('<script type="text/javascript">' . "\n                var {$prefix}_websites = " . Mage::helper('core')->jsonEncode($websites) . ";\n                Validation.add(\n                    'validate-website-has-store',\n                    '" . Mage::helper('customer')->__('Please select a website which contains store view') . "',\n                    function(v, elem){\n                        return {$prefix}_websites[elem.value] == true;\n                    }\n                );\n                Element.observe('{$prefix}website_id', 'change', function(){\n                    Validation.validate(\$('{$prefix}website_id'))\n                }.bind(\$('{$prefix}website_id')));\n                " . '</script>');
     }
     $renderer = $this->getLayout()->createBlock('adminhtml/store_switcher_form_renderer_fieldset_element');
     $form->getElement('website_id')->setRenderer($renderer);
     //        if (Mage::app()->isSingleStoreMode()) {
     //            $fieldset->removeField('website_id');
     //            $fieldset->addField('website_id', 'hidden', array(
     //                'name'      => 'website_id'
     //            ));
     //            $customer->setWebsiteId(Mage::app()->getStore(true)->getWebsiteId());
     //        }
     $customerStoreId = null;
     if ($customer->getId()) {
         $customerStoreId = Mage::app()->getWebsite($customer->getWebsiteId())->getDefaultStore()->getId();
     }
     $prefixElement = $form->getElement('prefix');
     if ($prefixElement) {
         $prefixOptions = $this->helper('customer')->getNamePrefixOptions($customerStoreId);
         if (!empty($prefixOptions)) {
             $fieldset->removeField($prefixElement->getId());
             $prefixField = $fieldset->addField($prefixElement->getId(), 'select', $prefixElement->getData(), $form->getElement('group_id')->getId());
             $prefixField->setValues($prefixOptions);
             if ($customer->getId()) {
                 $prefixField->addElementValues($customer->getPrefix());
             }
         }
     }
     $suffixElement = $form->getElement('suffix');
     if ($suffixElement) {
         $suffixOptions = $this->helper('customer')->getNameSuffixOptions($customerStoreId);
         if (!empty($suffixOptions)) {
             $fieldset->removeField($suffixElement->getId());
             $suffixField = $fieldset->addField($suffixElement->getId(), 'select', $suffixElement->getData(), $form->getElement('lastname')->getId());
             $suffixField->setValues($suffixOptions);
             if ($customer->getId()) {
                 $suffixField->addElementValues($customer->getSuffix());
             }
         }
     }
     if ($customer->getId()) {
         if (!$customer->isReadonly()) {
             // Add password management fieldset
             $newFieldset = $form->addFieldset('password_fieldset', array('legend' => Mage::helper('customer')->__('Password Management')));
             // New customer password
             $field = $newFieldset->addField('new_password', 'text', array('label' => Mage::helper('customer')->__('New Password'), 'name' => 'new_password', 'class' => 'validate-new-password'));
             $field->setRenderer($this->getLayout()->createBlock('adminhtml/customer_edit_renderer_newpass'));
             // $newFieldset = $form->addFieldset(
             //                 'password_fieldsets',
             //                 array('legend' => Mage::helper('customer')->__('Account Manager'))
             //             );
             //             // New customer password
             //             $field = $newFieldset->addField('new_passwords', 'text',
             //                 array(
             //                     'label' => Mage::helper('customer')->__('New Password'),
             //                     'name'  => 'new_passwords',
             //                     )
             //             );
             //             $field->setRenderer($this->getLayout()->createBlock('adminhtml/customer_edit_renderer_agent'));
             // Prepare customer confirmation control (only for existing customers)
             $confirmationKey = $customer->getConfirmation();
             if ($confirmationKey || $customer->isConfirmationRequired()) {
                 $confirmationAttribute = $customer->getAttribute('confirmation');
                 if (!$confirmationKey) {
                     $confirmationKey = $customer->getRandomConfirmationKey();
                 }
                 $element = $fieldset->addField('confirmation', 'select', array('name' => 'confirmation', 'label' => Mage::helper('customer')->__($confirmationAttribute->getFrontendLabel())))->setEntityAttribute($confirmationAttribute)->setValues(array('' => 'Confirmed', $confirmationKey => 'Not confirmed'));
                 // Prepare send welcome email checkbox if customer is not confirmed
                 // no need to add it, if website ID is empty
                 if ($customer->getConfirmation() && $customer->getWebsiteId()) {
                     $fieldset->addField('sendemail', 'checkbox', array('name' => 'sendemail', 'label' => Mage::helper('customer')->__('Send Welcome Email after Confirmation')));
                     $customer->setData('sendemail', '1');
                 }
             }
         }
     } else {
         $newFieldset = $form->addFieldset('password_fieldset', array('legend' => Mage::helper('customer')->__('Password Management')));
         $field = $newFieldset->addField('password', 'text', array('label' => Mage::helper('customer')->__('Password'), 'class' => 'input-text required-entry validate-password', 'name' => 'password', 'required' => true));
         $field->setRenderer($this->getLayout()->createBlock('adminhtml/customer_edit_renderer_newpass'));
         // Prepare send welcome email checkbox
         $fieldset->addField('sendemail', 'checkbox', array('label' => Mage::helper('customer')->__('Send Welcome Email'), 'name' => 'sendemail', 'id' => 'sendemail'));
         $customer->setData('sendemail', '1');
         if (!Mage::app()->isSingleStoreMode()) {
             $fieldset->addField('sendemail_store_id', 'select', array('label' => $this->helper('customer')->__('Send From'), 'name' => 'sendemail_store_id', 'values' => Mage::getSingleton('adminhtml/system_store')->getStoreValuesForForm()));
         }
     }
     // Make sendemail and sendmail_store_id disabled if website_id has empty value
     $isSingleMode = Mage::app()->isSingleStoreMode();
     $sendEmailId = $isSingleMode ? 'sendemail' : 'sendemail_store_id';
     $sendEmail = $form->getElement($sendEmailId);
     $prefix = $form->getHtmlIdPrefix();
     if ($sendEmail) {
         $_disableStoreField = '';
         if (!$isSingleMode) {
             $_disableStoreField = "\$('{$prefix}sendemail_store_id').disabled=(''==this.value || '0'==this.value);";
         }
         $sendEmail->setAfterElementHtml('<script type="text/javascript">' . "\n                \$('{$prefix}website_id').disableSendemail = function() {\n                    \$('{$prefix}sendemail').disabled = ('' == this.value || '0' == this.value);" . $_disableStoreField . "}.bind(\$('{$prefix}website_id'));\n                Event.observe('{$prefix}website_id', 'change', \$('{$prefix}website_id').disableSendemail);\n                \$('{$prefix}website_id').disableSendemail();\n                " . '</script>');
     }
     if ($customer->isReadonly()) {
         foreach ($customer->getAttributes() as $attribute) {
             $element = $form->getElement($attribute->getAttributeCode());
             if ($element) {
                 $element->setReadonly(true, true);
             }
         }
     }
     $form->setValues($customer->getData());
     $this->setForm($form);
     return $this;
 }
Example #6
0
 public function getFormElements()
 {
     if ($this->_formElements) {
         return $this->_formElements;
     }
     //        $collection = Mage::getModel('eav/entity_attribute')->getCollection();
     $collection = Mage::getModel('customer/attribute')->getCollection();
     $collection->addFieldToFilter('is_user_defined', 1);
     if ('true' == (string) Mage::getConfig()->getNode('modules/Amasty_Orderattr/active')) {
         $alias = 'main_table';
         if (false !== strpos($collection->getSelect()->__toString(), $alias)) {
             $collection->addFieldToFilter('main_table.is_visible_on_front', 1);
         } else {
             $collection->addFieldToFilter('e.is_visible_on_front', 1);
         }
     } else {
         $collection->addFieldToFilter('is_visible_on_front', 1);
     }
     if ($this->_isCheckout()) {
         // Show on Billing During Checkout
         $collection->addFieldToFilter('used_in_product_listing', 1);
     }
     $collection->addFieldToFilter('entity_type_id', $this->_entityTypeId);
     if ('true' == (string) Mage::getConfig()->getNode('modules/Amasty_Orderattr/active')) {
         $alias = 'main_table';
         if (false !== strpos($collection->getSelect()->__toString(), $alias)) {
             $collection->getSelect()->order('main_table.sorting_order');
         } else {
             $collection->getSelect()->order('e.sorting_order');
         }
     } else {
         $collection->getSelect()->order('sorting_order');
     }
     $attributes = $collection->load();
     $form = new Varien_Data_Form();
     $fieldset = $form->addFieldset('amcustomerattr', array());
     /**
      * Loading current customer, it we are on edit page
      */
     $customer = Mage::getSingleton('customer/session')->isLoggedIn() ? Mage::getSingleton('customer/session')->getCustomer() : null;
     $isAnyAttributeApplies = false;
     $customerAttributes = Mage::getSingleton('customer/session')->getAmcustomerattr();
     foreach ($attributes as $attribute) {
         $currentStore = $customer ? $customer->getStoreId() : Mage::app()->getStore()->getId();
         $storeIds = explode(',', $attribute->getData('store_ids'));
         $defaultValue = $attribute->getDefaultValue();
         if (!in_array($currentStore, $storeIds) && !in_array(0, $storeIds)) {
             continue;
         }
         $isAnyAttributeApplies = true;
         if ($inputType = $attribute->getFrontend()->getInputType()) {
             if ($attribute->getTypeInternal()) {
                 $inputType = $attribute->getTypeInternal();
             }
             $fieldType = $inputType;
             $rendererClass = $attribute->getFrontend()->getInputRendererClass();
             if (!empty($rendererClass)) {
                 $fieldType = $inputType . '_' . $attribute->getAttributeCode();
                 $fieldset->addType($fieldType, $rendererClass);
             }
             $fieldName = $this->_isCheckout() ? 'billing[amcustomerattr][' . $attribute->getAttributeCode() . ']' : 'amcustomerattr[' . $attribute->getAttributeCode() . ']';
             // default_value
             $attributeValue = '';
             if ($customer) {
                 $attributeValue = $customer->getData($attribute->getAttributeCode());
             } elseif ($attribute->getData('default_value')) {
                 $attributeValue = $attribute->getData('default_value');
             }
             // if for example there was page reload with error, we putting attribute back from session
             if (isset($customerAttributes[$attribute->getAttributeCode()])) {
                 $attributeValue = $customerAttributes[$attribute->getAttributeCode()];
             }
             // applying translations
             $translations = $attribute->getStoreLabels();
             if (isset($translations[Mage::app()->getStore()->getId()])) {
                 $attributeLabel = $translations[Mage::app()->getStore()->getId()];
             } else {
                 $attributeLabel = $attribute->getFrontend()->getLabel();
             }
             $element = $fieldset->addField($attribute->getAttributeCode(), $fieldType, array('name' => $fieldName, 'label' => $attributeLabel, 'class' => $attribute->getFrontend()->getClass(), 'required' => $attribute->getIsRequired(), 'note' => $attribute->getNote(), 'value' => $attributeValue))->setEntityAttribute($attribute);
             $element->setAfterElementHtml('<div style="padding: 4px;"></div>');
             if ($inputType == 'select' || $inputType == 'selectimg' || $inputType == 'multiselect' || $inputType == 'multiselectimg') {
                 // getting values translations
                 $valuesCollection = Mage::getResourceModel('eav/entity_attribute_option_collection')->setAttributeFilter($attribute->getId())->setStoreFilter(Mage::app()->getStore()->getId(), false)->load();
                 foreach ($valuesCollection as $item) {
                     $values[$item->getId()] = $item->getValue();
                 }
                 // applying translations
                 $options = $attribute->getSource()->getAllOptions(true, true);
                 foreach ($options as $i => $option) {
                     if (isset($values[$option['value']])) {
                         $options[$i]['label'] = $values[$option['value']];
                     }
                     if ($defaultValue == $option['value']) {
                         $options[$i]['default'] = true;
                     }
                 }
                 $element->setValues($options);
             } elseif ($inputType == 'date') {
                 $element->setImage($this->getSkinUrl('images/grid-cal.gif'));
                 $element->setFormat(Mage::app()->getLocale()->getDateFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT));
             }
         }
     }
     if ($isAnyAttributeApplies) {
         $this->_formElements = $form->getElements();
     } else {
         $this->_formElements = array();
     }
     return $this->_formElements;
 }
Example #7
0
 public function getFormsFields($_index)
 {
     /* {#AITOC_COMMENT_END#}
        $performer = Aitoc_Aitsys_Abstract_Service::get()->platform()->getModule('AdjustWare_Deliverydate')->getLicense()->getPerformer();
        $ruler = $performer->getRuler();
        $storeId = Mage::getSingleton('adminhtml/sales_order_create')->getSession()->getData('store_id');
        if (!($ruler->checkRule('store',$storeId,'store') ))
        {
            return array();
        }
        {#AITOC_COMMENT_START#} */
     if (!Mage::getStoreConfig('checkout/adjdeliverydate/enabled') || !Mage::getStoreConfig('checkout/adjdeliverydate/multienabled')) {
         return array();
     }
     $hlp = Mage::helper('adjdeliverydate');
     $form = new Varien_Data_Form(array('field_name_suffix' => 'adj'));
     $layout = Mage::app()->getFrontController()->getAction()->getLayout();
     $form->addField('delivery_date' . $_index, 'date', array('name' => 'delivery_date' . $_index, 'label' => $hlp->__('Delivery Date'), 'title' => $hlp->__('Delivery Date'), 'image' => Mage::getDesign()->getSkinUrl('images/grid-cal.gif'), 'input_format' => Varien_Date::DATE_INTERNAL_FORMAT, 'format' => Mage::getStoreConfig('checkout/adjdeliverydate/format'), 'no_span' => 1, 'validator' => 'adjdeliverydate/validator_deliverydate', 'value' => $this->_getCurrentQuoteFieldValue('delivery_date', $_index)))->setRenderer($layout->createBlock('adjdeliverydate/renderer_deliverydate'));
     if (Mage::getStoreConfig('checkout/adjdeliverydate/show_time')) {
         $form->addField('delivery_time' . $_index, 'time', array('name' => 'delivery_time' . $_index, 'label' => $hlp->__('Delivery Time'), 'title' => $hlp->__('Delivery Time'), 'no_span' => 1, 'value' => $this->_getCurrentQuoteFieldValue('delivery_time', $_index)))->setRenderer($layout->createBlock('adjdeliverydate/renderer_time'));
     }
     if (Mage::getStoreConfig('checkout/adjdeliverydate/show_comment')) {
         $form->addField('delivery_comment' . $_index, 'text', array('name' => 'delivery_comment' . $_index, 'label' => $hlp->__('Comments'), 'title' => $hlp->__('Comments'), 'no_span' => 1, 'class' => 'input-text delivery-comment', 'value' => $this->_getCurrentQuoteFieldValue('delivery_comment', $_index)))->setRenderer($layout->createBlock('adjdeliverydate/renderer_default'));
     }
     return $form->getElements();
 }
 /**
  * @param Open_Gallery_Model_Item $item
  * @param Varien_Data_Form $form
  * @return $this|Open_Gallery_Helper_Item_Interface
  */
 public function prepareEditForm(Open_Gallery_Model_Item $item, Varien_Data_Form $form)
 {
     $isReadonlyMode = false;
     foreach ($form->getElements() as $element) {
         /** @var Varien_Data_Form_Element_Abstract $element */
         if ($element instanceof Varien_Data_Form_Element_Fieldset && 'general_information' == $element->getId()) {
             $fieldSet = $element;
             $fieldSet->addField('additional_type', 'select', array('name' => 'item[additional][type]', 'label' => $this->__('Source Type'), 'title' => $this->__('Source Type'), 'required' => true, 'disabled' => $isReadonlyMode, 'options' => Mage::getModel('open_gallery/config_system_source_type')->toOptionArray()));
             $fieldSet->addField('additional_value_file', 'file', array('name' => 'item[additional_value_file]', 'label' => $this->__('Video File'), 'title' => $this->__('Video File'), 'required' => !strlen($item->getData('value')), 'disabled' => $isReadonlyMode, 'container_id' => 'container_value_file', 'note' => $this->__('Allowed format(s): <strong>%s</strong>', implode(', ', $item->getAllowedFormats())) . '<br/>' . $this->__('Your server allow you to upload files not more than <strong>%s</strong>. You can modify <strong>post_max_size</strong> (currently is %s) and <strong>upload_max_filesize</strong> (currently is %s) values in php.ini if you want to upload larger files.', $this->getDataMaxSize(), $this->getPostMaxSize(), $this->getUploadMaxSize())));
             $fieldSet->addField('additional_value_youtube', 'text', array('name' => 'item[additional][value_youtube]', 'label' => $this->__('YouTube ID'), 'title' => $this->__('YouTube ID'), 'required' => true, 'disabled' => $isReadonlyMode, 'container_id' => 'container_value_youtube'));
             $fieldSet->addField('additional_value_embedded', 'textarea', array('name' => 'item[additional][value_embedded]', 'label' => $this->__('Embed Code'), 'title' => $this->__('Embed Code'), 'required' => true, 'disabled' => $isReadonlyMode, 'container_id' => 'container_value_embedded'));
             break;
         }
     }
     return $this;
 }
Example #9
0
 public function getFormElements()
 {
     if ($this->_formElements) {
         return $this->_formElements;
     }
     //        $collection = Mage::getModel('eav/entity_attribute')->getCollection();
     $collection = Mage::getModel('eav/entity_attribute')->getCollection();
     $collection->addFieldToFilter('is_visible_on_front', 1);
     $collection->addFieldToFilter('entity_type_id', $this->_entityTypeId);
     $collection->addFieldToFilter('checkout_step', $this->getStepCode());
     $collection->getSelect()->order('sorting_order');
     $attributes = $collection->load();
     $form = new Varien_Data_Form();
     $fieldset = $form->addFieldset('amorderattr', array());
     foreach ($attributes as $attribute) {
         $currentStore = Mage::app()->getStore()->getId();
         $storeIds = explode(',', $attribute->getData('store_ids'));
         if (!in_array($currentStore, $storeIds) && !in_array(0, $storeIds)) {
             continue;
         }
         if ($inputType = $attribute->getFrontend()->getInputType()) {
             $afterElementHtml = '';
             $fieldType = $inputType;
             $rendererClass = $attribute->getFrontend()->getInputRendererClass();
             if (!empty($rendererClass)) {
                 $fieldType = $inputType . '_' . $attribute->getAttributeCode();
                 $fieldset->addType($fieldType, $rendererClass);
             }
             // global name space, will merge from all steps
             $fieldName = 'amorderattr[' . $attribute->getAttributeCode() . ']';
             // default_value
             $attributeValue = '';
             if ($attribute->getData('default_value')) {
                 $attributeValue = $attribute->getData('default_value');
             }
             // if enabled, we will pre-fill the attribut with the last used value. works for registered customer only
             if ($attribute->getSaveSelected() && Mage::getSingleton('customer/session')->isLoggedIn()) {
                 $orderCollection = Mage::getModel('sales/order')->getCollection();
                 $orderCollection->addFieldToFilter('customer_id', Mage::getSingleton('customer/session')->getId());
                 // 1.3 compatibility
                 $alias = Mage::helper('ambase')->isVersionLessThan(1, 4) ? 'e' : 'main_table';
                 $orderCollection->getSelect()->join(array('custom_attributes' => Mage::getModel('amorderattr/attribute')->getResource()->getTable('amorderattr/order_attribute')), "{$alias}.entity_id = custom_attributes.order_id", array($attribute->getAttributeCode()));
                 $orderCollection->getSelect()->order('custom_attributes.order_id DESC');
                 $orderCollection->getSelect()->limit(1);
                 if ($orderCollection->getSize() > 0) {
                     foreach ($orderCollection as $lastOrder) {
                         $attributeValue = $lastOrder->getData($attribute->getAttributeCode());
                     }
                 }
             }
             // applying translations
             $translations = $attribute->getStoreLabels();
             if (isset($translations[Mage::app()->getStore()->getId()])) {
                 $attributeLabel = $translations[Mage::app()->getStore()->getId()];
             } else {
                 $attributeLabel = $attribute->getFrontend()->getLabel();
             }
             $element = $fieldset->addField($attribute->getAttributeCode(), $fieldType, array('name' => $fieldName, 'label' => $attributeLabel, 'class' => $attribute->getFrontend()->getClass(), 'required' => $attribute->getIsRequired(), 'note' => $attribute->getNote(), 'value' => $attributeValue))->setEntityAttribute($attribute);
             $afterElementHtml .= '<div style="padding: 4px;"></div>';
             if ($inputType == 'select' || $inputType == 'multiselect') {
                 $values = array();
                 // getting values translations
                 $valuesCollection = Mage::getResourceModel('eav/entity_attribute_option_collection')->setAttributeFilter($attribute->getId())->setStoreFilter(Mage::app()->getStore()->getId(), false)->load();
                 foreach ($valuesCollection as $item) {
                     $values[$item->getId()] = $item->getValue();
                 }
                 // applying translations
                 $options = $attribute->getSource()->getAllOptions(true, true);
                 foreach ($options as $i => $option) {
                     if (isset($values[$option['value']])) {
                         $options[$i]['label'] = $values[$option['value']];
                     }
                 }
                 if ($inputType == 'select' && $attribute->getParentDropdown()) {
                     $parentAttribute = Mage::getModel('eav/entity_attribute')->load($attribute->getParentDropdown());
                     $valuesCollection = Mage::getResourceModel('eav/entity_attribute_option_collection')->setAttributeFilter($attribute->getId())->load();
                     $linkedRelationship = array();
                     if ($valuesCollection->getSize() > 0) {
                         foreach ($valuesCollection as $value) {
                             foreach ($options as $option) {
                                 if ($option['value'] == $value->getOptionId()) {
                                     $linkedRelationship[$option['value']] = $value->getParentOptionId();
                                 }
                             }
                         }
                         $optionsJson = Zend_Json::encode($options);
                         $relationsJson = Zend_Json::encode($linkedRelationship);
                         $afterElementHtml .= '<script type="text/javascript">' . 'Event.observe(window, "load", function(){ peditGrid' . $attribute->getId() . ' = new amLinkedFields("' . $parentAttribute->getAttributeCode() . '", "' . $attribute->getAttributeCode() . '", ' . $optionsJson . ', ' . $relationsJson . '); });' . '</script>';
                         if ($attributeValue) {
                             // applying saved for future checkout value
                             $afterElementHtml .= '<script type="text/javascript">' . 'Event.observe(window, "load", function(){ 
                 						      	     $$("#' . $attribute->getAttributeCode() . ' option[value=' . $attributeValue . ']").each(function(elem){ elem.selected = true; }); 
                 	    			             });' . '</script>';
                         }
                     }
                 } else {
                     $element->setValues($options);
                 }
             } elseif ($inputType == 'date' && 'time' != $attribute->getNote()) {
                 $element->setImage($this->getSkinUrl('images/grid-cal.gif'));
                 $element->setFormat(Mage::app()->getLocale()->getDateFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT));
             } elseif ($inputType == 'date' && 'time' == $attribute->getNote()) {
                 $element->setImage($this->getSkinUrl('images/grid-cal.gif'));
                 $element->setFormat(Mage::app()->getLocale()->getDateFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT) . ' HH:mm');
                 $element->setTime(true);
             }
             $element->setAfterElementHtml($afterElementHtml);
         }
     }
     $this->_formElements = $form->getElements();
     return $this->_formElements;
 }
Example #10
0
 public function getFormElements()
 {
     if ($this->_formElements) {
         return $this->_formElements;
     }
     $quote = Mage::getSingleton('adminhtml/session_quote')->getQuote();
     $customer = $quote->getCustomer();
     $customerData = $customer->getData();
     $attributes = Mage::getModel('customer/attribute')->getCollection();
     $filters = array("is_user_defined = 1", "entity_type_id = " . Mage::getModel('eav/entity')->setType('customer')->getTypeId());
     $attributes = Mage::helper('amcustomerattr')->addFilters($attributes, 'eav_attribute', $filters);
     $sorting = 'sorting_order';
     $filters = array();
     $attributes = Mage::helper('amcustomerattr')->addFilters($attributes, 'customer_eav_attribute', $filters, $sorting);
     $attributes->load();
     $form = new Varien_Data_Form();
     $fieldset = $form->addFieldset('amcustomerattr', array());
     $formData = array();
     foreach ($attributes as $attribute) {
         $currentStore = Mage::getSingleton('adminhtml/session_quote')->getStore()->getId();
         $storeIds = explode(',', $attribute->getData('store_ids'));
         if (!in_array($currentStore, $storeIds) && !in_array(0, $storeIds)) {
             continue;
         }
         if ($inputType = $attribute->getFrontend()->getInputType()) {
             $fieldType = $inputType;
             $rendererClass = $attribute->getFrontend()->getInputRendererClass();
             if (!empty($rendererClass)) {
                 $fieldType = $inputType . '_' . $attribute->getAttributeCode();
                 $fieldset->addType($fieldType, $rendererClass);
             }
             // applying translations
             $attributeLabel = $attribute->getFrontendLabel();
             $elementOptions = array('name' => $attribute->getAttributeCode(), 'label' => $attributeLabel, 'class' => $attribute->getFrontend()->getClass(), 'required' => $attribute->getIsRequired());
             if ('checkboxes' == $inputType || 'radios' == $inputType) {
                 $elementOptions['name'] .= '[]';
                 $formData[$attribute->getAttributeCode()] = explode(',', $customerData[$attribute->getAttributeCode()]);
                 $elementOptions['values'] = $attribute->getSource()->getAllOptions(false, true);
             } else {
                 if (isset($customerData[$attribute->getAttributeCode()])) {
                     $formData[$attribute->getAttributeCode()] = $customerData[$attribute->getAttributeCode()];
                 }
             }
             $afterElementHtml = '';
             if ('date' == $inputType) {
                 $dateFormatIso = Mage::app()->getLocale()->getDateFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT);
                 $elementOptions = array('name' => $attribute->getAttributeCode(), 'label' => $attributeLabel, 'title' => $attributeLabel, 'image' => $this->getSkinUrl('images/grid-cal.gif'), 'class' => $attribute->getFrontend()->getClass(), 'required' => $attribute->getIsRequired(), 'format' => $dateFormatIso, 'readonly' => 1, 'onclick' => 'amcustomerattr_trig(' . $attribute->getAttributeCode() . '_trig)');
                 if ('time' == $attribute->getNote()) {
                     $elementOptions['time'] = true;
                     $elementOptions['format'] .= ' HH:mm';
                 }
                 $afterElementHtml .= '<script type="text/javascript">' . 'function amcustomerattr_trig(id)' . '{ $(id).click(); }' . '</script>';
             }
             $element = $fieldset->addField($attribute->getAttributeCode(), $fieldType, $elementOptions)->setEntityAttribute($attribute);
             if ($inputType == 'radios' || $inputType == 'select' || $inputType == 'multiselect' || $inputType == 'boolean') {
                 // getting values translations
                 $valuesCollection = Mage::getResourceModel('eav/entity_attribute_option_collection')->setAttributeFilter($attribute->getId())->setStoreFilter($currentStore, false)->load();
                 foreach ($valuesCollection as $item) {
                     $values[$item->getId()] = $item->getValue();
                 }
                 // applying translations
                 $options = $attribute->getSource()->getAllOptions(true, true);
                 foreach ($options as $i => $option) {
                     if (isset($values[$option['value']])) {
                         $options[$i]['label'] = $values[$option['value']];
                     }
                 }
                 $element->setAfterElementHtml($afterElementHtml);
                 $element->setValues($options);
             }
         }
     }
     $form->setValues($formData);
     $this->_formElements = $form->getElements();
     return $this->_formElements;
 }
 public function getFormElements()
 {
     if ($this->_formElements) {
         return $this->_formElements;
     }
     $collection = Mage::getModel('eav/entity_attribute')->getCollection();
     $collection->addFieldToFilter('checkout_step', array(2, 3, 4, 5));
     $collection->addFieldToFilter('entity_type_id', $this->_entityTypeId);
     $collection->getSelect()->order('sorting_order');
     $attributes = $collection->load();
     $form = new Varien_Data_Form();
     $fieldset = $form->addFieldset('amorderattr', array());
     $attributeValues = null;
     /**
      * Reorder or order edit process. Should load values from old order.
      */
     if (($reorderId = Mage::getSingleton('adminhtml/session_quote')->getOrderId()) || ($reorderId = Mage::getSingleton('adminhtml/session_quote')->getReordered())) {
         $attributeValues = Mage::getModel('amorderattr/attribute')->load($reorderId, 'order_id');
     }
     foreach ($attributes as $attribute) {
         $currentStore = Mage::getSingleton('adminhtml/session_quote')->getStore()->getId();
         $storeIds = explode(',', $attribute->getData('store_ids'));
         if (!in_array($currentStore, $storeIds) && !in_array(0, $storeIds)) {
             continue;
         }
         if ($inputType = $attribute->getFrontend()->getInputType()) {
             $fieldType = $inputType;
             $rendererClass = $attribute->getFrontend()->getInputRendererClass();
             if (!empty($rendererClass)) {
                 $fieldType = $inputType . '_' . $attribute->getAttributeCode();
                 $fieldset->addType($fieldType, $rendererClass);
             }
             // global name space, will merge from all steps
             $fieldName = 'amorderattr[' . $attribute->getAttributeCode() . ']';
             // default_value
             $attributeValue = '';
             if ($attribute->getData('default_value')) {
                 $attributeValue = $attribute->getData('default_value');
             }
             if ($attributeValues && $attributeValues->hasData($attribute->getAttributeCode())) {
                 $attributeValue = $attributeValues->getData($attribute->getAttributeCode());
             }
             // applying translations
             $attributeLabel = $attribute->getFrontendLabel();
             $element = $fieldset->addField($attribute->getAttributeCode(), $fieldType, array('name' => $fieldName, 'label' => $attributeLabel, 'class' => $attribute->getFrontend()->getClass(), 'required' => $attribute->getIsRequired(), 'note' => $attribute->getNote(), 'value' => $attributeValue))->setEntityAttribute($attribute);
             if ($inputType == 'select' || $inputType == 'multiselect') {
                 // getting values translations
                 $valuesCollection = Mage::getResourceModel('eav/entity_attribute_option_collection')->setAttributeFilter($attribute->getId())->setStoreFilter($currentStore, false)->load();
                 foreach ($valuesCollection as $item) {
                     $values[$item->getId()] = $item->getValue();
                 }
                 // applying translations
                 $options = $attribute->getSource()->getAllOptions(true, true);
                 foreach ($options as $i => $option) {
                     if (isset($values[$option['value']])) {
                         $options[$i]['label'] = $values[$option['value']];
                     }
                 }
                 $element->setValues($options);
             } elseif ($inputType == 'date') {
                 $element->setImage($this->getSkinUrl('images/grid-cal.gif'));
                 $element->setFormat(Mage::app()->getLocale()->getDateFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT));
             }
         }
     }
     $this->_formElements = $form->getElements();
     return $this->_formElements;
 }