UMIhelp

Разработка дополнительного функционала => Custom макросы => Тема начата: atach от 02 Апреля 2015, 19:38:22

Название: Вывод данных макроса в виде json
Отправлено: atach от 02 Апреля 2015, 19:38:22
Подскажите такой вопрос, есть кастомные макросы, которые делают выборку данных. В дальнейшем для другого сервиса мне надо из предоставить в JSON формате. На выводе стоит:
return json_encode($arr);

Если я обращаюсь к данному макросу по url (например http://site.ru/content/mymacros/), то он обрабатывается с дефолтным шаблоном дизайна. Как получить данные в json виде?

Сейчас делаю немножко глупым способом. Создал шаблон дизайна пустой (без дищайна) и обращаюсь к данным так: http://site.ru/content/mymacros/?template_id=14

P.S. Раньше делал оабработку через простой файл с подключенным include "standalone.php", но не устроило.
Название: Re:Вывод данных макроса в виде json
Отправлено: admin от 04 Апреля 2015, 14:16:01
для json формата y umi есть специальный метод, который позволяют получить результат выполнения макроса в json формате. Для этого достаточно вызвать макрос добавив ему окончание .json

Например:
Вы знаете, что при заходе в корзину вы попадаете на страницу /emarket/cart/ , которая выполняет одноименный макрос %emarket cart()% (http://dev.docs.umi-cms.ru/spravochnik_makrosov_umicms/internetmagazin/emarket_cart/). Для вывода данного макроса без дизайна, достаточно вызвать его через юмивский протокол udata:// (http://dev.docs.umi-cms.ru/shablony_i_makrosy/xslt-shablonizator_umi_cms/makrosy_protokol_udata/).

url страницы: http://site.ru/emarket/cart/
url макроса: http://site.ru/udata://emarket/cart/
url макроса в json формате: http://site.ru/udata://emarket/cart.json
Название: Re:Вывод данных макроса в виде json
Отправлено: atach от 12 Апреля 2015, 11:28:37
Большое спасибо!
Только вот почему при выполнении кастомных макросов mysite/content/mymacros/.json,
основные данные DATA всегда идут в xml тегах типа:

"data": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<udata xmlns:xlink=\"http:\/\/www.w3.org\/TR\/xlink\" module=\"content\" method=\"getComplectItems\" generation-time=\"0.000624\">...и тут уже даннвн ...<\/udata>\n
Название: Re:Вывод данных макроса в виде json
Отправлено: atach от 12 Апреля 2015, 12:13:53
Ошибку понял, обращаться надо вот так походу:
mysite/udata://content/mymacros.json
Название: Re:Вывод данных макроса в виде json
Отправлено: admin от 13 Апреля 2015, 21:15:21
Ошибку понял, обращаться надо вот так походу:
mysite/udata://content/mymacros.json

именно