Сниппет getItemsCount

Опубликовано: 02 Окт 2014

Взято отсюда.

GetItemsCount - это простенький сниппет, который позволяет выводить количество дочерних элементов в контейнере. Его можно примерять в связке с такими сниппетами как Wayfinder, getResources, getProducts, pdoTools. Вызов данного сниппета как правило делаеться в шаблонах, где необходимо вывести количество дочерних элементов.

В начале нужно создать сниппет getItemsCount и вставить в содержимое следующий код:

$ids = $modx->getChildIds($input);
$count = 0;
if (!empty($ids)) {
    $count = $modx->getCount('modResource', array(
        'id:IN' => $ids
        ,'published' => 1
        ,'deleted' => 0
        ,'hidemenu' => 0
        ,'isfolder' => 0
    ));
}
return $count;

Для Wayfinder нужно создать чанк row_tpl, с вызовом сниппета getChildIds в виде фильтра вывода:

<li[ [+wf.id]][ [+wf.classes]]>
    <a href="[ [+wf.link]]" [ [+wf.attributes]]>[ [+wf.linktext]]</a> ([ [+id:getItemsCount]])
    [ [+wf.wrapper]]
</li>

Вызываем Wayfinder с необходимыми параметрами:

[ [!Wayfinder?
&startId=`2`
&level=`3`
&rowTpl=`row_tpl`
]]

Для getResources нам также следует создать чанк element_count, в котором аналогичным образом необходимо вызвать сниппет getItemsCount в виде фильтра вывода:

<li><a href="[ [~[ [+id]]]]">[ [+longtitle]]</a><span>([ [+id:getItemsCount]])</span></li>

Собственно вызов getResources:

<ul>
[ [!getResources?
&tpl=`element_count`
&depth=`0`
]]
</ul>

Комментарии (0)


Оставить комментарий




Разрешённые теги: <b><i><br>Добавить новый комментарий: