Template: helper funguje pouze při „prvním“ požadavku (pokud šablona ještě není uložená v keši)

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
pekelnik
Člen | 462
+
0
-

Vše je řečeno v nadpisu – tady je kód:

<?php
// presenter:
public function templatePrepareFilters($template)
{
	$latte = new Nette\Latte\Engine();
	$set = new Nette\Latte\Macros\MacroSet($latte->compiler);
	$service = $this->getContext()->fooService;
	$template->registerHelper('foo', function($args) use ($service) {
		return $service->output($args);
	});
	$set->addMacro('foo', NULL, NULL, 'echo \'foo="\' . $template->foo(%node.args) . \'"\'');
	$template->registerFilter($latte);
}
?>
David Grudl
Nette Core | 8228
+
0
-

Registruj ho v beforeRender, templatePrepareFilters se volá pouze při „prvním“ požadavku, pokud šablona ještě není uložená v keši.