/**
  * Render form control
  * 
  * @param Element $element
  * @param Group   $container
  */
 protected function renderControl(Element $element, Group $container)
 {
     // Input group for prepend/append
     $useInputGroup = $element->getComponent('input-group') && ($element->getOption('prepend') != '' || $element->getOption('append') != '') && $element->getOption('label') !== 'inside';
     if ($useInputGroup) {
         $group = $element->getComponent('input-group');
         $container->add($group);
     } else {
         $group = $container;
         // Or just use container
     }
     // Prepend
     $labeledButton = static::isButton($element) && $element->hasClass('btn-labeled');
     if (!$labeledButton && $element->getOption('prepend')) {
         $group->add($element->getComponent('prepend'));
     }
     // Element
     $el = $element->renderElement();
     if ($element->getOption('label') === 'inside') {
         $el = $element->getComponent('label')->setContent($el);
     }
     $group->add($el);
     // Append
     if (!$labeledButton && $element->getOption('append')) {
         $group->add($element->getComponent('append'));
     }
     // Help block
     if ($element->getComponent('help') && $element->getOption('help')) {
         $container->add($element->getComponent('help'));
     }
     // Error
     if (method_exists($element, 'getError')) {
         $error = $element->getError();
         if ($error) {
             $element->begin('span', [], ['class' => 'help-block error'])->setContent($error);
         }
     }
 }
Beispiel #2
0
 /**
  * Get all options.
  * Bubbles to combine options of parent/ancestors.
  * 
  * @return array
  */
 public function getOptions()
 {
     $defaults = isset($this->parent) ? $this->parent->getOptions() : FormBuilder::$options;
     $options = $this->options + $defaults;
     return $options;
 }