示例#1
0
 /**
  * Render required attributes
  * @param Varien_Data_Form_Element_Fieldset $fldAttr
  * @param Amasty_Banners_Model_Rule $model
  */
 protected function prepareAttributes($fldAttr, $model)
 {
     $hlp = Mage::helper('ambanners');
     /*
      * Add Empty Fields user for new conditions
      */
     $fieldSet = $this->getForm()->addFieldset('attributestmp', array('legend' => $hlp->__('Attribute Tmp')));
     $fieldSet->addField('attr_code[][]', 'select', array('label' => $hlp->__('Has attribute'), 'name' => 'attr_code[]', 'values' => $this->getAttributes(), 'onchange' => 'showOptions(this)'));
     $fieldSet->addField('attr_value[][]', 'text', array('label' => $hlp->__('Attribute value is'), 'name' => 'attr_value[]'));
     $array = $model->getAttributesAsArray();
     foreach ($array as $attributeCode => $attributeValue) {
         if (empty($attributeCode)) {
             continue;
         }
         if (is_array($attributeValue)) {
             foreach ($attributeValue as $i => $value) {
                 /*
                  * Add Attribute Names
                  */
                 $elementCode = $attributeCode . '-' . $value . '-' . $i;
                 $fldAttr->addField('attr_code[' . $elementCode . ']', 'select', array('label' => $hlp->__('Has attribute'), 'name' => 'attr_code[' . $elementCode . ']', 'values' => $this->getAttributes(), 'onchange' => 'showOptions(this)', 'value' => $attributeCode, 'note' => $hlp->__('If attribute is related to configurable products, please make sure that attribute is used in layered navigation'), 'after_element_html' => '<a href="#" onclick="landingRemove(this);return false;" title="' . $hlp->__('Remove') . '">' . $hlp->__('X') . '</a>'));
                 /*
                  * Add Attribute Options
                  */
                 $attribute = Mage::getModel('catalog/product')->getResource()->getAttribute($attributeCode);
                 if ('select' === $attribute->getFrontendInput() || 'multiselect' === $attribute->getFrontendInput()) {
                     $options = $attribute->getFrontend()->getSelectOptions();
                     $fldAttr->addField('attr_value[' . $elementCode . ']', 'select', array('label' => $hlp->__('Attribute value is'), 'name' => 'attr_value[' . $elementCode . ']', 'values' => $options, 'value' => $value));
                 } else {
                     $fldAttr->addField('attr_value[' . $elementCode . ']', 'text', array('label' => $hlp->__('Attribute value is'), 'name' => 'attr_value[' . $elementCode . ']', 'value' => $value));
                 }
             }
         }
     }
 }
示例#2
0
 /**
  * @param Aitoc_Aitsys_Model_Module $module
  * @param Varien_Data_Form_Element_Fieldset $fieldset
  */
 protected function _addModule(Aitoc_Aitsys_Model_Module $module, Varien_Data_Form_Element_Fieldset $fieldset)
 {
     if ($module->isIgnore()) {
         return false;
     }
     $aModule = $module;
     $label = $module->getInfo()->getLabel() . ($module->getInfo()->getVersion() ? ' v' . $module->getInfo()->getVersion() : '');
     $message = '';
     $messageType = 'notice-msg';
     $isDemo = false;
     if ($this->tool()->platform()->hasDemoMode()) {
         $xml = simplexml_load_file(Mage::getBaseDir() . "/aitmodules.xml");
         $link = (string) $xml->modules->{$aModule}['key'];
         if ($link == '') {
             $link = $this->tool()->getAitocUrl();
         }
         $message = Mage::helper('aitsys')->__("The extension is already enabled on this Demo Magento installation and can't be disabled for security reasons. Please proceed to the next step outlined in the extension's <a href='%s' target='_blank'>User Manual</a> to see how it works.", $link);
         $isDemo = true;
     } elseif (defined('COMPILER_INCLUDE_PATH')) {
         $compilerUrl = version_compare(Mage::getVersion(), '1.5.0.0', '>=') ? Mage::helper('adminhtml')->getUrl('adminhtml/compiler_process/index/') : Mage::helper('adminhtml')->getUrl('compiler/process/index/');
         $message = Mage::helper('aitsys')->__('Before activating or deactivating the extension please turn off the compiler at <br /><a href="%s">System > Tools > Compilation</a>', $compilerUrl);
         $messageType = 'warning-msg';
     } elseif (!$module->getInfo()->isMagentoCompatible()) {
         $message = Mage::helper('aitsys/strings')->getString('ER_ENT_HASH');
     } elseif (!$module->getAccess()) {
         $message = Mage::helper('aitsys')->__('File does not have write permissions: %s', $aModule['file']);
         $messageType = 'error-msg';
     }
     if ($module->getInfo()->getSerial()) {
         $info = 'S/N: ' . $module->getInfo()->getSerial();
     }
     if ($aModule['key'] == 'Aitoc_Common') {
         $info = 'Used by other AITOC\'s modules. Do not disable.';
     }
     if ($message && $messageType != 'notice-msg' || $isDemo) {
         $field = $fieldset->addField('ignore_' . $aModule['key'], 'note', array('name' => 'ignore[' . $aModule['key'] . ']', 'label' => $label, 'info' => empty($info) ? '' : $info, 'note' => '<ul class="messages"><li class="' . $messageType . '"><ul><li>' . $message . '</li></ul></li></ul>', 'module' => $module));
         if (!$isDemo) {
             $field->setRenderer($this->_elementRenderer);
         }
         return;
     }
     $fieldset->addField('hidden_enable_' . $aModule['key'], 'hidden', array('name' => 'enable[' . $aModule['key'] . ']', 'value' => 0));
     $fieldset->addField('enable_' . $aModule['key'], 'checkbox', array('name' => ($module->getAccess() ? 'enable' : 'ignore') . '[' . $aModule['key'] . ']', 'label' => $label, 'value' => 1, 'checked' => $aModule['value'], 'note' => $message ? '<ul class="messages"><li class="' . $messageType . '"><ul><li>' . $message . '</li></ul></li></ul>' : '', 'info' => empty($info) ? '' : $info, 'module' => $module))->setRenderer($this->_elementRenderer);
 }
示例#3
0
 /**
  * @param Varien_Data_Form_Element_Fieldset $fieldset
  * @param string $id
  * @param string $type
  * @param array $options
  * @return Varien_Data_Form_Element_Abstract
  */
 public function addField($fieldset, $id, $type, $options)
 {
     /** @noinspection PhpParamsInspection */
     $field = $fieldset->addField($id, $type, $options);
     if (isset($options['values'])) {
         $field->setValues($options['values']);
     }
     $field->setRenderer($this->getFieldRenderer());
     return $field;
 }
示例#4
0
 /**
  * @param Varien_Data_Form_Element_Fieldset $fieldset
  * @return Varien_Data_Form_Element_Abstract
  */
 private function createFieldConditions(Varien_Data_Form_Element_Fieldset $fieldset)
 {
     /** @var Varien_Data_Form_Element_Abstract $result */
     $result = $fieldset->addField('conditions', 'text', array('name' => 'conditions', 'label' => Mage::helper('catalogrule')->__('Conditions'), 'title' => Mage::helper('catalogrule')->__('Conditions'), 'required' => true));
     /** @var Mage_Rule_Block_Conditions $blockRuleConditions */
     $blockRuleConditions = Mage::getBlockSingleton('rule/conditions');
     $result->setData('rule', $this->getRule());
     $result->setRenderer($blockRuleConditions);
     df_assert($result instanceof Varien_Data_Form_Element_Abstract);
     return $result;
 }
示例#5
0
 /**
  * This method makes life a little easier for us by pre-populating 
  * fields with $_POST data where applicable and wraps our post data in 
  * 'newsData' so we can easily separate all relevant information in
  * the controller. You can of course omit this method entirely and call
  * the $fieldset->addField() method directly.
  */
 protected function _addFieldsToFieldset(Varien_Data_Form_Element_Fieldset $fieldset, $fields)
 {
     $requestData = new Varien_Object($this->getRequest()->getPost('newsData'));
     foreach ($fields as $name => $_data) {
         if ($requestValue = $requestData->getData($name)) {
             $_data['value'] = $requestValue;
         }
         // wrap all fields with newsData group
         $_data['name'] = "newsData[{$name}]";
         // generally label and title always the same
         $_data['title'] = $_data['label'];
         // finally call vanilla functionality to add field
         $fieldset->addField($name, $_data['input'], $_data);
     }
     return $this;
 }
 /**
  * @param Varien_Data_Form_Element_Fieldset $fieldset
  * @param string $id
  * @param string $type
  * @param array $options
  * @return Varien_Data_Form_Element_Abstract
  */
 public function addField($fieldset, $id, $type, $options)
 {
     if (isset($options['renderer'])) {
         $renderer = $this->getLayout()->getBlockSingleton($options['renderer']);
         unset($options['renderer']);
     } else {
         $renderer = $this->getFieldRenderer();
     }
     /** @noinspection PhpParamsInspection */
     $field = $fieldset->addField($id, $type, $options);
     if (isset($options['values'])) {
         $field->setValues($options['values']);
     }
     $field->setRenderer($renderer);
     return $field;
 }
示例#7
0
 protected function _addFieldsToFieldset(Varien_Data_Form_Element_Fieldset $fieldset, $fields)
 {
     $requestData = new Varien_Object($this->getRequest()->getPost('accordionData'));
     foreach ($fields as $name => $_data) {
         if ($requestValue = $requestData->getData($name)) {
             $_data['value'] = $requestValue;
         }
         # code...
         $_data['name'] = "accordionData[{$name}]";
         $_data['title'] = $_data['label'];
         if (!array_key_exists('value', $_data)) {
             $_data['value'] = $this->_getAccordion()->getData($name);
         }
         $fieldset->addField($name, $_data['input'], $_data);
     }
     return $this;
 }
示例#8
0
 /**
  * This method makes life a little easier for us by pre-populating
  * fields with $_POST data where applicable and wrapping our post data
  * in 'brandData' so that we can easily separate all relevant information
  * in the controller. You could of course omit this method entirely
  * and call the $fieldset->addField() method directly.
  * @return self
  */
 protected function _addFieldsToFieldset(Varien_Data_Form_Element_Fieldset $fieldset, $fields)
 {
     foreach ($fields as $name => $_data) {
         // Wrap all fields with brandData group.
         $_data['name'] = "configData[{$name}]";
         // Generally, label and title are always the same.
         $_data['title'] = $_data['label'];
         // If no new value exists, use the existing data.
         if (!array_key_exists('value', $_data)) {
             $_data['value'] = $this->_getValue()->getData($name);
         }
         if ($name == "test_mode") {
             $_data['checked'] = $this->_getValue()->getData($name);
         }
         // Finally, call vanilla functionality to add field.
         $fieldset->addField($name, $_data['input'], $_data);
     }
     return $this;
 }
示例#9
0
 /**
  * This method makes life a little easier for us by pre-populating
  * fields with $_POST data where applicable and wrapping our post data
  * in 'commentData' so that we can easily separate all relevant information
  * in the controller. You could of course omit this method entirely
  * and call the $fieldset->addField() method directly.
  */
 protected function _addFieldsToFieldset(Varien_Data_Form_Element_Fieldset $fieldset, $fields)
 {
     $requestData = new Varien_Object($this->getRequest()->getPost('commentData'));
     foreach ($fields as $name => $_data) {
         if ($requestValue = $requestData->getData($name)) {
             $_data['value'] = $requestValue;
         }
         // Wrap all fields with commentData group.
         $_data['name'] = "commentData[{$name}]";
         // Generally, label and title are always the same.
         $_data['title'] = $_data['label'];
         // If no new value exists, use the existing comment data.
         if (!array_key_exists('value', $_data)) {
             $_data['value'] = $this->_getComment()->getData($name);
         }
         // Finally, call vanilla functionality to add field.
         $fieldset->addField($name, $_data['input'], $_data);
     }
     return $this;
 }
示例#10
0
文件: Form.php 项目: vesviet/dellocal
 /**
  * This method makes life a little easier for us by pre-populating 
  * fields with $_POST data where applicable and wraps our post data in 
  * 'brandData' so we can easily separate all relevant information in
  * the controller. You can of course omit this method entirely and call
  * the $fieldset->addField() method directly.
  */
 protected function _addFieldsToFieldset(Varien_Data_Form_Element_Fieldset $fieldset, $fields)
 {
     $requestData = new Varien_Object($this->getRequest()->getPost('mappingData'));
     foreach ($fields as $name => $_data) {
         if ($requestValue = $requestData->getData($name)) {
             $_data['value'] = $requestValue;
         }
         // wrap all fields with brandData group
         $_data['name'] = "mappingData[{$name}]";
         // generally label and title always the same
         $_data['title'] = $_data['label'];
         // if no new value exists, use existing brand data
         if (!array_key_exists('value', $_data)) {
             $_data['value'] = $this->_getBrand()->getData($name);
         }
         // finally call vanilla functionality to add field
         $fieldset->addField($name, $_data['input'], $_data);
     }
     return $this;
 }
示例#11
0
 /**
  * Init fieldset fields
  *
  * @param Varien_Data_Form_Element_Fieldset $fieldset
  * @param Varien_Simplexml_Element $group
  * @param Varien_Simplexml_Element $section
  * @param string $fieldPrefix
  * @param string $labelPrefix
  * @return Mage_Adminhtml_Block_System_Config_Form
  */
 public function initFields($fieldset, $group, $section, $fieldPrefix = '', $labelPrefix = '')
 {
     foreach ($group->fields as $elements) {
         $elements = (array) $elements;
         // sort either by sort_order or by child node values bypassing the sort_order
         if ($group->sort_fields && $group->sort_fields->by) {
             $fieldset->setSortElementsByAttribute((string) $group->sort_fields->by, $group->sort_fields->direction_desc ? SORT_DESC : SORT_ASC);
         } else {
             usort($elements, array($this, '_sortForm'));
         }
         foreach ($elements as $e) {
             if (!$this->_canShowField($e)) {
                 continue;
             }
             $path = $section->getName() . '/' . $group->getName() . '/' . $fieldPrefix . $e->getName();
             $id = $section->getName() . '_' . $group->getName() . '_' . $fieldPrefix . $e->getName();
             if (isset($this->_configData[$path])) {
                 $data = $this->_configData[$path];
                 $inherit = false;
             } else {
                 $data = $this->_configRoot->descend($path);
                 $inherit = true;
             }
             if ($e->frontend_model) {
                 $fieldRenderer = Mage::getBlockSingleton((string) $e->frontend_model);
             } else {
                 $fieldRenderer = $this->_defaultFieldRenderer;
             }
             $fieldRenderer->setForm($this);
             $fieldRenderer->setConfigData($this->_configData);
             $helperName = $this->_configFields->getAttributeModule($section, $group, $e);
             $fieldType = (string) $e->frontend_type ? (string) $e->frontend_type : 'text';
             $name = 'groups[' . $group->getName() . '][fields][' . $fieldPrefix . $e->getName() . '][value]';
             $label = Mage::helper($helperName)->__($labelPrefix) . ' ' . Mage::helper($helperName)->__((string) $e->label);
             $comment = (string) $e->comment ? Mage::helper($helperName)->__((string) $e->comment) : '';
             if ($e->backend_model) {
                 $model = Mage::getModel((string) $e->backend_model);
                 if (!$model instanceof Mage_Core_Model_Config_Data) {
                     Mage::throwException('Invalid config field backend model: ' . (string) $e->backend_model);
                 }
                 $model->setPath($path)->setValue($data)->afterLoad();
                 $data = $model->getValue();
             }
             $field = $fieldset->addField($id, $fieldType, array('name' => $name, 'label' => $label, 'comment' => $comment, 'value' => $data, 'inherit' => $inherit, 'class' => $e->frontend_class, 'field_config' => $e, 'scope' => $this->getScope(), 'scope_id' => $this->getScopeId(), 'can_use_default_value' => $this->canUseDefaultValue((int) $e->show_in_default), 'can_use_website_value' => $this->canUseWebsiteValue((int) $e->show_in_website)));
             if (isset($e->validate)) {
                 $field->addClass($e->validate);
             }
             if (isset($e->frontend_type) && 'multiselect' === (string) $e->frontend_type && isset($e->can_be_empty)) {
                 $field->setCanBeEmpty(true);
             }
             $field->setRenderer($fieldRenderer);
             if ($e->source_model) {
                 $sourceModel = Mage::getSingleton((string) $e->source_model);
                 if ($sourceModel instanceof Varien_Object) {
                     $sourceModel->setPath($path);
                 }
                 $field->setValues($sourceModel->toOptionArray($fieldType == 'multiselect'));
             }
         }
     }
     return $this;
 }
示例#12
0
文件: Main.php 项目: nemphys/magento2
 /**
  * Add password creation fields in new user form
  *
  * @param Varien_Data_Form_Element_Fieldset $fieldset
  */
 protected function _addNewUserPasswordFields(Varien_Data_Form_Element_Fieldset $fieldset)
 {
     $fieldset->addField('password', 'password', array('name' => 'password', 'label' => Mage::helper('Mage_User_Helper_Data')->__('Password'), 'id' => 'customer_pass', 'title' => Mage::helper('Mage_User_Helper_Data')->__('Password'), 'class' => 'input-text required-entry validate-admin-password', 'required' => true));
     $fieldset->addField('confirmation', 'password', array('name' => 'password_confirmation', 'label' => Mage::helper('Mage_User_Helper_Data')->__('Password Confirmation'), 'id' => 'confirmation', 'title' => Mage::helper('Mage_User_Helper_Data')->__('Password Confirmation'), 'class' => 'input-text required-entry validate-cpassword', 'required' => true));
 }
示例#13
0
 /**
  * Prepare store element
  *
  * @param Varien_Data_Form_Element_Fieldset $fieldset
  */
 protected function _prepareStoreElement($fieldset)
 {
     // get store switcher or a hidden field with it's id
     if (Mage::app()->isSingleStoreMode()) {
         $fieldset->addField('store_id', 'hidden', array('name' => 'store_id', 'value' => Mage::app()->getStore(true)->getId()), 'id_path');
     } else {
         /** @var $renderer Mage_Adminhtml_Block_Store_Switcher_Form_Renderer_Fieldset_Element */
         $renderer = $this->getLayout()->createBlock('Mage_Adminhtml_Block_Store_Switcher_Form_Renderer_Fieldset_Element');
         $storeElement = $fieldset->addField('store_id', 'select', array('label' => Mage::helper('Mage_Adminhtml_Helper_Data')->__('Store'), 'title' => Mage::helper('Mage_Adminhtml_Helper_Data')->__('Store'), 'name' => 'store_id', 'required' => true, 'values' => $this->_getRestrictedStoresList(), 'disabled' => $this->_getModel()->getIsSystem(), 'value' => $this->_formValues['store_id']), 'id_path');
         $storeElement->setRenderer($renderer);
     }
 }
 /**
  * Add field to form based on parameter configuration
  *
  * @param Varien_Data_Form_Element_Fieldset $fieldset
  * @param Varien_Object $parameter
  * @return Varien_Data_Form_Element_Abstract
  */
 protected function _addRendererField($fieldset, $parameter)
 {
     $form = $this->getForm();
     // Prepare element data with values (either from request of from default values)
     $fieldName = $parameter->getKey();
     $data = array('name' => $form->addSuffixToName($fieldName, 'parameters'), 'label' => $this->_translationHelper->__($parameter->getLabel()), 'required' => $parameter->getRequired(), 'class' => 'renderer-option', 'note' => $this->_translationHelper->__($parameter->getDescription()));
     if ($values = $this->getRendererParams()) {
         $data['value'] = isset($values[$fieldName]) ? $values[$fieldName] : '';
     } else {
         $data['value'] = $parameter->getValue();
         // Prepare unique ID value
         if ($fieldName == 'unique_id' && $data['value'] == '') {
             $data['value'] = md5(microtime(1));
         }
     }
     // Prepare element dropdown values
     if ($values = $parameter->getValues()) {
         // Dropdown options are specified in configuration
         $data['values'] = array();
         foreach ($values as $option) {
             $data['values'][] = array('label' => $this->_translationHelper->__($option['label']), 'value' => $option['value']);
         }
     } elseif ($sourceModel = $parameter->getSourceModel()) {
         // Otherwise, a source model is specified
         if (is_array($sourceModel)) {
             // TODO check if invalid model / method ?
             $data['values'] = call_user_func(array(Mage::getModel($sourceModel['model']), $sourceModel['method']));
         } else {
             $data['values'] = Mage::getModel($sourceModel)->toOptionArray();
         }
     }
     // Prepare field type or renderer
     $fieldRenderer = null;
     $fieldType = $parameter->getType();
     if (!$parameter->getVisible()) {
         // Hidden element
         $fieldType = 'hidden';
     } elseif (false !== strpos($fieldType, '/')) {
         // Just an element renderer
         $fieldRenderer = $this->getLayout()->createBlock($fieldType);
         $fieldType = $this->_defaultElementType;
     }
     // Instantiate field and render html
     $field = $fieldset->addField($this->getFieldsetHtmlId() . '_' . $fieldName, $fieldType, $data);
     if ($fieldRenderer) {
         $field->setRenderer($fieldRenderer);
     }
     // Extra html preparations
     if ($helper = $parameter->getHelperBlock()) {
         $helperBlock = $this->getLayout()->createBlock($helper->getType(), '', $helper->getData());
         if ($helperBlock instanceof Varien_Object) {
             $helperBlock->setConfig($helper->getData())->setFieldsetId($fieldset->getId())->setTranslationHelper($this->_translationHelper)->prepareElementHtml($field);
         }
     }
     // Dependencies from other fields
     $dependenceBlock = $this->getChild('form_after');
     $dependenceBlock->addFieldMap($field->getId(), $fieldName);
     if ($parameter->getDepends()) {
         foreach ($parameter->getDepends() as $from => $row) {
             $values = isset($row['values']) ? array_values($row['values']) : (string) $row['value'];
             $dependenceBlock->addFieldDependence($fieldName, $from, $values);
         }
     }
     return $field;
 }
示例#15
0
 /**
  * Prepare form fieldset
  * All fields are visible
  *
  * @param Varien_Data_Form_Element_Fieldset $fieldset
  *
  * @return Mage_Adminhtml_Block_Sales_Order_Create_Giftmessage_Form
  */
 protected function _prepareVisibleFields(Varien_Data_Form_Element_Fieldset $fieldset)
 {
     $fieldset->addField('sender', 'text', array('name' => $this->_getFieldName('sender'), 'label' => Mage::helper('sales')->__('From'), 'required' => $this->getMessage()->getMessage() ? true : false));
     $fieldset->addField('recipient', 'text', array('name' => $this->_getFieldName('recipient'), 'label' => Mage::helper('sales')->__('To'), 'required' => $this->getMessage()->getMessage() ? true : false));
     $fieldset->addField('message', 'textarea', array('name' => $this->_getFieldName('message'), 'label' => Mage::helper('sales')->__('Message'), 'rows' => '5', 'cols' => '20'));
     return $this;
 }
示例#16
0
文件: Form.php 项目: relue/magento2
 /**
  * Add a field to the form or fieldset
  * Form and fieldset have same abstract
  *
  * @param Varien_Data_Form|Varien_Data_Form_Element_Fieldset $formOrFieldset
  * @param string $elementName
  * @param array $options
  * @param string $type
  * @return Varien_Data_Form_Element_Abstract
  */
 protected function _addField($formOrFieldset, $elementName, $options = array(), $type = 'text')
 {
     $options = array_merge($options, array('name' => $elementName, 'label' => $this->_profile->getFieldLabel($elementName), 'note' => $this->_profile->getFieldComment($elementName), 'disabled' => $this->_isReadOnly));
     if (in_array($elementName, array('period_unit', 'period_frequency'))) {
         $options['required'] = true;
     }
     return $formOrFieldset->addField($elementName, $type, $options);
 }
示例#17
0
 /**
  * Init fieldset fields
  *
  * @param Varien_Data_Form_Element_Fieldset $fieldset
  * @param Varien_Simplexml_Element $group
  * @param Varien_Simplexml_Element $section
  * @param string $fieldPrefix
  * @param string $labelPrefix
  * @return Mage_Adminhtml_Block_System_Config_Form
  */
 public function initFields($fieldset, $group, $section, $fieldPrefix = '', $labelPrefix = '')
 {
     if (!$this->_configDataObject) {
         $this->_initObjects();
     }
     // Extends for config data
     $configDataAdditionalGroups = array();
     foreach ($group->fields as $elements) {
         $elements = (array) $elements;
         // sort either by sort_order or by child node values bypassing the sort_order
         if ($group->sort_fields && $group->sort_fields->by) {
             $fieldset->setSortElementsByAttribute((string) $group->sort_fields->by, $group->sort_fields->direction_desc ? SORT_DESC : SORT_ASC);
         } else {
             usort($elements, array($this, '_sortForm'));
         }
         foreach ($elements as $e) {
             if (!$this->_canShowField($e)) {
                 continue;
             }
             /**
              * Look for custom defined field path
              */
             $path = (string) $e->config_path;
             if (empty($path)) {
                 $path = $section->getName() . '/' . $group->getName() . '/' . $fieldPrefix . $e->getName();
             } elseif (strrpos($path, '/') > 0) {
                 // Extend config data with new section group
                 $groupPath = substr($path, 0, strrpos($path, '/'));
                 if (!isset($configDataAdditionalGroups[$groupPath])) {
                     $this->_configData = $this->_configDataObject->extendConfig($groupPath, false, $this->_configData);
                     $configDataAdditionalGroups[$groupPath] = true;
                 }
             }
             $id = $section->getName() . '_' . $group->getName() . '_' . $fieldPrefix . $e->getName();
             if (isset($this->_configData[$path])) {
                 $data = $this->_configData[$path];
                 $inherit = false;
             } else {
                 $data = $this->_configRoot->descend($path);
                 $inherit = true;
             }
             if ($e->frontend_model) {
                 $fieldRenderer = Mage::getBlockSingleton((string) $e->frontend_model);
             } else {
                 $fieldRenderer = $this->_defaultFieldRenderer;
             }
             $fieldRenderer->setForm($this);
             $fieldRenderer->setConfigData($this->_configData);
             $helperName = $this->_configFields->getAttributeModule($section, $group, $e);
             $fieldType = (string) $e->frontend_type ? (string) $e->frontend_type : 'text';
             $name = 'groups[' . $group->getName() . '][fields][' . $fieldPrefix . $e->getName() . '][value]';
             $label = Mage::helper($helperName)->__($labelPrefix) . ' ' . Mage::helper($helperName)->__((string) $e->label);
             $hint = (string) $e->hint ? Mage::helper($helperName)->__((string) $e->hint) : '';
             if ($e->backend_model) {
                 $model = Mage::getModel((string) $e->backend_model);
                 if (!$model instanceof Mage_Core_Model_Config_Data) {
                     Mage::throwException('Invalid config field backend model: ' . (string) $e->backend_model);
                 }
                 $model->setPath($path)->setValue($data)->setWebsite($this->getWebsiteCode())->setStore($this->getStoreCode())->afterLoad();
                 $data = $model->getValue();
             }
             $comment = $this->_prepareFieldComment($e, $helperName, $data);
             $tooltip = $this->_prepareFieldTooltip($e, $helperName);
             if ($e->depends) {
                 foreach ($e->depends->children() as $dependent) {
                     $dependentId = $section->getName() . '_' . $group->getName() . '_' . $fieldPrefix . $dependent->getName();
                     $shouldBeAddedDependence = true;
                     $dependentValue = (string) $dependent;
                     $dependentFieldName = $fieldPrefix . $dependent->getName();
                     $dependentField = $group->fields->{$dependentFieldName};
                     /*
                      * If dependent field can't be shown in current scope and real dependent config value
                      * is not equal to preferred one, then hide dependence fields by adding dependence
                      * based on not shown field (not rendered field)
                      */
                     if (!$this->_canShowField($dependentField)) {
                         $dependentFullPath = $section->getName() . '/' . $group->getName() . '/' . $fieldPrefix . $dependent->getName();
                         $shouldBeAddedDependence = $dependentValue != Mage::getStoreConfig($dependentFullPath, $this->getStoreCode());
                     }
                     if ($shouldBeAddedDependence) {
                         $this->_getDependence()->addFieldMap($id, $id)->addFieldMap($dependentId, $dependentId)->addFieldDependence($id, $dependentId, $dependentValue);
                     }
                 }
             }
             $field = $fieldset->addField($id, $fieldType, array('name' => $name, 'label' => $label, 'comment' => $comment, 'tooltip' => $tooltip, 'hint' => $hint, 'value' => $data, 'inherit' => $inherit, 'class' => $e->frontend_class, 'field_config' => $e, 'scope' => $this->getScope(), 'scope_id' => $this->getScopeId(), 'scope_label' => $this->getScopeLabel($e), 'can_use_default_value' => $this->canUseDefaultValue((int) $e->show_in_default), 'can_use_website_value' => $this->canUseWebsiteValue((int) $e->show_in_website)));
             $this->_prepareFieldOriginalData($field, $e);
             if (isset($e->validate)) {
                 $field->addClass($e->validate);
             }
             if (isset($e->frontend_type) && 'multiselect' === (string) $e->frontend_type && isset($e->can_be_empty)) {
                 $field->setCanBeEmpty(true);
             }
             $field->setRenderer($fieldRenderer);
             if ($e->source_model) {
                 // determine callback for the source model
                 $factoryName = (string) $e->source_model;
                 $method = false;
                 if (preg_match('/^([^:]+?)::([^:]+?)$/', $factoryName, $matches)) {
                     array_shift($matches);
                     list($factoryName, $method) = array_values($matches);
                 }
                 $sourceModel = Mage::getSingleton($factoryName);
                 if ($sourceModel instanceof Varien_Object) {
                     $sourceModel->setPath($path);
                 }
                 if ($method) {
                     if ($fieldType == 'multiselect') {
                         $optionArray = $sourceModel->{$method}();
                     } else {
                         $optionArray = array();
                         foreach ($sourceModel->{$method}() as $value => $label) {
                             $optionArray[] = array('label' => $label, 'value' => $value);
                         }
                     }
                 } else {
                     $optionArray = $sourceModel->toOptionArray($fieldType == 'multiselect');
                 }
                 $field->setValues($optionArray);
             }
         }
     }
     return $this;
 }
示例#18
0
 /**
  * Creates label form element and sets empty value of
  * the hidden input, that is created, when we have form element
  * from type label
  *
  * @param Mage_Core_Model_Abstract $dataModel
  * @param Varien_Data_Form_Element_Fieldset $fieldset
  * @param array $config
  *
  * @return Varien_Data_Form_Element_Abstract
  */
 protected function _createFormElement($dataModel, $fieldset, $config)
 {
     $isRequired = isset($config['required']) && true === $config['required'] ? true : false;
     $inputConfig = array('name' => $config['input_name'], 'label' => $config['input_label'], 'required' => $isRequired);
     if (!isset($config['input_id'])) {
         $config['input_id'] = $config['input_name'];
     }
     $element = $fieldset->addField($config['input_id'], 'label', $inputConfig);
     $element->setValue($dataModel->getData($element->getId()));
     $dataModel->setData($element->getId(), '');
     return $element;
 }
示例#19
0
 /**
  * @param Varien_Data_Form_Element_Fieldset $fieldset
  * @param Bronto_News_Model_Item            $item
  *
  * @return Varien_Data_Form_Element_Abstract
  */
 protected function addItemToFieldset($fieldset, $item)
 {
     $field = $fieldset->addField($item->getId(), 'link', array('value' => $item->getTitle(), 'title' => $item->getTitle(), 'href' => $item->getLink(), 'news_item' => $item, 'target' => '_blank', 'field_config' => $this->_getItemDefinition()));
     return $field;
 }
示例#20
0
 /**
  * Initialize form element
  *
  * @param array $element
  * @param Varien_Data_Form_Element_Fieldset $fieldset
  * @param array $group
  * @param array $section
  * @param string $path
  * @param string $fieldPrefix
  * @param string $labelPrefix
  */
 protected function _initElement($element, $fieldset, $group, $section, $path, $fieldPrefix = '', $labelPrefix = '')
 {
     $elementId = $section['id'] . '_' . $group['id'] . '_' . $fieldPrefix . $element['id'];
     if (array_key_exists($path, $this->_configData)) {
         $data = $this->_configData[$path];
         $inherit = false;
     } else {
         $data = $this->_configRoot->descend($path);
         $inherit = true;
     }
     $fieldRenderer = $this->_getFieldRenderer($element);
     $fieldRenderer->setForm($this);
     $fieldRenderer->setConfigData($this->_configData);
     $helperName = $this->_systemConfig->getAttributeModule($section, $group, $element);
     $fieldType = isset($element['type']) ? $element['type'] : 'text';
     $name = 'groups[' . $group['id'] . '][fields][' . $fieldPrefix . $element['id'] . '][value]';
     $label = $this->helper($helperName)->__($labelPrefix) . ' ' . $this->helper($helperName)->__(array_key_exists('label', $element) ? (string) $element['label'] : '');
     $hint = isset($element['hint']) ? $this->helper($helperName)->__($element['hint']) : '';
     if (isset($element['backend_model'])) {
         $data = $this->_fetchBackendModelData($element, $path, $data);
     }
     $comment = $this->_prepareFieldComment($element, $helperName, $data);
     $tooltip = $this->_prepareFieldTooltip($element, $helperName);
     if (isset($element['depends'])) {
         $this->_processElementDependencies($element, $section, $group, $elementId, $fieldPrefix);
     }
     $field = $fieldset->addField($elementId, $fieldType, array('name' => $name, 'label' => $label, 'comment' => $comment, 'tooltip' => $tooltip, 'hint' => $hint, 'value' => $data, 'inherit' => $inherit, 'class' => isset($element['frontend_class']) ? $element['frontend_class'] : '', 'field_config' => $element, 'scope' => $this->getScope(), 'scope_id' => $this->getScopeId(), 'scope_label' => $this->getScopeLabel($element), 'can_use_default_value' => $this->canUseDefaultValue(isset($element['showInDefault']) ? (int) $element['showInDefault'] : 0), 'can_use_website_value' => $this->canUseWebsiteValue(isset($element['showInWebsite']) ? (int) $element['showInWebsite'] : 0)));
     $this->_applyFieldConfiguration($field, $element);
     $field->setRenderer($fieldRenderer);
     if (isset($element['source_model'])) {
         $field->setValues($this->_extractDataFromSourceModel($element, $path, $fieldType));
     }
 }
示例#21
0
 /**
  * Initialize form element
  *
  * @param Mage_Backend_Model_Config_Structure_Element_Field $field
  * @param Varien_Data_Form_Element_Fieldset $fieldset
  * @param $path
  * @param string $fieldPrefix
  * @param string $labelPrefix
  */
 protected function _initElement(Mage_Backend_Model_Config_Structure_Element_Field $field, Varien_Data_Form_Element_Fieldset $fieldset, $path, $fieldPrefix = '', $labelPrefix = '')
 {
     $inherit = true;
     if (array_key_exists($path, $this->_configData)) {
         $data = $this->_configData[$path];
         $inherit = false;
     } elseif ($field->getConfigPath() !== null) {
         $data = $this->_configRoot->descend($field->getConfigPath());
     } else {
         $data = $this->_configRoot->descend($path);
     }
     $fieldRendererClass = $field->getFrontendModel();
     if ($fieldRendererClass) {
         $fieldRenderer = Mage::getBlockSingleton($fieldRendererClass);
     } else {
         $fieldRenderer = $this->_fieldRenderer;
     }
     $fieldRenderer->setForm($this);
     $fieldRenderer->setConfigData($this->_configData);
     $elementName = $this->_generateElementName($field->getPath(), $fieldPrefix);
     $elementId = $this->_generateElementId($field->getPath($fieldPrefix));
     if ($field->hasBackendModel()) {
         $backendModel = $field->getBackendModel();
         $backendModel->setPath($path)->setValue($data)->setWebsite($this->getWebsiteCode())->setStore($this->getStoreCode())->afterLoad();
         $data = $backendModel->getValue();
     }
     $dependencies = $field->getDependencies($fieldPrefix, $this->getStoreCode());
     $this->_populateDependenciesBlock($dependencies, $elementId, $elementName);
     $formField = $fieldset->addField($elementId, $field->getType(), array('name' => $elementName, 'label' => $field->getLabel($labelPrefix), 'comment' => $field->getComment($data), 'tooltip' => $field->getTooltip(), 'hint' => $field->getHint(), 'value' => $data, 'inherit' => $inherit, 'class' => $field->getFrontendClass(), 'field_config' => $field->getData(), 'scope' => $this->getScope(), 'scope_id' => $this->getScopeId(), 'scope_label' => $this->getScopeLabel($field), 'can_use_default_value' => $this->canUseDefaultValue($field->showInDefault()), 'can_use_website_value' => $this->canUseWebsiteValue($field->showInWebsite())));
     $field->populateInput($formField);
     if ($field->hasValidation()) {
         $formField->addClass($field->getValidation());
     }
     if ($field->getType() == 'multiselect') {
         $formField->setCanBeEmpty($field->canBeEmpty());
     }
     if ($field->hasSourceModel()) {
         $formField->setValues($field->getOptions());
     }
     $formField->setRenderer($fieldRenderer);
 }
示例#22
0
 /**
  * Prepare select fields.
  *
  * @param Varien_Data_Form_Element_Fieldset $fieldset
  * @param Varien_Object $attribute
  * @param Xcom_Mapping_Model_Target_Attribute_Name $targetAttribute
  * @return Xcom_Mapping_Block_Adminhtml_Attribute_Value_Form
  */
 protected function _initSelectFields($fieldset)
 {
     $attributeSetId = (int) $this->getRequest()->getParam('attribute_set_id');
     $attributeId = (int) $this->getRequest()->getParam('attribute_id');
     $attributeOptions = $this->helper('xcom_mapping')->getAttributeOptionsHash($this->_magentoAttribute);
     $targetAttributeValues = $this->getTargetAttributeValues($this->_targetAttribute->getId());
     $mappingValueRelation = $this->getValueRelations($attributeSetId, $attributeId);
     $i = 0;
     foreach ($attributeOptions as $code => $value) {
         if (!empty($mappingValueRelation[$code])) {
             $mappingValue = $mappingValueRelation[$code];
         } else {
             $mappingValue = $this->_variableCode;
         }
         $fieldset->addField('target_attribute_value_' . $i, 'select', array('label' => $value, 'title' => $this->__("Target Attribute Value"), 'name' => 'target_attribute_value_' . $i, 'required' => false, 'class' => '', 'no_span' => false, 'values' => $targetAttributeValues, 'value' => $mappingValue, 'onchange' => ''));
         $fieldset->addField('attribute_value_' . $i, 'hidden', array('value' => $code, 'name' => 'attribute_value_' . $i));
         $i++;
     }
 }
示例#23
0
 /**
  * Add font selector to fieldset
  *
  * @param Varien_Data_Form_Element_Fieldset $fieldset
  * @param string $fieldPrefix
  * @param string $title
  */
 public function addFont($fieldset, $fieldPrefix, $title)
 {
     $element = $fieldset->addField($fieldPrefix, 'font', array('name' => $fieldPrefix, 'label' => $title));
     $element->initFields(array('name' => $fieldPrefix, 'fontNames' => Mage::helper('xmlconnect')->getDeviceHelper()->getFontList(), 'fontSizes' => Mage::helper('xmlconnect')->getDeviceHelper()->getFontSizes()));
 }
示例#24
0
 /**
  * @param Varien_Data_Form_Element_Fieldset $fieldset
  * @param string $moduleName
  * @return mixed
  */
 protected function _getFieldHtml($fieldset, $moduleName)
 {
     $configData = $this->getConfigData();
     $path = 'advanced/modules_disable_output/' . $moduleName;
     //TODO: move as property of form
     if (isset($configData[$path])) {
         $data = $configData[$path];
         $inherit = false;
     } else {
         $data = (int) (string) $this->getForm()->getConfigRoot()->descend($path);
         $inherit = true;
     }
     $element = $this->_getDummyElement();
     $field = $fieldset->addField($moduleName, 'select', array('name' => 'groups[modules_disable_output][fields][' . $moduleName . '][value]', 'label' => $moduleName, 'value' => $data, 'values' => $this->_getValues(), 'inherit' => $inherit, 'can_use_default_value' => $this->getForm()->canUseDefaultValue($element), 'can_use_website_value' => $this->getForm()->canUseWebsiteValue($element)))->setRenderer($this->_getFieldRenderer());
     return $field->toHtml();
 }
示例#25
0
 /**
  * Add image uploader to fieldset
  *
  * @param Varien_Data_Form_Element_Fieldset $fieldset
  * @param string $fieldName
  * @param string $title
  * @param string $note
  * @param string $default
  * @param boolean $required 
  */
 public function addImage($fieldset, $fieldName, $title, $note = '', $default = '', $required = false)
 {
     $fieldset->addField($fieldName, 'image', array('name' => $fieldName, 'label' => $title, 'note' => !empty($note) ? $note : null, 'required' => $required));
 }
示例#26
0
 /**
  * Edit/View Existing Customer form fields
  *
  * @param Varien_Data_Form $form
  * @param Varien_Data_Form_Element_Fieldset $fieldset
  * @param Mage_Customer_Model_Customer $customer
  */
 protected function _addEditCustomerFormFields($form, $fieldset, $customer)
 {
     $form->getElement('created_in')->setDisabled('disabled');
     if (!Mage::app()->isSingleStoreMode()) {
         $form->getElement('website_id')->setDisabled('disabled');
         $renderer = $this->getLayout()->createBlock('Mage_Adminhtml_Block_Store_Switcher_Form_Renderer_Fieldset_Element');
         $form->getElement('website_id')->setRenderer($renderer);
     } else {
         $fieldset->removeField('website_id');
     }
     if ($customer->isReadonly()) {
         return;
     }
     $this->_addPasswordManagementFieldset($form, 'New Password', true);
     // Prepare customer confirmation control (only for existing customers)
     $confirmationKey = $customer->getConfirmation();
     if ($confirmationKey || $customer->isConfirmationRequired()) {
         $confirmationAttr = $customer->getAttribute('confirmation');
         if (!$confirmationKey) {
             $confirmationKey = $customer->getRandomConfirmationKey();
         }
         $element = $fieldset->addField('confirmation', 'select', array('name' => 'confirmation', 'label' => Mage::helper('Mage_Customer_Helper_Data')->__($confirmationAttr->getFrontendLabel())));
         $element->setEntityAttribute($confirmationAttr);
         $element->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('Mage_Customer_Helper_Data')->__('Send Welcome Email after Confirmation')));
             $customer->setData('sendemail', '1');
         }
     }
 }
示例#27
0
 protected function _addEditableSelectField(Varien_Data_Form_Element_Fieldset $fieldset, $field, $name, array $options, $required = true)
 {
     $helper = $this->getAction()->getModuleHelper();
     $fieldset->addField($field, 'select', array('name' => $this->_getFormElementName($field), 'label' => $helper->__($name), 'title' => $helper->__($name), 'value' => $this->_getValueIfObjectIsSet($field), 'values' => $options, 'required' => $required));
 }
示例#28
0
 /**
  * @param Varien_Data_Form_Element_Fieldset $fieldset
  * @param string $id
  * @param string $status
  * @return string
  */
 protected function _getFieldHtml($fieldset, $id, $status)
 {
     $configData = $this->getConfigData();
     $path = 'sales/order_statuses/status_' . $id;
     //TODO: move as property of form
     $data = isset($configData[$path]) ? $configData[$path] : array();
     $e = $this->_getDummyElement();
     $field = $fieldset->addField($id, 'text', array('name' => 'groups[order_statuses][fields][status_' . $id . '][value]', 'label' => $status, 'value' => isset($data['value']) ? $data['value'] : $status, 'default_value' => isset($data['default_value']) ? $data['default_value'] : '', 'old_value' => isset($data['old_value']) ? $data['old_value'] : '', 'inherit' => isset($data['inherit']) ? $data['inherit'] : '', 'can_use_default_value' => $this->getForm()->canUseDefaultValue($e), 'can_use_website_value' => $this->getForm()->canUseWebsiteValue($e)))->setRenderer($this->_getFieldRenderer());
     return $field->toHtml();
 }
示例#29
0
 /**
  * Add page input to fieldset
  *
  * @param Varien_Data_Form_Element_Fieldset $fieldset
  * @param string $fieldPrefix
  */
 protected function _addPage($fieldset, $fieldPrefix)
 {
     $element = $fieldset->addField($fieldPrefix, 'page', array('name' => $fieldPrefix));
     $element->initFields(array('name' => $fieldPrefix, 'values' => $this->_pages));
 }
示例#30
0
 /**
  * @param $fieldset
  * @param $attribute
  * @param $options
  * @param string $fieldType
  * @return $this
  */
 protected function _addOptions(Varien_Data_Form_Element_Fieldset $fieldset, Mage_Catalog_Model_Resource_Eav_Attribute $attribute, array $options, $fieldType = 'text')
 {
     foreach ($options as $option) {
         if (!is_array($option['value'])) {
             $fieldset->addField($option['value'], $fieldType, array('name' => $option['value'], 'label' => $option['label']));
         } else {
             $this->_addOptions($fieldset, $attribute, $option['value'], $fieldType);
         }
     }
     return $this;
 }