Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”

0 Пользователей и 1 Гость просматривают эту тему.

*

atach

  • ***
  • 163
  • +6/-0
    • Просмотр профиля
Вывод данных макроса в виде json
« : 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", но не устроило.

*

admin

  • *****
  • 2419
  • +172/-1
    • Просмотр профиля
Re:Вывод данных макроса в виде json
« Ответ #1 : 04 Апреля 2015, 14:16:01 »
для json формата y umi есть специальный метод, который позволяют получить результат выполнения макроса в json формате. Для этого достаточно вызвать макрос добавив ему окончание .json

Например:
Вы знаете, что при заходе в корзину вы попадаете на страницу /emarket/cart/ , которая выполняет одноименный макрос %emarket cart()%. Для вывода данного макроса без дизайна, достаточно вызвать его через юмивский протокол udata://.

url страницы: http://site.ru/emarket/cart/
url макроса: http://site.ru/udata://emarket/cart/
url макроса в json формате: http://site.ru/udata://emarket/cart.json

*

atach

  • ***
  • 163
  • +6/-0
    • Просмотр профиля
Re:Вывод данных макроса в виде json
« Ответ #2 : 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

*

atach

  • ***
  • 163
  • +6/-0
    • Просмотр профиля
Re:Вывод данных макроса в виде json
« Ответ #3 : 12 Апреля 2015, 12:13:53 »
Ошибку понял, обращаться надо вот так походу:
mysite/udata://content/mymacros.json

*

admin

  • *****
  • 2419
  • +172/-1
    • Просмотр профиля
Re:Вывод данных макроса в виде json
« Ответ #4 : 13 Апреля 2015, 21:15:21 »
Ошибку понял, обращаться надо вот так походу:
mysite/udata://content/mymacros.json

именно