Registrace vlastního makra v 2.0 beta

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

Zdravím,

jak si v nové betě zaregistruju nové makro? Musím si v $template->filters najít Latte, a na ní zavolat ->parser->addMacro() nebo to jde nějak jednodušeji? Jde o jednoduché makro icon, které se původně dělalo přes $defaultMacros.

David Grudl
Nette Core | 8218
+
0
-

Takto:

Nejsnadněji asi takto:

public function templatePrepareFilters($template)
{
	$latte = new Nette\Latte\Engine;
	$macroSet = new Nette\Latte\Macros\MacroSet($latte->parser);
	$macroSet->addMacro(
		'input',  // makro, tj. {input ...}
		'echo $form[%node.word]->getControl()->addAttributes(%node.array)' // kod
	);
	$macroSet->addMacro('for', 'for (%node.args):', 'endfor');
	$template->registerFilter($latte);
}
Aearsis
Člen | 57
+
0
-

Aha, díky. Hledal jsem nějakou cestu jak se vyhnout vlastní registraci Latte, přitom je to jednoduché.

bojovyletoun
Člen | 667
+
0
-

Jsem pro to to zjednodušit viz github :
PS: Když to mám ve svém commitu bojovyletoun/nette, tak předpokládám že to půjde přidat do nette/nette? V čem je pull request lepší? Tím, že upozorní?

		$tpl->registerFilter($latte = new Nette\Latte\Engine);
		$latte->addMacro('cro',
			'echo "uno;;";',
			'echo 2;');

Editoval bojovyletoun (1. 6. 2011 1:39)

Filip Procházka
Moderator | 4668
+
0
-

Netušíš kolik „svých commitů“ má těch 63 forků nette. Proto jsou pull requesty. Jo a, sprav si conding standart.

bojovyletoun
Člen | 667
+
0
-

Něco jsem o tom sepsal do kuchařky (včetně změn v zápisu od 22.1.2012)