Ako dostat premennu do macra ako parameter?
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- duskohu
- Člen | 778
Caute robim si macro do ktoreho chcem poslat absolutnu cestu k suboru. Ale problem je to ked dam ako parameter macra premennu tak do macra nedostanem hodnotu premennej, ale string $path. Neviete ako sa to riesi?
{var $path = 'D:\htdocs\dir\.........\file.png'}
{file $path, 'param1'}
public static function install(Compiler $parser)
{
$me = new static($parser);
$me->addMacro('file', function (MacroNode $node, PhpWriter $writer) use ($me) {
return $me->macroSrc($node, $writer);
}, NULL, function(MacroNode $node, PhpWriter $writer) use ($me) {
return ' ?> file="<?php ' . $me->macroFile($node, $writer) . ' ?>"<?php ';
});
}
public function macroFile(MacroNode $node, PhpWriter $writer)
{
$node->args; // dostanem $path (ako string, nie jeho hodnotu), 'param1'
return .....
}
- David Matějka
- Moderator | 6445
tenhle kod se totiz vola pri kompilaci a hodnota tak neni znama. ukolem toho makra je vygenerovat php kod, ktery pak v runtime bude pracovat s predanou hodnotou.