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