eventsCalendar2 ограничение глубины выборки

Здравствуйте! Есть ли возможнось ограничить глубину выборки при выводе результатов eventsCalendar2, чтобы он не выводил дочерние ресурсы? &depth не работает, да его и нет в списке параметров в документации.
Alexeivdn
05 октября 2017, 09:29
modx.pro
1 202
0

Комментарии: 8

Илья Уткин
05 октября 2017, 12:55
0
eventsCalendar2 может принимать любой список, который вы составите, например, с помощью pdoResources и передадите ему в качестве JSON.
    Alexeivdn
    05 октября 2017, 13:03
    0
    Спасибо, Илья! Буду разбираться.

      Alexeivdn
      07 октября 2017, 12:21
      0
      Илья, помогите еще с двумя моментами, пожалуйста — никак не могу разобраться.

      Вызов:

      [[!eventsCalendar2?
      &calendar_id=`calendar1`
      &parents=`5`
      &events=`[[$pdo-filter]]`
      &dateSource=`publishedon`
      &dateFormat=`%d %b %Y %H:%M`
      ]]

      Чанк pdo-filter:

      [[!pdoResources?
      &parents=`5`
      &limit=`0`
      &depth=`1`
      &dateSource=`publishedon`
      &select=`id,publishedon,pagetitle`
      &return=`json`
      ]]

      При такой комбинации eventsCalendar выдает ошибку «eventsCalendar2 error: Ошибка преобразования JSON строки в массив событий».

      Но сам по себе, такой вызов pdoResources, возвращает строку:

      [{«id»:«7»,«publishedon»:«1507365859»,«pagetitle»:«1»},{«id»:«8»,«publishedon»:«1507365840»,«pagetitle»:«2»}]

      и если ее подставить напрямую в чанк, то eventsCalendar ее принимает, но ничего не выводит. А если, вручную, поменять publishedon на «date», в формате «2017-10-07 01:05:00», то календарь все нормально выводит.

      Что я неправильно делаю и как можно преобразовать publishedon в нормальный формат при передаче в json?
        Alexeivdn
        08 октября 2017, 12:34
        0
        C «eventsCalendar2 error: Ошибка преобразования JSON строки в массив событий» разобрался — всего лишь восклицательный знак убрать надо было. А вот что делать с publishedon так и не могу понять.
          Илья Уткин
          08 октября 2017, 12:40
          0
          Возможно, поможет параметр prepareSnippet — пишете сниппет, который будет преобразовывать дату в нужный формат, и используете его.
            Alexeivdn
            08 октября 2017, 12:49
            0
            Спасибо! Буду разбираться. Т.е. простых путей, через json или tpl нет?
              Илья Уткин
              08 октября 2017, 12:51
              0
              ну через tpl можно, конечно, но тогда tpl надо писать в виде JSON. Какой из вариантов выбрать — решайте сами)
                Alexeivdn
                08 октября 2017, 12:57
                0
                Ок. Попробую через json. Сниппеты для меня темный лес — только начинаю изучать modx и php.
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      8