protected function getInputTemplateParameters()
 {
     $global_input_parameters = parent::getInputTemplateParameters();
     if (!empty($global_input_parameters['readonly'])) {
         $global_input_parameters['disabled'] = 'disabled';
     }
     return $global_input_parameters;
 }
 protected function isRequired()
 {
     $is_required = parent::isRequired();
     $url_list = $this->determineAttributeValue($this->attribute->getName());
     // check options against actual value
     $items_number = count($url_list);
     $min_count = $this->getMinCount($is_required);
     if (is_numeric($min_count) && $items_number < $min_count) {
         $is_required = true;
     }
     return $is_required;
 }
 protected function getTemplateParameters()
 {
     $params = parent::getTemplateParameters();
     $params['maxlength'] = $this->getOption('maxlength', $this->attribute->getOption(TextareaAttribute::OPTION_MAX_LENGTH));
     if (is_numeric($params['maxlength'])) {
         $params['attribute_value'] = substr($params['attribute_value'], 0, $params['maxlength']);
     }
     $params['wrap'] = $this->getOption('wrap', '');
     $params['cols'] = $this->getOption('cols', '');
     $params['rows'] = $this->getOption('rows', 12);
     $params['syntax'] = $this->getSyntaxParameters();
     return $params;
 }
 protected function getTemplateParameters()
 {
     $params = parent::getTemplateParameters();
     $params['maxlength'] = $this->getOption('maxlength', $this->attribute->getOption(TextareaAttribute::OPTION_MAX_LENGTH));
     if (is_numeric($params['maxlength'])) {
         $params['attribute_value'] = substr($params['attribute_value'], 0, $params['maxlength']);
     }
     $params['wrap'] = $this->getOption('wrap', '');
     $params['cols'] = $this->getOption('cols', '');
     $params['rows'] = $this->getOption('rows', 9);
     // editor like the HtmlRichTextEditor
     $params['editor'] = $this->getEditorParameters($params);
     return $params;
 }
 protected function getTemplateParameters()
 {
     $params = parent::getTemplateParameters();
     $params['value_step'] = $this->getOption('value_step', self::DEFAULT_VALUE_STEP);
     // verify the parameters are valid with floats
     foreach (['value_step'] as $key) {
         if ($key === 'value_step' && $params[$key] === 'any') {
             continue;
         }
         if (is_numeric($params[$key])) {
             $params[$key] = floatval($params[$key]);
         } else {
             $params[$key] = '';
         }
     }
     return $params;
 }
 protected function getTemplateParameters()
 {
     $params = parent::getTemplateParameters();
     $params['allowed_keys'] = $this->attribute->getOption(KeyValueListAttribute::OPTION_ALLOWED_KEYS, $this->getOption('allowed_keys', []));
     $params['allowed_values'] = $this->attribute->getOption(KeyValueListAttribute::OPTION_ALLOWED_VALUES, $this->getOption('allowed_values', []));
     if ($this->attribute->hasOption(KeyValueListAttribute::OPTION_ALLOWED_PAIRS) || $this->hasOption('allowed_pairs')) {
         $params['allowed_pairs'] = $this->getOption('allowed_pairs', $this->attribute->getOption(KeyValueListAttribute::OPTION_ALLOWED_PAIRS, []));
         if ($params['allowed_pairs'] instanceof SettingsInterface) {
             $params['allowed_pairs'] = $params['allowed_pairs']->toArray();
         }
         $params['allowed_keys'] = array_keys($params['allowed_pairs']);
         $params['allowed_values'] = array_values($params['allowed_pairs']);
     }
     $params['disabled'] = $this->isReadonly() || $this->isDisabled() ? 'disabled' : '';
     $params['hide_pair_labels'] = $this->getOption('hide_pair_labels', false);
     $params['key_maxlength'] = $this->getOption('key_maxlength');
     $params['value_maxlength'] = $this->getOption('value_maxlength', $this->attribute->getOption(KeyValueListAttribute::OPTION_MAX_LENGTH));
     $params['value_type'] = $this->getOption('value_type', $this->attribute->getOption(KeyValueListAttribute::OPTION_VALUE_TYPE, 'text'));
     switch ($params['value_type']) {
         case 'integer':
         case 'float':
             $params['value_type'] = 'number';
             $params['min'] = $this->getOption('min', $this->attribute->getOption(KeyValueListAttribute::OPTION_MIN_VALUE));
             $params['max'] = $this->getOption('max', $this->attribute->getOption(KeyValueListAttribute::OPTION_MAX_VALUE));
             break;
         case 'boolean':
             // @todo implement
             // break;
         // @todo implement
         // break;
         default:
             $params['value_type'] = 'text';
             break;
     }
     $params['attribute_value'] = $this->normalizeAttributeValue($params['attribute_value'], ['key_maxlength' => $params['key_maxlength'], 'value_maxlength' => $params['value_maxlength']]);
     return $params;
 }
 protected function getWidgetOptions()
 {
     $allow_empty_option = $this->getOption('allow_empty_option', false) || $this->getOption('add_empty_option', false);
     $widget_options = ['allow_empty_option' => $allow_empty_option];
     return array_replace_recursive(parent::getWidgetOptions(), $widget_options);
 }
 protected function getWidgetOptions()
 {
     $widget_options = parent::getWidgetOptions();
     $resource = $this->getPayload('resource');
     if ($resource->hasValue('identifier')) {
         $render_embed_uri_tpl = $this->url_generator->generateUrl('module.resource.embed', ['resource' => $resource, 'embed_path' => '{EMBED_PATH}'], ['relative' => true]);
     } else {
         $render_embed_uri_tpl = $this->url_generator->generateUrl('module.embed', ['module' => $resource->getType(), 'embed_path' => '{EMBED_PATH}'], ['relative' => true]);
     }
     $widget_options['min_count'] = $this->getMinCount($this->isRequired());
     $widget_options['max_count'] = $this->getMaxCount();
     $widget_options['inline_mode'] = $this->attribute->getOption('inline_mode', false);
     $widget_options['input_group'] = (array) $this->getOption('group_parts', []);
     $widget_options['fieldname'] = $this->attribute->getName();
     $widget_options['render_embed_uri_tpl'] = $render_embed_uri_tpl;
     return $widget_options;
 }
 protected function getDefaultTranslationKeys()
 {
     return array_replace(parent::getDefaultTranslationKeys(), ['pattern']);
 }
 protected function getDefaultTranslationKeys()
 {
     $default_translation_keys = parent::getDefaultTranslationKeys();
     $html_attribute_translation_keys = ['add_images'];
     return array_merge($default_translation_keys, $html_attribute_translation_keys);
 }