/** * 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); }
/** * 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; }