Как вывести количество дочерних документов ресурса в MODX Revo
Добрый день, друзья!
Если вы хоть раз делали сайт на MODX, вам хорошо знакомо дополнение Wayfinder. С его помощью можно создавать меню разных уровней.
У меня это расширение входит в список MUST-HAVE. И все же иногда его функций недостаточно. Например, когда нужно, чтобы рядом с ссылкой на раздел выводилось количество дочерних ресурсов, как на этой картинке
В таком меню выводятся не только ссылки на разделы, но и число дочерних документов каждого ресурса. Это очень хорошее решение для каталогов или интернет-магазинов, где нужно показать количество товара в каждой категории. Давайте посмотрим, как это можно сделать на своем сайте.
Как вывести количество дочерних ресурсов
Устанавливаем Wayfinder. Для подсчета количества дочерних ресурсов создаем новый сниппет с именем getChildCount.
Код сниппета:
<?php $count = 0; $parent = isset($parent) ? (integer) $parent : 0; if ($parent > 0) { $criteria = array( 'parent' => $parent, 'deleted' => false, 'published' => true, ); $count = $modx->getCount('modResource', $criteria); } return (string) $count; ?>
Создаем новый чанк menu_li. Это будет шаблон вывода одного пункта меню:
<li [[+wf.classes]]> [[+wf.title]] <span>[[getChildCount? &parent=`[[+id]]`]]</span> </li>
Остается в нужном месте шаблона вызвать Wayfinder и указать шаблон пункта меню в параметре rowTpl:
[[Wayfinder? &startId=`0` &level=`1` &rowTpl=`menu_li`]]
Вот и все! Очень просто =) Надеюсь, эта шпаргалка вам пригодится. Если есть вопросы или дополнения, добро пожаловать в комментарии!