Jak registrovat helper globalne?
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- moonlol
- Člen | 19
V soucasnosti musim v kazde akci presenteru nastavit pro sablonu helper
<?php
$this->template->registerHelper('nicetime', 'Helpers::nicetime');
?>
- Jak zaregistrovat helper pro vsechny akce v danem presenteru, bez toho abych opakoval tento kod?
- Jak zaregistrovat helper aby k nemu mela pristup kazda sablona v cele aplikaci?
Editoval moonlol (8. 8. 2013 16:24)
- David Matějka
- Moderator | 6445
pro cely presenter respektive pro vsechny presentery to je jednoduchy, v nejakem basepresenteru:
protected function createTemplate($class = NULL)
{
$template = parent::createTemplate($class);
$template->registerHelper('nicetime', 'Helpers::nicetime');
return $template;
}
pro vsechny sablony (i v komponentach) je to slozitejsi, ja mam tridu
TemplateFactory, ktera ma v sobe v podstate kod
z Nette\Application\UI\Control::createTemplate + par metod na registraci
helperu/helper loaderu.
v komponentach a presenterech potom vyuzivam tu sluzbu TemplateFactory namisto
createTemplate z controlu