/** * 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)); } } } } }
/** * @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); }
/** * @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; }
/** * @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; }
/** * 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; }
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; }
/** * 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; }
/** * 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; }
/** * 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; }
/** * 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; }
/** * 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)); }
/** * 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; }
/** * 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; }
/** * 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); }
/** * 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; }
/** * 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; }
/** * @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; }
/** * 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)); } }
/** * 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); }
/** * 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++; } }
/** * 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())); }
/** * @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(); }
/** * 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)); }
/** * 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'); } } }
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)); }
/** * @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(); }
/** * 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)); }
/** * @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; }