Example #1
0
 /**
  * @return Nette\Templates\ITemplate
  */
 protected function createTemplate()
 {
     $template = new Nette\Templates\FileTemplate();
     $presenter = $this->getPresenter(FALSE);
     $template->onPrepareFilters[] = callback($this, 'templatePrepareFilters');
     // default parameters
     $template->control = $this;
     $template->presenter = $presenter;
     $template->user = Nette\Environment::getUser();
     $template->baseUri = Nette\Environment::getVariable('baseUri', NULL);
     $template->basePath = rtrim($template->baseUri, '/');
     // flash message
     if ($presenter !== NULL && $presenter->hasFlashSession()) {
         $id = $this->getParamId('flash');
         $template->flashes = $presenter->getFlashSession()->{$id};
     }
     if (!isset($template->flashes) || !is_array($template->flashes)) {
         $template->flashes = array();
     }
     // default helpers
     $template->registerHelper('escape', 'Nette\\Templates\\TemplateHelpers::escapeHtml');
     $template->registerHelper('escapeUrl', 'rawurlencode');
     $template->registerHelper('stripTags', 'strip_tags');
     $template->registerHelper('nl2br', 'nl2br');
     $template->registerHelper('substr', 'iconv_substr');
     $template->registerHelper('repeat', 'str_repeat');
     $template->registerHelper('replaceRE', 'Nette\\String::replace');
     $template->registerHelper('implode', 'implode');
     $template->registerHelper('number', 'number_format');
     $template->registerHelperLoader('Nette\\Templates\\TemplateHelpers::loader');
     return $template;
 }
Example #2
0
 public function initialize()
 {
     $phoneNoLength = 12;
     $emailLength = 32;
     $nameLength = 32;
     $surnameLength = 32;
     $this->addHidden('id');
     $this->addHidden("password");
     $this->addHidden("leagueId");
     $this->addSubmit('submitButton', "system.forms.submitButton.label");
     $this->addGroup('Osobní údaje');
     $this->addText('nick', 'Přezdívka', 16, 16)->addRule(Form::FILLED, 'Není zadáno příjmení')->setRequired(TRUE);
     $this->addText('name', 'Jméno', $nameLength, $nameLength)->addRule(Form::FILLED, 'Není zadáno jméno')->setRequired(TRUE);
     $this->addText('surname', 'Příjmení', $surnameLength, $surnameLength)->addRule(Form::FILLED, 'Není zadáno příjmení')->setRequired(TRUE);
     $this->addText('birthNumber', 'Rodné číslo', 10, 10)->addRule(Form::FILLED, 'Není zadáno rodné číslo')->addRule(Form::NUMERIC, 'Rodné číslo musí obsahovat pouze čísla')->addRule(Form::LENGTH, 'Rodné číslo musí být dlouhé 10 znaků', 10)->setRequired(TRUE);
     $this->addGroup('Adresa trvalého bydliště');
     $this->addText('street', 'Ulice')->addRule(Form::FILLED, 'Pole "Adresa" je povinné')->setRequired(TRUE);
     $this->addText('number', 'Číslo popisné a orientační')->addRule(Form::FILLED, "Pole 'Číslo popisné a orientační' je povinné")->setRequired(TRUE);
     $this->addText('city', 'Město/Obec')->addRule(Form::FILLED, 'Pole "Město" je povinné')->setRequired(TRUE);
     $this->addText('postCode', 'PSČ', 5, 5)->addRule(Form::FILLED, 'Pole "PSČ" je povinné')->addRule(Form::NUMERIC, 'PSČ musí obsahovat pouze čísla')->addRule(Form::LENGTH, 'PSČ musí být dlouhé 5 znaků', 5)->setRequired(TRUE);
     $this->addGroup('Kontakt');
     $this->addText('phone', 'Telefon', $phoneNoLength, $phoneNoLength)->addRule(Form::FILLED, 'Není zadáno telefonní číslo')->addRule(Form::NUMERIC, 'Telefonní číslo musí obsahovat pouze čísla')->addRule(Form::LENGTH, "Telefon musí obsahovat {$phoneNoLength} znaků", $phoneNoLength)->setRequired(TRUE);
     $this->addText('email', 'E-mail', $emailLength, $emailLength)->addRule(Form::FILLED, 'Není zadáno příjmení')->addRule(Form::EMAIL, 'Špatný formát emailu')->setRequired(TRUE);
     $this->addText('job', 'Zaměstnání')->addRule(Form::FILLED, 'Není zadáné zaměstnání')->setRequired(TRUE);
     $this->addGroup('Kontaktní osoba');
     $this->addText('contPersonName', 'Jméno', $surnameLength, $surnameLength);
     $this->addText('contPersonPhone', 'Telefon', $phoneNoLength, $phoneNoLength)->addCondition(Form::FILLED)->addRule(Form::LENGTH, "Telefonní číslo musí mít max {$phoneNoLength} znaků", $phoneNoLength)->addRule(Form::NUMERIC, 'Telefonní číslo musí obsahovat pouze čísla');
     $this->addText('contPersonMail', 'E-mail', $emailLength, $emailLength)->addCondition(Form::FILLED)->addRule(Form::EMAIL, 'Špatný formát emailu');
     $this->onSuccess[] = callback($this->presenter, 'userFormSuccess');
 }
Example #3
0
	/**
	 * Call to undefined method.
	 * @param  object
	 * @param  string  method name
	 * @param  array   arguments
	 * @return mixed
	 * @throws MemberAccessException
	 */
	public static function call($_this, $name, $args)
	{
		$class = new NClassReflection($_this);

		if ($name === '') {
			throw new MemberAccessException("Call to class '$class->name' method without name.");
		}

		// event functionality
		if ($class->hasEventProperty($name)) {
			if (is_array($list = $_this->$name) || $list instanceof Traversable) {
				foreach ($list as $handler) {
					callback($handler)->invokeArgs($args);
				}
			}
			return NULL;
		}

		// extension methods
		if ($cb = $class->getExtensionMethod($name)) {
			array_unshift($args, $_this);
			return $cb->invokeArgs($args);
		}

		throw new MemberAccessException("Call to undefined method $class->name::$name().");
	}
 protected function createComponentForm()
 {
     $form = new Nette\Application\UI\Form();
     $addEventHandler = callback($this, 'handleAddItem');
     $removeEventHandler = callback($this, 'handleRemoveItem');
     $form->addGroup('Footer menu');
     $form->addDynamic('sections', function (Container $column) use($removeEventHandler, $addEventHandler) {
         $column->addText('title', 'Column Title')->getControlPrototype()->addClass('col-sm-5')->addAttributes(['placeholder' => 'Column Title']);
         $column->addDynamic('menuItems', function (Container $menuItems) use($removeEventHandler) {
             $menuItems->addText('text', 'Text')->getControlPrototype()->addClass('col-sm-5')->addAttributes(['placeholder' => 'Text']);
             $menuItems->addText('url', 'Url')->getControlPrototype()->addClass('col-sm-5')->addAttributes(['placeholder' => 'Url']);
             $menuItems->addSubmit('remove', '-')->setValidationScope(false)->setAttribute('class', 'btn-danger btn-sm')->setAttribute('data-replicator-item-remove', 'yes')->addRemoveOnClick($removeEventHandler);
             $this->controlsInit($menuItems);
         }, 1, true)->addSubmit('add', '+')->setValidationScope(false)->setAttribute('class', 'btn btn-success btn-sm')->addCreateOnClick(true, $addEventHandler);
         $column->addSubmit('remove', '-')->setValidationScope(false)->setAttribute('class', 'btn-sm btn-danger')->setAttribute('data-replicator-item-remove', 'yes')->addRemoveOnClick($removeEventHandler);
         $this->controlsInit($column);
     }, 2, true)->addSubmit('add', '+')->setValidationScope(false)->setAttribute('class', 'btn btn-sm btn-success')->addCreateOnClick(true, $addEventHandler);
     $form->addGroup();
     $form->addSubmit('submit', 'Save');
     $form->addSubmit('cancel', 'Cancel');
     $this->controlsInit($form);
     $form->getElementPrototype()->addClass('form-horizontal');
     $form->onSuccess[] = $this->processForm;
     $form->setRenderer(new Bs3FormRenderer());
     return $form;
 }
Example #5
0
 protected function createComponentCourseRegistration()
 {
     $msgNameReq = "Zadejte prosím jméno a příjmení.";
     $msgEmailReq = "Zadejte prosím emailovou adresu.";
     $msgPhoneReq = "Zadejte prosím telefonní číslo.";
     $msgPhoneBad = "Telefon není správně vyplněn.";
     $msgDateReq = "Vyberte prosím termín akce.";
     $persons = array('1 osoba', '2 osoby', '3 osoby', '4 osoby', '5 osob');
     $dates = array();
     foreach ($this->context->parameters['courses'][$this->course]['dates'] as $date) {
         $dates[] = $this->template->date($date['date'], '%d.%m.%Y');
     }
     $form = new Form();
     $form->addText('name', 'Jméno', NULL, 60)->setAttribute('placeholder', 'Jméno a příjmení')->setAttribute('tabindex', 1)->addRule(~$form::EQUAL, $msgNameReq, $form['name']->control->attrs['placeholder'])->setRequired($msgNameReq);
     $form->addText('email', 'Email', NULL, 40)->setAttribute('placeholder', 'Email')->setAttribute('tabindex', 2)->addRule(~$form::EQUAL, $msgEmailReq, $form['email']->control->attrs['placeholder'])->setRequired($msgEmailReq)->addRule(Form::EMAIL, '%label není správně vyplněn.');
     $form->addText('phone', 'Telefon', NULL, 9)->setAttribute('placeholder', 'Telefon')->setAttribute('tabindex', 3)->addRule(~$form::EQUAL, $msgPhoneReq, $form['phone']->control->attrs['placeholder'])->setRequired($msgPhoneReq)->addRule(Form::INTEGER, $msgPhoneBad)->addRule(Form::LENGTH, $msgPhoneBad, 9);
     $form->addSelect('date', 'Termín konání')->setPrompt('Zvolte termín konání')->setItems($dates)->setRequired($msgDateReq);
     if (count($dates) == 1) {
         $form['date']->setDefaultValue(0);
     }
     $form->addSelect('person', 'Počet')->setItems($persons, FALSE);
     $form->addTextArea('note', 'Poznámka', NULL)->setAttribute('placeholder', 'Jakýkoli dotaz nebo zpráva.')->setAttribute('tabindex', 4)->addRule(Form::MAX_LENGTH, 'Poznámka může obsahovat maximálně 1000 znaků.', 1000);
     $form->addSubmit('send', 'Odeslat')->setAttribute('tabindex', 5)->setAttribute('class', 'button');
     $form->addSubmit('storno', 'Storno')->setAttribute('tabindex', 6)->setValidationScope(NULL)->setAttribute('class', 'button');
     $form->addHidden('spamtest')->addRule($form::EQUAL, 'Robot', array(NULL));
     $form->onSuccess[] = callback($this, 'submitRegistration');
     return $form;
 }
Example #6
0
 public function __construct($parent, $name)
 {
     parent::__construct($parent, $name);
     $roles = $parent->getModelAcl()->getRolesSelectData();
     $this->addText('login', 'Login')->addRule(Form::FILLED, 'Zadejte login');
     $this->addText('email', 'E-mail')->addRule(Form::FILLED, 'Zadejte email')->addRule(Form::EMAIL);
     $this->addSelect('role', 'Role', $roles)->setRequired('Vyberte roli');
     $this->addPassword('password', 'Heslo');
     $this->addPassword('passwordVerify', 'Heslo znovu');
     switch ($this->getPresenter()->getAction()) {
         case 'add':
             $this->addSubmit('send', 'Vytvořit');
             $this['password']->addRule(Form::FILLED);
             $this['passwordVerify']->setRequired('Zadejte prosím heslo ještě jednou pro kontrolu')->addRule(Form::EQUAL, 'Hesla se neshodují', $this['password']);
             $validatorParams = array('userId' => NULL);
             $this['login']->addRule(callback($this, 'loginUniqueValidator'), 'Login musí být unikátní', $validatorParams);
             $this->onSuccess[] = array($this, 'addformSubmited');
             break;
         case 'edit':
             // edit
             $this['passwordVerify']->addConditionOn($this['password'], Form::FILLED, TRUE)->addRule(Form::EQUAL, 'Hesla se neshodují', $this['password']);
             $userId = $this->presenter->getParam('user_id');
             $this->addHidden('user_id', $userId);
             $validatorParams = array('userId' => $this['user_id']->value);
             $this['login']->addRule(callback($this, 'loginUniqueValidator'), 'Login musí být unikátní', $validatorParams);
             $defaults = $this->getPresenter()->getModelUser()->getUserDefaults($userId);
             $this->addSubmit('send', 'Upravit');
             $this->onSuccess[] = array($this, 'editFormSubmited');
             $this->setDefaults($defaults);
             break;
     }
     $this['send']->getControlPrototype()->class = "submit";
 }
 /**
  * Register MFU into Nette
  */
 public static function register()
 {
     self::init();
     $application = Environment::getApplication();
     $application->onStartup[] = callback(__CLASS__, "handleUploads");
     $application->onShutdown[] = callback(__CLASS__, "cleanCache");
 }
Example #8
0
 /**
  * @param  Nette\Application\Request
  * @return Nette\Application\IResponse
  */
 public function run(Application\Request $request)
 {
     $this->request = $request;
     $httpRequest = $this->context->httpRequest;
     if (!$httpRequest->isAjax() && ($request->isMethod('get') || $request->isMethod('head'))) {
         $refUrl = clone $httpRequest->getUrl();
         $url = $this->context->router->constructUrl($request, $refUrl->setPath($refUrl->getScriptPath()));
         if ($url !== NULL && !$httpRequest->getUrl()->isEqual($url)) {
             return new Responses\RedirectResponse($url, Http\IResponse::S301_MOVED_PERMANENTLY);
         }
     }
     $params = $request->getParams();
     if (!isset($params['callback'])) {
         return;
     }
     $params['presenter'] = $this;
     $response = callback($params['callback'])->invokeNamedArgs($params);
     if (is_string($response)) {
         $response = array($response, array());
     }
     if (is_array($response)) {
         if ($response instanceof \SplFileInfo) {
             $response = $this->createTemplate('Nette\\Templating\\FileTemplate')->setParams($response[1])->setFile($response[0]);
         } else {
             $response = $this->createTemplate('Nette\\Templating\\Template')->setParams($response[1])->setSource($response[0]);
         }
     }
     if ($response instanceof Nette\Templating\ITemplate) {
         return new Responses\TextResponse($response);
     } else {
         return $response;
     }
 }
Example #9
0
 /**
  * HelperLoader
  */
 public static function loader($helper)
 {
     $callback = callback(__CLASS__, $helper);
     if ($callback->isCallable()) {
         return $callback;
     }
 }
Example #10
0
 protected function createComponentGrid($name)
 {
     $grid = new \App\Grids\baseGrid($this, $name);
     $grid->model = $this->model;
     $grid->addColumnText('firstname', 'Jméno')->setSortable()->setFilterText();
     $grid->addColumnText('lastname', 'Příjmení')->setSortable()->setFilterText();
     $grid->addColumnText('gender', 'Pohlaví')->setSortable()->setReplacement($grid::$genderReplacements)->setFilterSelect($grid::$genderFilters);
     $grid->addColumnDate('birthdate', 'Narození')->setSortable()->setFilterDate();
     $grid->addColumnText('email', 'Email')->setSortable()->setFilterText();
     $grid->addColumnText('imap_username', 'Školní login')->setSortable()->setFilterText();
     $grid->addColumnText('active', 'Aktivní')->setSortable()->setReplacement($grid::$booleanReplacements)->setFilterSelect($grid::$booleanFilters);
     $grid->addColumnText('enabled', 'Povolený')->setSortable()->setReplacement($grid::$booleanReplacements)->setFilterSelect($grid::$booleanFilters);
     $grid->addActionHref("id", "Detail");
     $grid->addActionHref("delete", "Odstranit")->setConfirm(function ($item) {
         return "Opravdu chcete odstranit uživatele {$item->firstname} {$item->lastname}?";
     });
     $grid->addActionHref('activate', 'Aktivovat')->setDisable(function ($item) {
         return $item->active == 1;
     });
     $grid->addActionHref('deactivate', 'Deaktivovat')->setDisable(function ($item) {
         return $item->active == 0;
     });
     $grid->addActionHref('enable', 'Povolit')->setDisable(function ($item) {
         return $item->enabled == 1;
     });
     $grid->addActionHref('disable', 'Zablokovat')->setDisable(function ($item) {
         return $item->enabled == 0;
     });
     $operations = array('delete' => 'Odstranit', 'enable' => 'Povolit', 'disable' => 'Zablokovat');
     $grid->setOperation($operations, callback($this, 'gridOperationsHandler'))->setConfirm('delete', 'Opravdu chcete smazat všech %i uživatelů?');
     $grid->setDefaultSort(array('lastname' => 'ASC'));
     return $grid;
 }
Example #11
0
 protected function attachHandlers($form)
 {
     if (method_exists($this, 'handleCatchError')) {
         $this->onCatchError[] = callback($this, 'handleCatchError');
     }
     return parent::attachHandlers($form);
 }
Example #12
0
 public function initialize()
 {
     parent::initialize();
     $wpStates = WebProfileStatus::getOptions();
     $rows = 2;
     $cols = 50;
     $this->addHidden('id');
     $this->addGroup('usersModule.admin.profileEdit');
     $this->addTextArea('personalLikes', 'usersModule.webProfForm.personalLikes.label', $cols, $rows);
     $this->addTextArea('personalDislikes', 'usersModule.webProfForm.personalDisLikes.label', $cols, $rows);
     $this->addTextArea('personalInterests', 'usersModule.webProfForm.personalInterests.label', $cols, $rows);
     $this->addText('jerseyNumber', 'usersModule.webProfForm.jerseyNumber.label')->addRule(Form::NUMERIC, "usersModule.webProfForm.jerseyNumber.mustNumber");
     $this->addTextArea('equipment', 'usersModule.webProfForm.equipment.label', $cols, $rows);
     $this->addTextArea('favouriteBrand', 'usersModule.webProfForm.favBrand.label', $cols, $rows);
     $this->addTextArea('favouriteClub', 'usersModule.webProfForm.favClub.label', $cols, $rows);
     $this->addTextArea('sportExperience', 'usersModule.webProfForm.experience.label', $cols, $rows);
     $this->addTextArea('howGotThere', 'usersModule.webProfForm.howGotThere.label', $cols, $rows);
     $this->addTextArea('aditionalInfo', 'usersModule.webProfForm.moreAboutMe.label', $cols, $rows);
     $this->addUpload("picture", "usersModule.webProfForm.picture.label");
     $this->addTextArea('signature', 'usersModule.webProfForm.signature.label', $cols, $rows);
     $this->addCheckbox("publish", 'usersModule.webProfForm.publish.label');
     $this->addSelect("status", "usersModule.webProfForm.status.label", $wpStates);
     $this->addSubmit('submitButton', 'system.forms.submitButton.label');
     $this->onSuccess[] = callback($this->presenter, 'webProfileFormSuccess');
 }
Example #13
0
 public function createComponentSearchForm($name)
 {
     $form = new Form($this, $name);
     $form->onSuccess[] = callback($this, $name . 'Submitted');
     $form->addText('query')->setDefaultValue($this->query ?: 'Hledat...');
     $form->addSubmit('s', 'Search!');
 }
 protected function createComponentGrid($name)
 {
     $grid = new \App\Grids\baseGrid($this, $name);
     if ($this->user->isInRole("administrator") || $this->user->isInRole("teacher")) {
         $grid->model = $this->model;
     } else {
         $grid->model = $this->model->getSelection()->where("user_id = " . $this->user->id);
     }
     $grid->addColumnText('name', 'Název')->setSortable()->setFilterText();
     $grid->addColumnText('firstname', 'Jméno autora')->setSortable()->setFilterText();
     $grid->addColumnText('lastname', 'Příjmení autora')->setSortable()->setFilterText();
     $grid->addColumnText('class', 'Třída')->setSortable()->setFilterText();
     $grid->addColumnText('year', 'Školní rok')->setSortable()->setFilterText();
     $grid->addColumnText('set_name', 'Sada prací')->setSortable()->setFilterText();
     $grid->addColumnText('status', 'Stav')->setSortable()->setReplacement($this->statuses)->setFilterSelect($this->statuses);
     $grid->addColumnDate('created_date', 'Vytvořeno')->setSortable()->setFilterDate();
     $grid->addActionHref("id", "Detail");
     $grid->addActionHref("application", "Přihláška");
     $grid->addActionHref("delete", "Odstranit")->setConfirm(function ($item) {
         return "Opravdu chcete odstranit zadání práce {$item->name}?";
     })->setDisable(function ($item) {
         if ($item->status > 0) {
             return true;
         }
         if (!($this->user->isInRole("administrator") || $this->user->id == $item->created_by)) {
             return true;
         }
         return false;
     });
     $operations = array('delete' => 'Odstranit');
     $grid->setOperation($operations, callback($this, 'gridOperationsHandler'))->setConfirm('delete', 'Opravdu chcete smazat všech %i prací?');
     $grid->setDefaultSort(array('name' => 'ASC'));
     return $grid;
 }
Example #15
0
	/**
	 * Fifteen game control factory.
	 * @return mixed
	 */
	protected function createComponentFifteen()
	{
		$fifteen = new FifteenControl;
		$fifteen->onGameOver[] = callback($this, 'gameOver');
		$fifteen->invalidateControl();
		return $fifteen;
	}
Example #16
0
 protected function createComponentLoginForm($name)
 {
     $form = new MyAppForm($this, $name);
     if ($this->useAjax) {
         $form->enableAjax();
     }
     if (!$this->useAutocomplete) {
         $form->getElementPrototype()->autocomplete('off');
     }
     if (isset($this->getPresenter()->translator)) {
         $form->setTranslator($this->getPresenter()->translator);
     }
     if ($this->errorsAsFlashMessages) {
         $form->setErrorsAsFlashMessages();
     }
     $form->addClass('loginFrm');
     $form->addText('username', $this->labels['username'])->addRule(Form::FILLED, 'Enter your username!');
     $form->addPassword('password', $this->labels['password'])->addRule(Form::FILLED, 'Enter your password!');
     if ($this->useRemember) {
         $form->addCheckbox('remember', $this->labels['remember']);
     }
     //	if using labelOver we need to add class to ensure label is visible with javascript disabled
     if ($this->useLabelOver) {
         $form['password']->getLabelPrototype()->class('onlyJS');
         $form['username']->getLabelPrototype()->class('onlyJS');
     }
     $form->addHidden('key');
     $form->addHidden('anchor');
     $form->addSubmit('ok', $this->labels['submit'])->getControlPrototype()->class[] = 'ok-button';
     if ($this->useProtection) {
         $form->addProtection('Form validity time expired. Please send the form again.');
     }
     $form->onSubmit[] = callback($this, 'loginFormSubmitted');
     return $form;
 }
Example #17
0
 /**
  * @return string
  */
 public function getPanel()
 {
     if (!$this->queries) {
         return NULL;
     }
     ob_start();
     $esc = callback('Nette\\Templating\\Helpers::escapeHtml');
     $click = class_exists('\\Tracy\\Dumper') ? function ($o, $c = FALSE, $d = 4) {
         return \Tracy\Dumper::toHtml($o, array('collapse' => $c, 'depth' => $d));
     } : callback('\\Tracy\\Helpers::clickableDump');
     $totalTime = $this->totalTime ? sprintf('%0.3f', $this->totalTime * 1000) . ' ms' : 'none';
     $extractData = function ($object) {
         if ($object instanceof Elastica\Request) {
             $data = $object->getData();
         } elseif ($object instanceof Elastica\Response) {
             $data = $object->getData();
         } else {
             return array();
         }
         try {
             return !is_array($data) ? Json::decode($data, Json::FORCE_ARRAY) : $data;
         } catch (Nette\Utils\JsonException $e) {
             try {
                 return array_map(function ($row) {
                     return Json::decode($row, Json::FORCE_ARRAY);
                 }, explode("\n", trim($data)));
             } catch (Nette\Utils\JsonException $e) {
                 return $data;
             }
         }
     };
     $processedQueries = array();
     $allQueries = $this->queries;
     foreach ($allQueries as $authority => $requests) {
         /** @var Elastica\Request[] $item */
         foreach ($requests as $i => $item) {
             $processedQueries[$authority][$i] = $item;
             if (isset($item[3])) {
                 continue;
                 // exception, do not re-execute
             }
             if (stripos($item[0]->getPath(), '_search') === FALSE || $item[0]->getMethod() !== 'GET') {
                 continue;
                 // explain only search queries
             }
             if (!is_array($data = $extractData($item[0]))) {
                 continue;
             }
             try {
                 $response = $this->client->request($item[0]->getPath(), $item[0]->getMethod(), $item[0]->getData(), array('explain' => 1) + $item[0]->getQuery());
                 // replace the search response with the explained response
                 $processedQueries[$authority][$i][1] = $response;
             } catch (\Exception $e) {
                 // ignore
             }
         }
     }
     require __DIR__ . '/panel.phtml';
     return ob_get_clean();
 }
Example #18
0
 /**
  * @return Form
  */
 protected function createComponentForm()
 {
     $form = new Form();
     $form->onError[] = callback($this, "Error");
     $form->onSuccess[] = callback($this, "Submit");
     return $form;
 }
Example #19
0
 protected function createComponentPotvrditZmenuHeslaForm()
 {
     $values = array('id_osoby' => $this->id, 'klic' => $this->klic);
     $form = new PotvrditZmenuHeslaForm($values);
     $form->onSuccess[] = callback($this, 'potvrditZmenuHeslaFormSubmitted');
     return $form;
 }
Example #20
0
 public function __construct(Presenter $parent = null, $name = null)
 {
     parent::__construct($parent, $name);
     $this->addText('from', 'From')->addRule(Form::EMAIL, 'Please enter a valid email.');
     $this->addTextArea('text', 'Message');
     $this->addSubmit('btnSend', 'Send')->onClick[] = callback($this, 'FormSent');
 }
Example #21
0
 /**
  * @return Template
  */
 protected function createTemplate()
 {
     /** @var Template $template */
     $template = parent::createTemplate();
     $template->getLatte()->addFilter('base', callback($this->helpers, 'loader'));
     return $template;
 }
Example #22
0
 /**
  * @param null $class
  * @return \Nette\Templating\ITemplate
  */
 protected function createTemplate($class = NULL)
 {
     $template = parent::createTemplate($class);
     $template->setTranslator($this->translator);
     $template->registerHelperLoader(callback($this->helpers, 'loader'));
     return $template;
 }
Example #23
0
 /**
  * Adds a method to class.
  * @param  string  method name
  * @param  mixed   callback or closure
  * @return ClassType  provides a fluent interface
  */
 public function setExtensionMethod($name, $callback)
 {
     $l =& self::$extMethods[strtolower($name)];
     $l[strtolower($this->getName())] = callback($callback);
     $l[''] = NULL;
     return $this;
 }
Example #24
0
 public static function addControls($container, $config)
 {
     foreach ($config as $name => $control) {
         if (!isset($control['type'])) {
             continue;
         }
         $type = $control['type'];
         if (isset(self::$controls[$type])) {
             $params = array($name);
             $setters = array();
             foreach (self::$controls[$type] as $key => $param) {
                 if (is_numeric($key)) {
                     $params[] = isset($control[$param]) ? $control[$param] : null;
                 } elseif (isset($control[$param])) {
                     $setters[$key] = $control[$param];
                 }
             }
             $fctrl = call_user_func_array(callback($container, 'add' . ucfirst($type)), $params);
             foreach ($setters as $method => $value) {
                 call_user_func(array($fctrl, $method), $value);
             }
             if (isset($control['required'])) {
                 $fctrl->setRequired($control['required']);
             }
         } elseif ($type == 'container') {
             self::addControls($container->addContainer($name), $control);
         } elseif ($type == 'group') {
             $container->addGroup($name);
         }
     }
 }
Example #25
0
 /**
  * @param  string|NULL
  * @return Nette\Templating\ITemplate
  */
 protected function createTemplate($class = NULL)
 {
     $template = $class ? new $class() : new Nette\Templating\FileTemplate();
     $presenter = $this->getPresenter(FALSE);
     $template->onPrepareFilters[] = callback($this, 'templatePrepareFilters');
     $template->registerHelperLoader('Nette\\Templating\\Helpers::loader');
     // default parameters
     $template->control = $template->_control = $this;
     $template->presenter = $template->_presenter = $presenter;
     if ($presenter instanceof Presenter) {
         $template->setCacheStorage($presenter->getContext()->nette->templateCacheStorage);
         $template->user = $presenter->getUser();
         $template->netteHttpResponse = $presenter->getHttpResponse();
         $template->netteCacheStorage = $presenter->getContext()->getByType('Nette\\Caching\\IStorage');
         $template->baseUri = $template->baseUrl = rtrim($presenter->getHttpRequest()->getUrl()->getBaseUrl(), '/');
         $template->basePath = preg_replace('#https?://[^/]+#A', '', $template->baseUrl);
         // flash message
         if ($presenter->hasFlashSession()) {
             $id = $this->getParameterId('flash');
             $template->flashes = $presenter->getFlashSession()->{$id};
         }
     }
     if (!isset($template->flashes) || !is_array($template->flashes)) {
         $template->flashes = array();
     }
     return $template;
 }
Example #26
0
 public function __construct()
 {
     parent::__construct();
     $this->tags = array();
     $tags = PagesModel::getPageById(27)->getMeta('tag_options');
     foreach (explode("\n", $tags) as $t) {
         $t = trim($t);
         $this->tags[$t] = $t;
     }
     $this->projects = PagesModel::getPagesByMeta("project_tag")->getPairs('');
     $this->addText('username', 'OSM.org username')->setDisabled();
     $this->addText('fullname', 'Celé jméno')->setOption('description', 'Ať se poznáme!')->addRule(Form::FILLED, '%label není vyplněn.')->addRule(Form::MIN_LENGTH, '%label musí mít alespoň 5 znaků.', 5);
     $this->addText('email', 'Talk-cz')->setOption('description', 'Email použivaný pro spočítání příspěvků v talk-cz (neveřejný)')->addRule(Form::FILLED, '%label není vyplněn.')->addRule(Form::EMAIL, '%label není validní.');
     $this->addText('contact', 'Veřejný e-mail')->setOption('description', '(nepovinné)')->addCondition(Form::FILLED)->addRule(Form::EMAIL, '%label není validní.');
     $this->addText('twitter', 'Twitter')->setOption('description', '(nepovinné) Uživatelské jméno bez zavináče');
     $this->addText('github', 'Github')->setOption('description', '(nepovinné) Uživatelské jméno');
     $this->addText('places', 'Výskyt')->setOption('description', '(nepovinné) Kde se vyskystuju - typicky jaká města.');
     $this['places']->getControlPrototype()->placeholder = 'oddělené čárkou';
     $this['places']->getControlPrototype()->style = 'width: 40%';
     $this->addText('tags', 'Oblasti zájmu')->setOption('description', '(nepovinné)');
     $this['tags']->getControlPrototype()->placeholder = 'oddělené čárkou';
     $this['tags']->getControlPrototype()->style = 'width: 60%';
     $this['tags']->getControlPrototype()->{'data-options'} = Json::encode(array_values($this->tags));
     $this->addMultiSelect('projects', 'Projekty', $this->projects)->setOption('description', '(nepovinné) Projektovou stránku možno přidat v administraci. Případně napiš na dev@openstreetmap.cz')->getControlPrototype()->style = 'height:150px;width:40%';
     $this->addCheckbox('public', 'Zveřejnit údaje na openstreetmap.cz');
     $this->addSubmit('submit', 'Uložit údaje');
     $this->onSuccess[] = callback($this, 'submitted');
     $renderer = $this->getRenderer();
     $renderer->wrappers['controls']['container'] = 'table class="table form-inline"';
     $renderer->wrappers['error']['container'] = 'ul class="bg-danger"';
     $renderer->wrappers['control']['.text'] = 'form-control';
     $renderer->wrappers['control']['.email'] = 'form-control';
     $renderer->wrappers['control']['.submit'] = 'btn btn-primary';
 }
Example #27
0
 public function notifyRule(Rule $rule)
 {
     if (is_string($rule->operation) && strcasecmp($rule->operation, ':float') === 0) {
         $this->addFilter(callback(__CLASS__, 'filterFloat'));
     }
     parent::notifyRule($rule);
 }
Example #28
0
 protected function createTemplate($class = NULL)
 {
     $template = parent::createTemplate($class);
     $template->addFilter('texy', callback($this->texy, 'process'));
     $template->addFilter('timeAgo', 'Helpers::timeAgoInWords');
     return $template;
 }
Example #29
0
 /**
  * Invoke all cron methods
  */
 private function invoke(array $methods)
 {
     foreach ($methods as $method) {
         Debugger::barDump($method->annotations, $method->name);
         $instance = $this->context->createInstance($method->class);
         callback($instance, $method->name)->invokeArgs([$this->context, $this->getParameters()]);
     }
 }
 protected function createComponentPolozkaForm($name)
 {
     $form = new Form();
     $form->addText('nazov', 'Nazov');
     $form->addSubmit('uloz', 'Uloz')->onClick[] = callback($this, 'nazovFormSubmitted');
     $form->addSubmit('cancel', 'Storno')->onClick[] = callback($this, 'cancelFormSubmitted');
     return $form;
 }