/** * {@inheritDoc} */ public function addAvaTaxCodeField(\Magento\Framework\Data\Form\Element\Fieldset $fieldset) { $fieldset->addField('avatax_code', 'text', ['name' => 'avatax_code', 'label' => __('AvaTax Tax Code'), 'note' => __('Optional. AvaTax system Tax Code or custom Tax Code. See <a href="%1" target="_blank">AvaTax documentation</a> for more details.', \ClassyLlama\AvaTax\Helper\Config::AVATAX_DOCUMENTATION_TAX_CODE_LINK), 'class' => 'validate-length maximum-length-25']); }
/** * {@inheritDoc} */ public function addAvaTaxCodeField(\Magento\Framework\Data\Form\Element\Fieldset $fieldset) { $fieldset->addField('avatax_code', 'select', ['name' => 'avatax_code', 'label' => __('AvaTax Customer Usage Type'), 'note' => __('Optional. The AvaTax <strong>Customer Usage Type</strong> (or <strong>Entity Use Code</strong>). Refer to the <a href="%1" target="_blank">AvaTax documentation</a> for more information.', 'https://help.avalara.com/kb/001/What_are_the_exemption_reasons_for_each_Entity_Use_Code_used_for_Avalara_AvaTax%3F'), 'values' => $this->avaTaxCustomerUsageType->toOptionArray()]); }
/** * Get field html * * @param \Magento\Framework\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(); }
/** * 2015-11-19 * https://mage2.pro/t/228 * «Propose to add a fieldset-specific element renderer» * @override * @param string $elementId * @param string $type * @param array $config * @param bool|false $after * @param bool|false $isAdvanced * @return AE */ public function addField($elementId, $type, $config, $after = false, $isAdvanced = false) { /** @var AE $result */ $result = parent::addField($elementId, $type, $config, $after, $isAdvanced); /** @var RendererInterface|null $renderer */ $renderer = $this->getElementRendererDf(); if (!$renderer && df_is_backend()) { /** * 2015-11-22 * По аналогии с https://github.com/magento/magento2/blob/2.0.0/app/code/Magento/Backend/Block/Widget/Form.php#L70-L75 * https://mage2.pro/t/239 * @uses \Magento\Backend\Block\Widget\Form\Renderer\Fieldset\Element */ $renderer = \Df\Backend\Block\Widget\Form\Renderer\Fieldset\Element::s(); } if ($renderer) { $result->setRenderer($renderer); } return $result; }
/** * @param array $fields */ protected function _fillFieldset(array $fields) { foreach ($fields as $field) { $this->_fieldset->addField($field[0], $field[1], $field[2], $field[3], $field[4]); } }
public function appendKeywordsFields(\Magento\Framework\Data\Form\Element\Fieldset $fieldSet, $fieldCount, $name) { $helper = $this->getHelper('Data'); for ($i = 0; $i < $fieldCount; $i++) { $button = $this->getMultiElementButton($name, $i); $value = ''; if (!empty($this->formData[$name][$i])) { $value = $helper->escapeHtml($this->formData[$name][$i]); } $fieldSet->addField($name . '_' . $i, 'text', ['name' => 'definition[' . $name . '][' . $i . ']', 'label' => $this->__('Target Audience Value #%s%', $i + 1), 'title' => $this->__('Target Audience Value #%s%', $i + 1), 'value' => $value, 'onkeyup' => 'AmazonTemplateDescriptionDefinitionObj.multi_element_keyup(\'' . $name . '\',this)', 'required' => true, 'css_class' => $name . '_tr no-margin-bottom', 'field_extra_attributes' => 'style="display: none;"', 'after_element_html' => $button->toHtml(), 'tooltip' => $this->__('Max. 50 characters.')]); } $fieldSet->addField($name . '_actions', self::CUSTOM_CONTAINER, ['text' => <<<HTML <a id="show_{$name}_action" href="javascript: void(0);" onclick="AmazonTemplateDescriptionDefinitionObj.showElement('{$name}');"> {$this->__('Add New')} </a> / <a id="hide_{$name}_action" href="javascript: void(0);" onclick="AmazonTemplateDescriptionDefinitionObj.hideElement('{$name}');"> {$this->__('Remove')} </a> HTML , 'field_extra_attributes' => 'id="' . $name . '_actions_tr" style="display: none;"']); }
/** * Prepare group id field in the fieldset * * @param \Magento\Framework\Data\Form $form * @param \Magento\Store\Model\Store $storeModel * @param \Magento\Framework\Data\Form\Element\Fieldset $fieldset * @return \Magento\Framework\Data\Form\Element\Fieldset */ private function prepareGroupIdField(\Magento\Framework\Data\Form $form, \Magento\Store\Model\Store $storeModel, \Magento\Framework\Data\Form\Element\Fieldset $fieldset) { if ($storeModel->getId() && $storeModel->getGroup()->getDefaultStoreId() == $storeModel->getId()) { if ($storeModel->getGroup() && $storeModel->getGroup()->getStoresCount() > 1) { $form->getElement('store_group_id')->setDisabled(true); $fieldset->addField('store_hidden_group_id', 'hidden', ['name' => 'store[group_id]', 'no_span' => true, 'value' => $storeModel->getGroupId()]); } else { $fieldset->addField('store_original_group_id', 'hidden', ['name' => 'store[original_group_id]', 'no_span' => true, 'value' => $storeModel->getGroupId()]); } } return $fieldset; }
/** * Prepare store element * * @param \Magento\Framework\Data\Form\Element\Fieldset $fieldset * @return void */ protected function _prepareStoreElement($fieldset) { // get store switcher or a hidden field with it's id if ($this->_storeManager->isSingleStoreMode()) { $fieldset->addField('store_id', 'hidden', array('name' => 'store_id', 'value' => $this->_storeManager->getStore(true)->getId()), 'id_path'); } else { /** @var $renderer \Magento\Backend\Block\Store\Switcher\Form\Renderer\Fieldset\Element */ $renderer = $this->getLayout()->createBlock('Magento\\Backend\\Block\\Store\\Switcher\\Form\\Renderer\\Fieldset\\Element'); $storeElement = $fieldset->addField('store_id', 'select', array('label' => __('Store'), 'title' => __('Store'), 'name' => 'store_id', 'required' => true, 'values' => $this->_getRestrictedStoresList(), 'disabled' => $this->_getModel()->getIsSystem(), 'value' => $this->_formValues['store_id']), 'id_path'); $storeElement->setRenderer($renderer); } }
/** * Add reset button to fieldset * * @param \Magento\Framework\Data\Form\Element\Fieldset $fieldset * @param array $defaultValues * @param string $name * @return $this */ protected function _addResetButton($fieldset, $defaultValues, $name) { $fieldset->addField($name . '_reset', 'button_button', ['name' => $name . '_reset', 'title' => __('Reset to Original'), 'value' => __('Reset to Original'), 'class' => 'action-reset', 'data-mage-init' => $this->escapeHtml(json_encode(['button' => ['event' => 'restoreDefaultData', 'target' => 'body', 'eventData' => $defaultValues]]))]); return $this; }
/** * Add media role attributes to fieldset * * @param Fieldset $fieldset * @return $this */ protected function addMediaRoleAttributes(Fieldset $fieldset) { $fieldset->addField('roleLabel', 'note', ['text' => __('Role')]); $mediaRoles = $this->getProduct()->getMediaAttributes(); ksort($mediaRoles); foreach ($mediaRoles as $mediaRole) { $fieldset->addField('video_' . $mediaRole->getAttributeCode(), 'checkbox', ['class' => 'video_image_role', 'label' => __($mediaRole->getFrontendLabel()), 'title' => __($mediaRole->getFrontendLabel()), 'data-role' => 'role-type-selector', 'value' => $mediaRole->getAttributeCode()]); } return $this; }
/** * Prepare form fieldset * All fields are visible * * @param Fieldset $fieldset * @return $this */ protected function _prepareVisibleFields(Fieldset $fieldset) { $fieldset->addField('sender', 'text', ['name' => $this->_getFieldName('sender'), 'label' => __('From'), 'required' => $this->getMessage()->getMessage() ? true : false]); $fieldset->addField('recipient', 'text', ['name' => $this->_getFieldName('recipient'), 'label' => __('To'), 'required' => $this->getMessage()->getMessage() ? true : false]); $fieldset->addField('message', 'textarea', ['name' => $this->_getFieldName('message'), 'label' => __('Message'), 'rows' => '5', 'cols' => '20']); return $this; }
/** * Append display related fields. * * @param Fieldset $fieldset Target fieldset * * @return FrontPlugin */ private function addDisplayFields(Fieldset $fieldset) { $fieldset->addField('display_pattern', 'text', ['name' => 'display_pattern', 'label' => __('Display pattern'), 'note' => __('A pattern like %s UNIT where %s is the value. Eg : $%s => $20 or %s € => 20 €')]); $fieldset->addField('display_precision', 'text', ['name' => 'display_precision', 'label' => __('Display Precision'), 'class' => 'validate-digits', 'value' => '0', 'note' => __('The number of digits to use for precision when displaying.')], 'display_pattern'); return $this; }
/** * Initialize form element * * @param \Magento\Backend\Model\Config\Structure\Element\Field $field * @param \Magento\Framework\Data\Form\Element\Fieldset $fieldset * @param string $path * @param string $fieldPrefix * @param string $labelPrefix * @return void */ protected function _initElement(\Magento\Backend\Model\Config\Structure\Element\Field $field, \Magento\Framework\Data\Form\Element\Fieldset $fieldset, $path, $fieldPrefix = '', $labelPrefix = '') { $inherit = true; $data = null; if (array_key_exists($path, $this->_configData)) { $data = $this->_configData[$path]; $inherit = false; } elseif ($field->getConfigPath() !== null) { $data = $this->getConfigValue($field->getConfigPath()); } else { $data = $this->getConfigValue($path); } $fieldRendererClass = $field->getFrontendModel(); if ($fieldRendererClass) { $fieldRenderer = $this->_layout->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); $sharedClass = $this->_getSharedCssClass($field); $requiresClass = $this->_getRequiresCssClass($field, $fieldPrefix); $formField = $fieldset->addField($elementId, $field->getType(), ['name' => $elementName, 'label' => $field->getLabel($labelPrefix), 'comment' => $field->getComment($data), 'tooltip' => $field->getTooltip(), 'hint' => $field->getHint(), 'value' => $data, 'inherit' => $inherit, 'class' => $field->getFrontendClass() . $sharedClass . $requiresClass, '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->hasOptions()) { $formField->setValues($field->getOptions()); } $formField->setRenderer($fieldRenderer); }
/** * Edit/View Existing Customer form fields * * @param \Magento\Framework\Data\Form\Element\Fieldset $fieldset * @return string[] Values to set on the form */ protected function _addEditCustomerFormFields($fieldset) { $fieldset->getForm()->getElement('created_in')->setDisabled('disabled'); $fieldset->getForm()->getElement('website_id')->setDisabled('disabled'); $customerData = $this->_getCustomerDataObject(); if ($customerData->getId() && !$this->_customerAccountService->canModify($customerData->getId())) { return array(); } // Prepare customer confirmation control (only for existing customers) $confirmationStatus = $this->_customerAccountService->getConfirmationStatus($customerData->getId()); $confirmationKey = $customerData->getConfirmation(); if ($confirmationStatus != CustomerAccountServiceInterface::ACCOUNT_CONFIRMED) { $confirmationAttr = $this->_customerMetadataService->getCustomerAttributeMetadata('confirmation'); if (!$confirmationKey) { $confirmationKey = $this->_getRandomConfirmationKey(); } $element = $fieldset->addField('confirmation', 'select', array('name' => 'confirmation', 'label' => __($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 ($customerData->getConfirmation() && $customerData->getWebsiteId()) { $fieldset->addField('sendemail', 'checkbox', array('name' => 'sendemail', 'label' => __('Send Welcome Email after Confirmation'))); return array('sendemail' => '1'); } } return array(); }
/** * Init base fields : * - thesaurus name * - store id * * @param \Magento\Framework\Data\Form\Element\Fieldset $fieldset The fieldset * @param \Smile\ElasticsuiteThesaurus\Model\Thesaurus|null $model Current Thesaurus * * @throws \Magento\Framework\Exception\LocalizedException * @SuppressWarnings(PHPMD.ElseExpression) * * @return \Smile\ElasticsuiteThesaurus\Block\Adminhtml\Thesaurus\Edit\Form */ private function initBaseFields($fieldset, $model) { $fieldset->addField('name', 'text', ['name' => 'name', 'label' => __('Thesaurus Name'), 'title' => __('Thesaurus Name'), 'required' => true]); $fieldset->addField('is_active', 'select', ['name' => 'is_active', 'label' => __('Active'), 'title' => __('Active'), 'values' => $this->booleanSource->toOptionArray()]); if (!$this->_storeManager->isSingleStoreMode()) { $field = $fieldset->addField('store_id', 'multiselect', ['name' => 'stores[]', 'label' => __('Store'), 'title' => __('Store'), 'values' => $this->systemStore->getStoreValuesForForm(false, true), 'required' => true]); $renderer = $this->getLayout()->createBlock('Magento\\Backend\\Block\\Store\\Switcher\\Form\\Renderer\\Fieldset\\Element'); $field->setRenderer($renderer); } else { $fieldset->addField('store_id', 'hidden', ['name' => 'store_id']); $model->setStoreIds([$this->_storeManager->getStore(true)->getId()]); } return $this; }
/** * Add password input fields * * @param \Magento\Framework\Data\Form\Element\Fieldset $fieldset * @param string $passwordLabel * @param string $confirmationLabel * @param bool $isRequired * @return void */ protected function _addPasswordFields(\Magento\Framework\Data\Form\Element\Fieldset $fieldset, $passwordLabel, $confirmationLabel, $isRequired = false) { $requiredFieldClass = $isRequired ? ' required-entry' : ''; $fieldset->addField('password', 'password', ['name' => 'password', 'label' => $passwordLabel, 'id' => 'customer_pass', 'title' => $passwordLabel, 'class' => 'input-text validate-admin-password' . $requiredFieldClass, 'required' => $isRequired]); $fieldset->addField('confirmation', 'password', ['name' => 'password_confirmation', 'label' => $confirmationLabel, 'id' => 'confirmation', 'title' => $confirmationLabel, 'class' => 'input-text validate-cpassword' . $requiredFieldClass, 'required' => $isRequired]); }
/** * @param \Magento\Framework\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()->getConfigValue($path); $inherit = true; } $element = $this->_getDummyElement(); $field = $fieldset->addField($moduleName, 'select', ['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(); }
/** * Prepare store element * * @param \Magento\Framework\Data\Form\Element\Fieldset $fieldset * @return void */ protected function _prepareStoreElement($fieldset) { if ($this->_storeManager->isSingleStoreMode()) { $fieldset->addField('store_id', 'hidden', ['name' => 'store_id', 'value' => $this->_storeManager->getStore(true)->getId()]); } else { $storeElement = $fieldset->addField('store_id', 'select', ['label' => __('Store'), 'title' => __('Store'), 'name' => 'store_id', 'required' => true, 'value' => $this->_formValues['store_id']]); try { $stores = $this->_getStoresListRestrictedByEntityStores($this->_getEntityStores()); } catch (\Magento\Framework\Exception\LocalizedException $e) { $stores = []; $storeElement->setAfterElementHtml($e->getMessage()); } $storeElement->setValues($stores); if ($this->_getModel()->getIsAutogenerated()) { $storeElement->setReadonly(true); } /** @var $renderer \Magento\Backend\Block\Store\Switcher\Form\Renderer\Fieldset\Element */ $renderer = $this->getLayout()->createBlock('Magento\\Backend\\Block\\Store\\Switcher\\Form\\Renderer\\Fieldset\\Element'); $storeElement->setRenderer($renderer); } }
/** * Add a field to the form or fieldset * Form and fieldset have same abstract * * @param \Magento\Framework\Data\Form|\Magento\Framework\Data\Form\Element\Fieldset $formOrFieldset * @param string $elementName * @param array $options * @param string $type * @return \Magento\Framework\Data\Form\Element\AbstractElement */ protected function _addField($formOrFieldset, $elementName, $options = array(), $type = 'text') { $options = array_merge($options, array('name' => $elementName, 'label' => $this->_recurringPaymentFields->getFieldLabel($elementName), 'note' => $this->_recurringPaymentFields->getFieldComment($elementName), 'disabled' => $this->_isReadOnly)); if (in_array($elementName, array('period_unit', 'period_frequency'))) { $options['required'] = true; } return $formOrFieldset->addField($elementName, $type, $options); }