fenom-template / fenom

Template Engine for PHP. Maintainers wanted!
Other
446 stars 108 forks source link

Не печатается JSON через шаблонизатор #123

Closed litvinenkow closed 9 years ago

litvinenkow commented 9 years ago

При этом ранее в другом месте всё работало.

Не работает ни так {json_encode($l->volume_arr)}, ни если передать вывод через уже объявленную переменную

Массив содержит в себе: {"20\u0442":{"id":0,"pallets":32},"16\u0442":{"id":1,"pallets":18},"12\u0442":{"id":2,"pallets":15},"7\u0442":{"id":3,"pallets":12},"5\u0442":{"id":4,"pallets":10},"3\u0442":{"id":5,"pallets":6},"1,5\u0442":{"id":6,"pallets":4}}

Выдаёт ошибку Fatal error: Uncaught exception 'Fenom\Error\CompileException' with message 'Unexpected token ':' in Runtime compile line 161, near '{"20\u0442":' <- there' in Runtime compile:161

maxisoft-git commented 9 years ago

Как бы и правильно, так как {} используется для определения функции шаблона, чтобы работало нужно иметь хотя бы пробел между разделителями, аналогично не будет работать такой код и в smarty. как вариант только помечать данный вывод чтобы шаблонизатор его не компилировал. По факту нужно использовать https://github.com/bzick/fenom/blob/master/docs/ru/tags/ignore.md

{ignore} {"20\u0442":{"id":0,"pallets":32},"16\u0442":{"id":1,"pallets":18},"12\u0442":{"id":2,"pallets":15},"7\u0442":{"id":3,"pallets":12},"5\u0442":{"id":4,"pallets":10},"3\u0442":{"id":5,"pallets":6},"1,5\u0442":{"id":6,"pallets":4}} {/ignore}

litvinenkow commented 9 years ago

он и не должен его компилировать, это же вывод знаков, он должен просто вернуться в шаблон а если я так сделаю как вы советуете получится, что переменная не выведется просто у меня проблема в том, что получается, что компилируется дважды, сначала контентная часть, а потом уже общий шаблон навешивается, вот как бы эту проблему решить с блоками я решил проблему посредством autoescape false видимо придётся извращаться раскодированием base64

bzick commented 9 years ago

какая версия Fenom?

bzick commented 9 years ago

Правильно я понял что шаблонизатор пытается выполнить то что вернул тег?