We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 36825
    • 29 Posts


    Большая просьба помочь с реализацией конструкции показанной внутри круга.

    Заранее благодарю за содействие
    С Уважением Александр Орёл
    about.me/stun
      • 36825
      • 29 Posts
      Подсчёт количества документов в контейнерах

      Используется сниппет CountChilds

      Сниппет подсчитывает количество документов и выводит его в пункты меню через шаблон строки пункта.

      Вариант сниппета, если нужно подсчитать только документы, игнорируя контейнеры.

      Например:

      Контейнер-1 (4)
      — Документ
      — Документ
      — Контейнер-2 (2)
      — — Документ
      — — Документ



      Код сниппета:
      <?php
      /**
      * Вызов сниппета из шаблона Wayfinder: <span>[[!CountChilds? &id=`[[+id]]`]]</span>
      *
      * http://community.modx-cms.ru/blog/questions/4612.html
      */
      $id=$modx->getOption('id',$scriptProperties,0);
      if ($id == 0) return 'Не задан id страницы';
      $depth = 10; //глубина вложенности
      $arr = $modx->getChildIds($id,$depth);//получили массив ids всех потомков(и контейнеров и документов)
      if (count($arr) == 0) return '';
      $c = $modx->newQuery('modResource');
      $c->where(array(
      'id:IN'=>$arr, //выбираем только детей
      'isfolder'=>0 //отсекаем контейнеры
      ));
      $c->limit = 0;
      $docs=$modx->getCollection('modResource',$c);//получили коллекцию детей-документов
      return count($docs);


      Вариант сниппета, если нужно подсчитать все ресурсы, включая контейнеры и документы.

      Например:

      Контейнер-1 (5)
      — Документ
      — Документ
      — Контейнер-2 (2)
      — — Документ
      — — Документ



      Код сниппета:
      <?php
      /**
      * Вызов сниппета из шаблона Wayfinder: <span>[[!CountChilds? &id=`[[+id]]`]]</span>
      *
      * Источник: http://community.modx-cms.ru/blog/questions/4612.html
      */
      $id=$modx->getOption('id',$scriptProperties,0);
      if ($id == 0) return 'Не задан id страницы';
      $depth=10; //глубина вложенности
      $criteria=array(
      'isfolder'=>0 //отсекаем контейнеры
      );
      $count = count($modx->getChildIds($id,$depth,$criteria));
      if ($count != 0) {
      return $count; //Если что-то найдено, то выводим количество
      } else {
      return 'Тут написать что-то, чтобы не красовался абсурдный ноль';
      }


      Источник: community.modx-cms.ru/blog/questions/4612.html