/** * Generate the upload field. * * @param ContextualConfig|Config $config The bootstrap config. * @param Container $container Form element container. * @param \Widget $widget Form widget. * * @return void */ private function generateUpload($config, Container $container, $widget) { $config = $config->get('form.styled-upload'); $element = $container->getElement(); /** @var Element $element */ $element->addClass('sr-only'); $element->setAttribute('onchange', sprintf($config['onchange'], $element->getId())); $input = Element::create('input', array('type' => 'text'))->setId($element->getId() . '_value')->addClass('form-control')->setAttribute('disabled', true)->setAttribute('name', $element->getAttribute('name') . '_value'); if ($element->hasAttribute('placeholder')) { $input->setAttribute('placeholder', $element->getAttribute('placeholder')); } elseif ($widget->placeholder) { $input->setAttribute('placeholder', $widget->placeholder); } $click = sprintf('$(%s).click();return false;', $element->getId()); $submit = Element::create('button', array('type' => 'submit'))->addChild($config['label'])->addClass($config['class'])->setAttribute('onclick', $click); $inputGroup = new InputGroup(); $inputGroup->setElement($input); if ($config['position'] == 'left') { $inputGroup->setLeft($submit, $inputGroup::BUTTON); } else { $inputGroup->setRight($submit, $inputGroup::BUTTON); } $container->addChild('upload', $inputGroup); }
/** * Move errors into the container and set css classes. * * @param ViewEvent $event The view event. * @param \Widget $widget The widget. * @param Container $container The container. * * @return void */ private function modifyErrors(ViewEvent $event, \Widget $widget, Container $container) { $errors = $event->getErrors(); $errors->addClass('help-block'); $container->addChild('errors', $errors); if ($widget->hasErrors()) { $view = $event->getView(); $view->getAttributes()->addClass('has-feedback')->addClass('has-error'); } }