/**
  * Added an array_merge_recursive for labels to combine $_inputDefaults
  * with specific view markup for labels like custom text.
  * Also removed null array for options existing in $_inputDefaults.
  *
  * @param array $options Description
  * @return array
  */
 protected function _parseOptions($options)
 {
     if (!empty($options['label']) && $options['label']) {
         if (!is_array($options['label'])) {
             $options['label'] = ['text' => $options['label']];
         }
         $options['label'] = array_merge_recursive($options['label'], ['class' => 'control-label']);
     }
     return parent::_parseOptions($options);
 }
 protected function _parseOptions($options)
 {
     if (!empty($options['label'])) {
         //manage case 'label' => 'your label' as well as 'label' => array('text' => 'your label') before array_merge()
         if (!is_array($options['label'])) {
             $options['label'] = array('text' => $options['label']);
         }
         $options['label'] = array_merge_recursive($options['label'], $this->_inputDefaults['label']);
     }
     $options = array_merge(array('before' => null), $this->_inputDefaults, $options);
     return parent::_parseOptions($options);
 }
Exemple #3
0
 /**
  * Generate input options array
  *
  * @param array $options Options list
  * @return array
  */
 protected function _parseOptions($options)
 {
     $options = parent::_parseOptions($options);
     $options = $this->_parseOptionsAddon($options);
     $formInput = $this->Theme->getCssClass('formInput');
     $isMultipleCheckbox = isset($options['multiple']) && $options['multiple'] === 'checkbox';
     $isRadioOrCheckbox = isset($options['type']) && in_array($options['type'], array('checkbox', 'radio'));
     if ($isMultipleCheckbox || $isRadioOrCheckbox) {
         if ($options['type'] == 'radio') {
             $class = $this->Theme->getCssClass('radioClass');
         } elseif ($options['type'] == 'checkbox') {
             $class = $this->Theme->getCssClass('checkboxClass');
         }
         if (empty($class) && isset($options['class'])) {
             $class = str_replace($formInput, '', $options['class']);
         }
         if (empty($class)) {
             unset($options['class']);
         } else {
             $options['class'] = $class;
         }
     }
     return $options;
 }
 /**
  * Generate input options array
  *
  * @param array $options Options list
  * @return array
  */
 protected function _parseOptions($options)
 {
     $options = parent::_parseOptions($options);
     $options = $this->_parseOptionsAddon($options);
     if (isset($options['class'])) {
         $formInput = $this->_View->Layout->cssClass('formInput');
         $isMultipleCheckbox = isset($options['multiple']) && $options['multiple'] === 'checkbox';
         $isRadioOrCheckbox = isset($options['type']) && in_array($options['type'], array('checkbox', 'radio'));
         if ($isMultipleCheckbox || $isRadioOrCheckbox) {
             $options['class'] = str_replace($formInput, '', $options['class']);
         }
     }
     return $options;
 }