Exemple #1
0
 public function register(array $messages = [])
 {
     if ($this->registered) {
         return;
     }
     // Default error messages for custom validators
     foreach ($messages as $validator => $message) {
         Nette\Forms\Rules::$defaultMessages[$validator] = $message;
     }
     // addLinkSubmit
     Container::extensionMethod('addLinkSubmit', function (Container $container, $name, $label = NULL, $icon = NULL, $destination = NULL) {
         $control = new Zax\Forms\Controls\LinkSubmitButton($label);
         $proto = $control->getControlPrototype();
         $proto->href($destination);
         $proto->setHtml($this->makeLabel($this->translate($label), $icon));
         return $container[$name] = $control;
     });
     // addButtonSubmit
     Container::extensionMethod('addButtonSubmit', function (Container $container, $name, $label = NULL, $icon = NULL, $data = []) {
         $control = new Nette\Forms\Controls\SubmitButton($label);
         $proto = $control->getControlPrototype();
         $proto->setName('button');
         $proto->setType('submit');
         foreach ($data as $key => $value) {
             $proto->setData($key, $value);
         }
         $label = $this->makeLabel($this->translate($label), $icon);
         $proto->setHtml($label);
         return $container[$name] = $control;
     });
     // addTexyArea
     Container::extensionMethod('addTexyArea', function (Container $container, $name, $label = NULL) {
         $control = new Zax\Forms\Controls\TexyAreaInput($label);
         $control->injectIcons($this->icons);
         return $container[$name] = $control;
     });
     // addFileUpload
     Container::extensionMethod('addFileUpload', function (Container $container, $name, $label = NULL, $multiple = FALSE) {
         $upload = new Nette\Forms\Controls\UploadControl($label, $multiple);
         $upload->getControlPrototype()->setData(['buttonText' => $this->translate('common.button.chooseFile' . ($multiple ? 's' : '')), 'input' => $multiple ? 'false' : 'true', 'maxFiles' => $multiple ? Zax\Utils\HttpHelpers::getMaxFileUploads() : 1]);
         $upload->addRule(Zax\Application\UI\Form::MAX_FILE_SIZE, NULL, Zax\Utils\HttpHelpers::getMaxUploadSize() * 1024 * 1024);
         return $container[$name] = $upload;
     });
     // addEmail
     Container::extensionMethod('addEmail', function (Container $container, $name, $label = NULL, $cols = NULL, $maxLength = NULL) {
         $text = $container->addText($name, $label, $cols, $maxLength);
         $text->setType('email');
         $text->addCondition(Nette\Forms\Form::FILLED)->addRule(Nette\Forms\Form::EMAIL);
         return $text;
     });
     // addArrayTextArea
     Container::extensionMethod('addArrayTextArea', function (Container $container, $name, $label = NULL, $keyValDelimiter = NULL) {
         $control = new Zax\Forms\Controls\ArrayTextAreaControl($label, $keyValDelimiter);
         return $container[$name] = $control;
     });
     // addNeonTextArea
     Container::extensionMethod('addNeonTextArea', function (Container $container, $name, $label = NULL) {
         $control = new Zax\Forms\Controls\NeonTextAreaControl($label);
         return $container[$name] = $control;
     });
     // addStatic
     Container::extensionMethod('addStatic', function (Container $container, $name, $label = NULL) {
         $control = new Zax\Forms\Controls\StaticControl($label);
         return $container[$name] = $control;
     });
     // addAutoComplete
     Container::extensionMethod('addAutoComplete', function (Container $container, $name, $label = NULL, $autocomplete = []) {
         $control = $container->addText($name, $label);
         $control->getControlPrototype()->addClass('jqueryui_autocomplete')->setData('autocomplete', $autocomplete);
         return $control;
     });
     // addMultiAutoComplete
     Container::extensionMethod('addMultiAutoComplete', function (Container $container, $name, $label = NULL, $autocomplete = []) {
         $control = $container->addText($name, $label);
         $control->getControlPrototype()->addClass('jqueryui_multiautocomplete')->setData('autocomplete', $autocomplete);
         return $control;
     });
     $this->registered = TRUE;
 }