Překlad v makru pomocí filtru translate – problém s uvozovkami při výpisu %node.word

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

Ahoj,

prosím Vás o radu, asi hlavně @FilipProcházka – podle toho co jsem našel tady :-) Bohužel ty pastebiny od chetloga už nefungují a z těch dalších odkazů jsem toho moc nevymyslel :-(

Mám macro {share …}

<?php

return $writer->write('echo %modify(call_user_func($this->filters->sharer, %node.word, [%node.args, call_user_func($this->filters->translate, \'front.socials.%node.word\')]));');

?>

Filtr {…|sharer}

<?php

return '<a href="http://www.facebook.com/sharer/sharer.php?u='.$args[0].'">'.$args[1].'</a>';

?>

A překladač, který zobe data z neonu:

<?php

front:
	share:
		facebook:	'Sdílet na facebooku'

?>

dle stringu s tečkovou notací:

{_front.share.facebook} <!-- vrací 'Sdílet na facebooku' -->

Problém je v tom, že mi makro {share facebook $page_url} – konkrétně call_user_func($this->filters->translate, \'front.socials.%node.word\') volá překladač a předá mu řetězec ve kterém je %node.word ohraničen uvozovkami "front.share."facebook"" což vede k tomu, že mi překladač vrátí ten stejný, nepřeložený, řetězec. Jak prosím vypíšu %node.word bez uvozovek?

Díky

Editoval idiox (17. 10. 2016 1:39)