Задать вопрос
@dellakeram

Как в modx реализовать не сложный функционал API?

Привет,
Как в Modx revo реализовать api?
Нужно сделать вывод последних 4 ресурсов в родителе с TV полями и всеми прелестями в json.
Или вывод всех ресурсов (товаров) со всей инфой (title, tv, дата и тд) из родителя в понятный json типа
[
      {
         "title": "Тайтл",
         "tv_title": "Тайтл тв",
         "tv_img_1": "/image/1.jpg"
      },{
         "title": "Тайтл2",
         "tv_title": "Тайтл тв 2",
         "tv_img_1": "/image/2.jpg"
      }
]

PS: Я смог реализовать подобие напрямую из php файла с подключением к бд через этот файл. Но это не безопасно и это был костыль.
  • Вопрос задан
  • 1014 просмотров
Подписаться 2 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    1C-программист: расширенный курс
    18 месяцев
    Далее
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
  • Skillbox
    Профессия 1С-программист
    8 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
@dellakeram Автор вопроса
Создал ресурс с названием "api", формат json.
В контенте написал следующее:
[
   [[synacs_pdoResources?
       &parents=`25` // Из какого родителя будут браться ресурсы
       &limit=`4` // кол-во ресурсов
       &tpl=`api_test` // ссылка на чанк (об этом ниже)
       &includeTVs=`app_title, vk_link, instagram_link, google_plus__link, facebook_link` // Какие тв поля выводить
   ]]
]

Скопировал сниппет pdoResources, назвав его "synacs_pdoResources"
Изменил его
//В место этого
return $output;
//Сделал это
return json_encode($output);

Создал чанк с названием api_test.
В чанке следующее:
{"title":"[[+pagetitle]]","img":"[[+tv.img_1]]"}
Где title - тайтл ресурсов, img - tv параметр.
Вот вывод:
[
"{\"title\":\"9 \u043c\u0430\u044f\",\"img\":\"s_img\/news\/bd7e7ae0d30ee44784cb19c4921bb11e.jpg\"}\n{\"title\":\"\u0421 \u0434\u043d\u0435\u043c \u0442\u0440\u0443\u0434\u0430!\",\"img\":\"s_img\/news\/036e92f60687608f5f8f76db787bc54d.jpg\"}"
]

Всё работает. Но правильно ли это? или снова костыль замутил?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Краснодар
от 220 000 до 300 000 ₽
ITK academy Краснодар
от 75 000 ₽
DimaTech Ltd Краснодар
от 140 000 до 140 000 ₽