Makro s více parametry

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

Zdravím,

potřeboval bych radu ohledně maker. Mám následující kód.:

<?php
LatteMacros::$defaultMacros["icon"] = '<img src="/images/icons/%%.png" class="icon" alt="%%" />';
?>

Potřeboval bych jej upravit tak, abych při volání mohl použít dva parametry (první na název ikony, druhý na alt) asi nějak takto {icon error, Chyba}.

Jak mohu makru předat více než jeden parametr a jak má takové makro vypadat? V dokumentaci toto bohužel chybí.

Editoval jtousek (28. 12. 2009 11:04)

PetrP
Člen | 587
+
0
-

Lze to udělat přes pomocnou funkci:

//$lf instanceof LatteFilter
$lf->handler->macros['icon'] = '<?php echo %SameClass::sameMethod% ?>';


public static function sameMethod($content, $modifiers)
{
	return LatteFilter::formatString(
		Html::el('img')
			->addClass('icon')
			->src(LatteFilter::fetchToken($content))
			->alt(LatteFilter::fetchToken($content))
	);
}
PetrP
Člen | 587
+
0
-

Vlastně zapisovat to jako php je blbost, když chceš vypsat text tak tohle bude lepší.

$lf->handler->macros['icon'] = '%SameClass::sameMethod%';


public static function sameMethod($content, $modifiers)
{
	return Html::el('img')
		->addClass('icon')
		->src(LatteFilter::fetchToken($content))
		->alt(LatteFilter::fetchToken($content))
	;
}