Главная » Уроки » Уроки по Modx Evo » [Modx Evo] выводим кол-во документов в папке ChildCounter
[Modx Evo] выводим кол-во документов в папке ChildCounter
Создем сниппет с именем ChildCounter с таким содержанием:
<?php
$docid = isset($docid) ? intval($docid) : $modx->documentIdentifier;
$depth = isset($depth) ? intval($depth) : 0;
$isfolder = isset($isfolder) ? intval($isfolder): 0;
$tpl = isset($tpl) ? $tpl: -1;
$published = isset($published) ? intval($published): 1;
$davailable = $modx->getChildIds($docid, $depth);
if ($davailable){
$where = ($tpl > 0) ? 'template='.$tpl : 'isfolder='.$isfolder;
$dcount = $modx->getDocuments($davailable, $published, 0, 'id', $where);
return count($dcount);
}
return 0;
?>
- &dicId - ID папки из которой будем считывать документы
- &depth - глубина считывания документов
- &isfolder - Если 1 - вернёт количество папок, если 0 - количество документов, НЕ папок. По умолчанию стоит 0.
- &published - Если 0 - вернёт кол-во неопубликованных документов, если 1 - сколько опубликованных документов. По умолчанию 1.
- &tpl - если указан, то возвращает количество документов с шаблоном id которого равен &tpl
Вставляем в нужное место шаблона
[[ChildCounter? &docid=`40` &depth=`3` &tpl=`30` &published=`1` &isfolder=`0`] ]
вернет количество опубликованных документов с шаблоном 30 в контейнере с id равным 40 при глубине сканирования 3.
Спасибо SSDTyphon