1
Шаблоны печати, smarty, json - не получается подружить...
Автор goodcolor, 28 окт. 2019 17:15
json smarty
Сообщений в теме: 7
#1
Отправлено 28 Октябрь 2019 - 17:15
Добрый день.
Пытаюсь в шаблон печати передать параметры в формате json.
Передаются и отображаются в формате json.
Но преобразовать эти параметры в массив функцией {$data|json_decode} не получается. Точнее получается string(0) "".
Кто-нибудь знает в чём может быть дело?
Может установленная версия smarty не поддерживает работу с json?
Пытаюсь в шаблон печати передать параметры в формате json.
Передаются и отображаются в формате json.
Но преобразовать эти параметры в массив функцией {$data|json_decode} не получается. Точнее получается string(0) "".
Кто-нибудь знает в чём может быть дело?
Может установленная версия smarty не поддерживает работу с json?
Компания "Хороший Цвет"
www.GoodColor.ru - поставки и производство самосветящихся товаров и материалов
www.GoodColor.ru - поставки и производство самосветящихся товаров и материалов
#2
Отправлено 29 Октябрь 2019 - 18:02
Возможно у вас в $data невалидный json? В переменной smarty именно. Не пробовали просто вывести $data и посмотреть исходный код страницы?
#3
Отправлено 29 Октябрь 2019 - 19:56
Проверял, $data выводил. Что в исходном коде, что на странице выводится строка '{"data1":"valueData1","data2":"valueData2"}'.
Компания "Хороший Цвет"
www.GoodColor.ru - поставки и производство самосветящихся товаров и материалов
www.GoodColor.ru - поставки и производство самосветящихся товаров и материалов
#4
Отправлено 30 Октябрь 2019 - 16:41
Проверил сам. Json_decode без аргументов создает объект, а не массив, который smarty видимо преобразует в пустую строку. Если вывести {$data|json_decode:1}, т.е. с параметром "преобразовать в ассоциативный массив", то уже выводит слово Array. Если задать к примеру {$data|json_decode:1|print_r:1}, то выведет Array ( [data1] => valueData1 [data2] => valueData2 ) для вашего примера, а значит все работает.
Хотя, и преобразование в объект тоже сработало, {$data|json_decode:1|print_r:1} вывело stdClass Object ( [data1] => valueData1 [data2] => valueData2 )
Хотя, и преобразование в объект тоже сработало, {$data|json_decode:1|print_r:1} вывело stdClass Object ( [data1] => valueData1 [data2] => valueData2 )
#5
Отправлено 30 Октябрь 2019 - 17:22
Один из самых простых вариантов содержимого моего шаблона печати в части smarty с json...
Результат: NULL
Поле 'Параметры' типа "Простой текст".
Более сложные варианты - создавать переменные в шаблоне. Тоже пробовал...
У вас как бы выглядела ситуация с использованием полей КБ по правилам КБ?
{{$Параметры}|json_decode:1|var_dump}
Результат: NULL
Поле 'Параметры' типа "Простой текст".
Более сложные варианты - создавать переменные в шаблоне. Тоже пробовал...
У вас как бы выглядела ситуация с использованием полей КБ по правилам КБ?
Сообщение отредактировал goodcolor: 30 Октябрь 2019 - 17:23
Компания "Хороший Цвет"
www.GoodColor.ru - поставки и производство самосветящихся товаров и материалов
www.GoodColor.ru - поставки и производство самосветящихся товаров и материалов
#6
Отправлено 30 Октябрь 2019 - 18:00
Если вы из поля выводите json, то там кавычки экранируются в html сущности, поэтому и null в итоге из-за невалидности.
#7
Отправлено 30 Октябрь 2019 - 18:15
Как быть в таком случае?
Компания "Хороший Цвет"
www.GoodColor.ru - поставки и производство самосветящихся товаров и материалов
www.GoodColor.ru - поставки и производство самосветящихся товаров и материалов
#8
Отправлено 30 Октябрь 2019 - 18:18
Вроде получилось, предварительно пропустив значение из поля через html_entity_decode в шаблоне.
Благодарю за подсказку.
Благодарю за подсказку.
Сообщение отредактировал goodcolor: 30 Октябрь 2019 - 18:18
Компания "Хороший Цвет"
www.GoodColor.ru - поставки и производство самосветящихся товаров и материалов
www.GoodColor.ru - поставки и производство самосветящихся товаров и материалов
Количество пользователей, читающих эту тему: 8
0 пользователей, 8 гостей, 0 анонимных