/** * Set bootstrap select element attributes.. * * @param ContextualConfig|Config $config The config. * @param Element $element The select element. * @param \Widget $widget The widget. * * @return void */ private function setStyledSelectAttributes($config, $element, $widget) { $element->addClass($config->get('form.styled-select.class')); $element->setAttribute('data-style', $config->get('form.styled-select.style')); $size = $config->get('form.styled-select.size'); if ($size !== 'auto') { $element->setAttribute('data-size', $size); } if ($widget->bootstrap_select_search || $this->hasExceededOptionsThreshold($config, $widget)) { $element->setAttribute('data-live-search', 'true'); } $format = $config->get('form.styled-select.selected-text-format'); if ($widget->multiple && $format) { $element->setAttribute('data-selected-text-format', html_entity_decode($format)); } // If a btn-* class isset, set it as data-style attribute. $classes = explode(' ', $widget->class); foreach ($classes as $class) { if (strpos($class, 'btn-') === 0) { $element->removeClass($class); $element->setAttribute('data-style', $class); break; } } }
/** * Get a config value for a given form widget type. * * @param ContextualConfig|Config $config The used config. * @param string $type The widget type. * @param string $name The configuration name. * @param mixed $default The default value. * * @return mixed */ protected static function getWidgetConfigValue($config, $type, $name, $default = false) { return $config->get('form.widgets.' . $type . '.' . $name, $default); }
/** * Handle submit buttons added to a field. * * @param ContextualConfig|Config $config The bootstrap config. * @param Container $container Form element container. * @param \Widget $widget The form widget. * @param InputGroup $inputGroup The input group. * * @return void */ private function adjustSubmitButton($config, Container $container, \Widget $widget, InputGroup $inputGroup) { if ($container->hasChild('submit')) { /** @var Node $submit */ $submit = $container->removeChild('submit'); // recreate as button if ($submit->getTag() != 'button') { $submit = Element::create('button'); $submit->setAttribute('type', 'submit'); $submit->addChild($widget->slabel); } $submit->addClass('btn'); if ($widget->bootstrap_addSubmitClass) { $submit->addClass($widget->bootstrap_addSubmitClass); } else { $submit->addClass($config->get('form.default-submit-btn')); } if ($widget->bootstrap_addSubmitIcon) { $icon = Bootstrap::generateIcon($widget->bootstrap_addSubmitIcon); $position = null; if ($widget->bootstrap_addSubmitIconPosition == 'left') { $position = Node::POSITION_FIRST; $icon .= ' '; } else { $icon = ' ' . $icon; } $submit->addChild(new StaticHtml($icon), $position); } $inputGroup->setRight($submit, $inputGroup::BUTTON); } }