[РЕШЕНО] Вывести количество отфильтрованных документов

Доброго времени всем!
Как вывести только количество (цифрой) документов, которые отфильтрованы по TV параметру?
То есть имеется конструкция pdoResources с определенным фильтром. Вывести могу любой параметр, а надо именно количество, которое получилось в результате фильтрации.
Спасибо за любое решение!
Михаил Боровов
25 апреля 2019, 00:12
modx.pro
1 227
0

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

Aborrol
25 апреля 2019, 00:29
0
Если я правильно понял вопрос, то
в вызов pdoResources добавить
&setTotal=`1`
&totalVar=`total`
и выводить плейсхолдером [[+total]]
    Михаил Боровов
    25 апреля 2019, 00:42
    0
    Уважаемый, Aborrol.

    Попробую подробнее объяснить ситуацию:
    Вывод осуществляется по годам блоками с помощью конструкции:
    [[pdoResources?
                                &parents=`11`
                                &depth=`0`
                                &tpl=`convoy_item`
                                &includeTVs=`date_start,date_end`
                                &prepareTVs=`date_start`
                                &where=`{"date_start:>=":"1941-01-01","date_start:<=":"1941-12-31"}`
                                &includeContent=`1`
                                &sortby=`date_start`
                                &limit=`0`
                                &sortdir=`ASC`
                            ]]
    чанк convoy_item:
    <div>
            <h2><a href="[[~[[+id]]]]">[[+pagetitle]]</a></h2>
            <p>[[+tv.date_start:date=`%d.%m.%Y`]] - [[+tv.date_end:date=`%d.%m.%Y`]]</p>
        </div>
    Хочу добавить в чанк вывод количества подходящих, отфильтрованных по ТВ-параметру (совпадающим с заголовком) ресурсов.

    Где нужно ставить условие: в первичном выводе или в непосредственно в чанке?
      Михаил Боровов
      25 апреля 2019, 14:52
      0
      Благодаря Aborrol смог соорудить такую конструкцию в чанке convoy_item:

      <p>Транспортных: 
          [[pdoResources?
              &parents=`3`
              &depth=`0`
              &tpl=`ship_item2`
              &includeTVs=`images,type_ship,convoy`
              &includeContent=`1`
              &limit=`0`
              &sortdir=`ASC`
              &setTotal=`1`
              &totalVar=`total`
              &tvFilters=`type_ship==%Грузовое судно%,convoy==%[[+id]]%`
          ]]
         [[+total]] </p>
      Вроде, цель достигнута, но немного напрягает то, что использую пустой чанк &tpl=`ship_item2`
        Aborrol
        25 апреля 2019, 17:26
        0
        Если беспокоит чанк выведи
        &tpl=`@INLINE `
        В идеале конечно все же писать свой запрос в БД в своём сниппете, если количество записей достаточно большое, это будет на порядок быстрее.
          Михаил Боровов
          29 апреля 2019, 18:59
          0
          Сделал
          &tpl=`@INLINE `
          Меня это больше устроит. ))

          Новый вопрос:
          При фильтре по ID документа
          &tvFilters=`type_ship==%Грузовое судно%,convoy==%[[+id]]%`
          Он выводит все похожие. Например, если ID=12, то в списке выведутся и 120 и 112 и т.д.
          мне надо четкое соответствие — подскажете как это реализовать?

          Понятно, что дело в %%, но убирая их вообще ничего не выводится. Уже голову сломал (((
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      5