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

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