Esempio n. 1
0
 /**
  * Add field to Options form based on option configuration
  *
  * @param \Magento\Framework\Object $parameter
  * @return \Magento\Framework\Data\Form\Element\AbstractElement
  */
 protected function _addField($parameter)
 {
     if (!in_array($parameter->getKey(), $this->hiddenParameters)) {
         return parent::_addField($parameter);
     }
     return false;
 }
Esempio n. 2
0
 /**
  * Add field to Options form based on parameter configuration
  *
  * @param \Magento\Framework\Object $parameter
  * @return \Magento\Framework\Data\Form\Element\AbstractElement
  */
 protected function _addField($parameter)
 {
     $form = $this->getForm();
     $fieldset = $this->getMainFieldset();
     //$form->getElement('options_fieldset');
     // prepare element data with values (either from request of from default values)
     $fieldName = $parameter->getKey();
     $data = array('name' => $form->addSuffixToName($fieldName, 'parameters'), 'label' => __($parameter->getLabel()), 'required' => $parameter->getRequired(), 'class' => 'widget-option', 'note' => __($parameter->getDescription()));
     if ($values = $this->getWidgetValues()) {
         $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' => __($option['label']), 'value' => $option['value']);
         }
         // otherwise, a source model is specified
     } elseif ($sourceModel = $parameter->getSourceModel()) {
         $data['values'] = $this->_sourceModelPool->get($sourceModel)->toOptionArray();
     }
     // prepare field type or renderer
     $fieldRenderer = null;
     $fieldType = $parameter->getType();
     // hidden element
     if (!$parameter->getVisible()) {
         $fieldType = 'hidden';
         // just an element renderer
     } elseif ($fieldType && $this->_isClassName($fieldType)) {
         $fieldRenderer = $this->getLayout()->createBlock($fieldType);
         $fieldType = $this->_defaultElementType;
     }
     // instantiate field and render html
     $field = $fieldset->addField($this->getMainFieldsetHtmlId() . '_' . $fieldName, $fieldType, $data);
     if ($fieldRenderer) {
         $field->setRenderer($fieldRenderer);
     }
     // extra html preparations
     if ($helper = $parameter->getHelperBlock()) {
         $helperBlock = $this->getLayout()->createBlock($helper->getType(), '', array('data' => $helper->getData()));
         if ($helperBlock instanceof \Magento\Framework\Object) {
             $helperBlock->setConfig($helper->getData())->setFieldsetId($fieldset->getId())->prepareElementHtml($field);
         }
     }
     // dependencies from other fields
     $dependenceBlock = $this->getChildBlock('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;
 }
Esempio n. 3
0
 /**
  * Add field to Options form based on option configuration
  *
  * @param \Magento\Framework\Object $parameter
  * @return \Magento\Framework\Data\Form\Element\AbstractElement
  */
 protected function _addField($parameter)
 {
     if ($parameter->getKey() != 'template') {
         return parent::_addField($parameter);
     }
     return false;
 }