getControlPrototype() публичный Метод

Returns control's HTML element template.
public getControlPrototype ( ) : Nette\Utils\Html
Результат Nette\Utils\Html
Пример #1
0
 public function createButton()
 {
     if ($this->button) {
         return FALSE;
     }
     /** @var Nette\Forms\Container $container */
     $container = $this->control->lookup('Nette\\Forms\\Container');
     $name = $this->control->getName() . self::$buttonSuffix;
     $this->button = new SubmitButton("Apply");
     $this->button->setValidationScope(false);
     $container->addComponent($this->button, $name);
     $this->control->getControlPrototype()->addAttributes(array('data-apply-button' => $this->button->getHtmlId()));
     return TRUE;
 }
 /**
  * Update html class of control
  */
 protected function updateControlClass()
 {
     if ($this->controlClass !== null) {
         $classes = explode(" ", $this->control->getControlPrototype()->class);
         if (!in_array($this->controlClass, $classes)) {
             $this->control->getControlPrototype()->class($this->controlClass);
         }
     }
 }
 /**
  * @param \Nette\Forms\Controls\BaseControl $control
  */
 private function prepareControl(Controls\BaseControl $control)
 {
     $translator = $this->form->getTranslator();
     $control->setOption('rendered', FALSE);
     if ($control->isRequired()) {
         $control->getLabelPrototype()->addClass('required');
         $control->setOption('required', TRUE);
     }
     $el = $control->getControlPrototype();
     if ($placeholder = $control->getOption('placeholder')) {
         if (!$placeholder instanceof Html && $translator) {
             $placeholder = $translator->translate($placeholder);
         }
         $el->placeholder($placeholder);
     }
     if ($control->controlPrototype->type === 'email' && $control->getOption('input-prepend') === NULL) {
         $control->setOption('input-prepend', Html::el('i class="fa fa-fw fa-envelope"'));
     }
     if ($control->controlPrototype->type === 'password' && $control->getOption('input-prepend') === NULL) {
         $control->setOption('input-prepend', Html::el('i class="fa fa-fw fa-lock"'));
     }
     if ($control instanceof \Nette\Forms\ISubmitterControl) {
         $el->addClass('btn');
     } else {
         $control->setOption('pairContainer', $pair = Html::el('div'));
         $pair->id = $control->htmlId . '-pair';
         $pair->addClass('form-group');
         $label = $control->labelPrototype;
         if (static::isCheckbox($control)) {
             $label->addClass('checkbox');
         } elseif (!$control instanceof Controls\RadioList && !self::isCheckboxList($control)) {
             $label->addClass('control-label');
             if (!$control instanceof \Minetro\Forms\reCAPTCHA\ReCaptchaField) {
                 $el->addClass('form-control');
             }
         }
         if ($control->getOption('required', FALSE)) {
             $pair->addClass('required');
         }
         if ($control->errors) {
             $pair->addClass('has-error');
         }
         if ($prepend = $control->getOption('input-prepend')) {
             $prepend = Html::el('span', array('class' => 'input-group-addon'))->{$prepend instanceof Html ? 'add' : 'setText'}($prepend);
             $control->setOption('input-prepend', $prepend);
         }
         if ($append = $control->getOption('input-append')) {
             $append = Html::el('span', array('class' => 'input-group-addon'))->{$append instanceof Html ? 'add' : 'setText'}($append);
             $control->setOption('input-append', $append);
         }
     }
 }
 /**
  * @param \Nette\Forms\Controls\BaseControl $control
  */
 private function prepareControl(Controls\BaseControl $control)
 {
     $translator = $this->form->getTranslator();
     $control->setOption('rendered', FALSE);
     if ($control->isRequired()) {
         $control->getLabelPrototype()->addClass('required');
         $control->setOption('required', TRUE);
     }
     $el = $control->getControlPrototype();
     if ($placeholder = $control->getOption('placeholder')) {
         if (!$placeholder instanceof Html && $translator) {
             $placeholder = $translator->translate($placeholder);
         }
         $el->placeholder($placeholder);
     }
     if ($control->controlPrototype->type === 'email' && $control->getOption('input-prepend') === NULL) {
         $control->setOption('input-prepend', '@');
     }
     if ($control instanceof Nette\Forms\ISubmitterControl) {
         $el->addClass('btn');
     } else {
         $label = $control->labelPrototype;
         if ($control instanceof Controls\Checkbox) {
             $label->addClass('checkbox');
         } elseif (!$control instanceof Controls\RadioList && !self::isCheckboxList($control)) {
             $label->addClass('control-label');
         }
         $control->setOption('pairContainer', $pair = Html::el('div'));
         $pair->id = $control->htmlId . '-pair';
         $pair->addClass('control-group');
         if ($control->getOption('required', FALSE)) {
             $pair->addClass('required');
         }
         if ($control->errors) {
             $pair->addClass('error');
         }
         if ($prepend = $control->getOption('input-prepend')) {
             $prepend = Html::el('span', array('class' => 'add-on'))->{$prepend instanceof Html ? 'add' : 'setText'}($prepend);
             $control->setOption('input-prepend', $prepend);
         }
         if ($append = $control->getOption('input-append')) {
             $append = Html::el('span', array('class' => 'add-on'))->{$append instanceof Html ? 'add' : 'setText'}($append);
             $control->setOption('input-append', $append);
         }
     }
 }
 /**
  * @param \Nette\Forms\Controls\BaseControl $control
  */
 private function prepareControl(Controls\BaseControl $control)
 {
     $translator = $this->form->getTranslator();
     $control->setOption('rendered', FALSE);
     if ($control->isRequired()) {
         $control->getLabelPrototype()->addClass('required');
         $control->setOption('required', TRUE);
     }
     $el = $control->getControlPrototype();
     if ($placeholder = $control->getOption('placeholder')) {
         if (!$placeholder instanceof Html && $translator) {
             $placeholder = $translator->translate($placeholder);
         }
         $el->placeholder($placeholder);
     }
     if ($control->controlPrototype->type === 'email' && $control->getOption('input-prepend') === NULL) {
         $control->setOption('input-prepend', '@');
     }
     if ($control instanceof Nette\Forms\ISubmitterControl) {
         $el->addClass('btn');
         if ($control->getOption('btn-class') !== NULL) {
             $el->addClass($control->getOption('btn-class'));
         } else {
             $el->addClass('btn-default');
         }
     } else {
         if (static::isTextBase($control) || $control instanceof Controls\SelectBox) {
             $classes = $control->controlPrototype->class;
             if (!is_array($classes)) {
                 $classes = explode(' ', $classes);
             }
             if (($pos = array_search('no-form-control', $classes, TRUE)) !== FALSE) {
                 unset($classes[$pos]);
                 $el->class = $classes;
             } elseif ($control->getOption('noFormControl', FALSE) !== TRUE) {
                 $el->addClass('form-control');
             }
         }
         $label = $control->labelPrototype;
         if (!$control instanceof Controls\Checkbox && !$control instanceof Controls\RadioList && !static::isCheckboxList($control)) {
             $label->addClass('control-label');
         }
         $control->setOption('pairContainer', $pair = Html::el('div'));
         $pair->id = $control->htmlId . '-pair';
         $pair->addClass('form-group');
         if ($control->getOption('required', FALSE)) {
             $pair->addClass('required');
         }
         if ($control->errors) {
             $pair->addClass('has-error');
         }
     }
 }
Пример #6
0
 /**
  * @param BaseControl $control
  * @param string      $rule
  * @param string      $message
  * @param mixed       $arg
  */
 protected function addClientSideRule(BaseControl $control, $rule, $message, $arg = NULL)
 {
     $constraint = array('op' => lcfirst($rule), 'msg' => $message);
     if (!empty($arg)) {
         $constraint['arg'] = $arg;
     }
     $controlPrototype = $control->getControlPrototype();
     $attr = $this->clientSideRulesAttribute;
     if (is_array($controlPrototype->{$attr})) {
         $controlPrototype->{$attr} = array_merge($controlPrototype->{$attr}, array($constraint));
     } else {
         $controlPrototype->{$attr} = array($constraint);
     }
 }
 /**
  * @param \Nette\Forms\Controls\BaseControl $control
  */
 private function prepareControl(Controls\BaseControl $control)
 {
     $translator = $this->form->getTranslator();
     $control->setOption('rendered', FALSE);
     if ($control->isRequired()) {
         $control->getLabelPrototype()->addClass('required');
     }
     $el = $control->getControlPrototype();
     if ($el->getName() === 'input') {
         $el->class(strtr($el->type, array('password' => 'text', 'file' => 'text', 'submit' => 'button', 'image' => 'imagebutton')), TRUE);
     }
     if ($placeholder = $control->getOption('placeholder')) {
         if (!$placeholder instanceof Html && $translator) {
             $placeholder = $translator->translate($placeholder);
         }
         $el->placeholder($placeholder);
     }
     if ($control->controlPrototype->type === 'email') {
         $email = Html::el('span', array('class' => 'add-on'))->setText('@');
         $control->setOption('input-prepend', $email);
     }
     if ($control instanceof Nette\Forms\ISubmitterControl) {
         $el->addClass('btn');
     }
 }