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
+
0
-

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
+
0
-

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

moonlol
Člen | 19
+
0
-

O.K.
dekuji!