Example #1
0
 /**
  * Prepare options for rendering
  *
  * @param array $options
  * @return array
  */
 protected function prepareOptions(array $options = [])
 {
     $helper = $this->formHelper;
     if (array_get($this->options, 'template') !== null) {
         $this->template = array_pull($this->options, 'template');
     }
     $options = $this->options = $helper->mergeOptions($this->options, $options);
     if ($this->parent->haveErrorsEnabled()) {
         $this->addErrorClass($options);
     }
     if ($this->getOption('attr.multiple')) {
         $this->name = $this->name . '[]';
     }
     if ($this->getOption('required') === true) {
         $options['label_attr']['class'] .= ' ' . $this->formHelper->getConfig('defaults.required_class', 'required');
         $options['attr']['required'] = 'required';
     }
     $options['wrapperAttrs'] = $helper->prepareAttributes($options['wrapper']);
     $options['errorAttrs'] = $helper->prepareAttributes($options['errors']);
     if ($options['is_child']) {
         $options['labelAttrs'] = $helper->prepareAttributes($options['label_attr']);
     }
     if ($options['help_block']['text']) {
         $options['help_block']['helpBlockAttrs'] = $helper->prepareAttributes($options['help_block']['attr']);
     }
     return $options;
 }
Example #2
0
 /**
  * Prepare options for rendering
  *
  * @param array $options
  * @return array
  */
 protected function prepareOptions(array $options = [])
 {
     $helper = $this->formHelper;
     $this->options = $helper->mergeOptions($this->options, $options);
     if ($this->getOption('attr.multiple') && !$this->getOption('tmp.multipleBracesSet')) {
         $this->name = $this->name . '[]';
         $this->setOption('tmp.multipleBracesSet', true);
     }
     if ($this->parent->haveErrorsEnabled()) {
         $this->addErrorClass();
     }
     if ($this->getOption('required') === true) {
         $lblClass = $this->getOption('label_attr.class', '');
         $requiredClass = $helper->getConfig('defaults.required_class', 'required');
         if (!str_contains($lblClass, $requiredClass)) {
             $lblClass .= ' ' . $requiredClass;
             $this->setOption('label_attr.class', $lblClass);
             $this->setOption('attr.required', 'required');
         }
     }
     if ($this->parent->clientValidationEnabled() && ($rules = $this->getOption('rules'))) {
         $rulesParser = new RulesParser($this);
         $attrs = $this->getOption('attr') + $rulesParser->parse($rules);
         $this->setOption('attr', $attrs);
     }
     $this->setOption('wrapperAttrs', $helper->prepareAttributes($this->getOption('wrapper')));
     $this->setOption('errorAttrs', $helper->prepareAttributes($this->getOption('errors')));
     if ($this->getOption('is_child')) {
         $this->setOption('labelAttrs', $helper->prepareAttributes($this->getOption('label_attr')));
     }
     if ($this->getOption('help_block.text')) {
         $this->setOption('help_block.helpBlockAttrs', $helper->prepareAttributes($this->getOption('help_block.attr')));
     }
     return $this->options;
 }