jak jednoduse pridat vlastni makro?

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

docela rad bych potreboval pridat makro (ne helper) – neco na zpusob link. mam obrazky k jednotlivym profilum, ktere se mi do slozek skladaji podle ID uzivatele, pak tam mam jeste ve jmenu obrazku zamotany hash.

chtel bych si tedy vyrobit makro, napriklad {imagePath $uid $hash}, ktere by zavolalo nejakou mnou prichystanou metodu, ktera by vyhodila treba http://www.wdolekjearciknizevsehotvorstva.cz/l-imaaaz/000/000/001/HASH0000000001.jpg

… v template bych pak volal jen <img src="{imagePath 1 'HASH'}" .../>

koukal sem, ze bych to mohl pridat do statickeho pole na LatteMacros, ale zrovinka sem moc nepochopil syntaxi kolem :( a mozna je i nejaka funkce pro registraci vlastniho makra (?) :)

Editoval wdolek (10. 11. 2009 12:57)

Majkl578
Moderator | 1364
+
0
-

Pokud to uděláš včas (před zaregistrováním Latte filteru), můžeš použít zmíněné pole LatteMacros::$defaultMacros

LatteMacros::$defaultMacros['foo'] = '<?php echo MyMacros::foo(%%); ?>';

kde MyMacros::foo() je tvoje metoda na zpracování, parametry se předají stejně jako v template do makra.

Jan Tvrdík
Nette guru | 2595
+
0
-

Pro parsování lze pak použít funkci LatteFilter::fetchToken.

<?php
class MyMacros
{
	public static function foo($s)
	{
		$id = LatteFilter::fetchToken($s);
		$hash = LatteFilter::fetchToken($s);
	}
}