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
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
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
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))
;
}