We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 1251 ☆ A M B ☆
    • 45 Posts
    Wayfinder делает те же запросы к базе, так что вариантов не много на самом то деле. Ускорить можно только написав свой уникальный sql-запрос для выбора количества вложенных элементов и обработав его в своем снипете.
      Alroniks experts
      MODX Ambassador | MODX Professional

      alroniks.com | [email protected] | +375 33 638 10 92 (Belarus)
      Facebook | Twitter | VK.com
    • discuss.answer
      • 31246 ☆ A M B ☆
      • 428 Posts
      Quote from: ev_trifonov at Jan 18, 2012, 10:34 AM
      Например:
      Категория
      --Раздел 1 (10)
      --Раздел 2 (8)
      Писал, ещё раз напишу (может сильно мелким почерком пишу). Для того. чтобы вывести ваш пример, нужно использовать Wayfinder. Пример:
      [[!Wayfinder? &startId=`5` &rowTpl=`menu-count`]]
      Чтобы заставить Wayfinder отображать в меню только ресурсы контейнеры тогда
      [[!Wayfinder? &startId=`5` &rowTpl=`menu-count` &where=`{"isfolder":1}]]

      чанк menu-count
      <a href="[[+wf.link]]" title="[[+wf.title]]">[[+wf.linktext]] [[+wf.id]]</a>([[+wf.subitemcount]])

      Если именно через getResources - то нужно дописывать, т.е. создайте копию и добавьте вывод количества дочерных ресурсов
        Valentin Rasulov - Industrial design (Hobbies - Web Development)
        Development not standard projects on CMF MODx Revolution.
        Small sample of extensions
        • 31246 ☆ A M B ☆
        • 428 Posts
        Если всё-же нужно через getResources вывести (может и такое быть), то решение такое.
        Сделайте копию сниппета getResources и дайте название getResourcesCount (чтобы при обновлении сниппета не стереть наш код)
        теперь примерно со строки 428, код
        $odd = ($idx & 1);
            $properties = array_merge(
                $scriptProperties
                ,array(
                    'idx' => $idx
                    ,'first' => $first
                    ,'last' => $last
                )
                ,$includeContent ? $resource->toArray() : $resource->get($fields)
                ,$tvs
            );

        заменим на
        //add count children
          $depthchildr = isset($depthchildr) ? (integer) $depthchildr : 10;
          $countchildr = count($modx->getTree($resource->id,$depthchildr));
            $odd = ($idx & 1);
            $properties = array_merge(
                $scriptProperties
                ,array(
                    'idx' => $idx
                    ,'first' => $first
                    ,'last' => $last
        	  ,'countchildr' => $countchildr
                )
                ,$includeContent ? $resource->toArray() : $resource->get($fields)
                ,$tvs
            );

        Вызов такой-же как getResources, только пишем getResourcesCount, по умолчанию глубина подпапок, которые он считает 10 уровней, можно в вызове сниппета изменить, добавив параметр
        &depthchildr=`1`
        - где один, это глубина дерева.
        Для того, чтобы вывести в чанке, добавляем плейсхолдер
        [[+countchildr]]
        .
          Valentin Rasulov - Industrial design (Hobbies - Web Development)
          Development not standard projects on CMF MODx Revolution.
          Small sample of extensions
          • 38368
          • 8 Posts
          Quote from: valikras at Feb 02, 2012, 04:19 AM
          Quote from: ev_trifonov at Jan 18, 2012, 10:34 AM
          Например:
          Категория
          --Раздел 1 (10)
          --Раздел 2 (8)
          Писал, ещё раз напишу (может сильно мелким почерком пишу). Для того. чтобы вывести ваш пример, нужно использовать Wayfinder. Пример:
          [[!Wayfinder? &startId=`5` &rowTpl=`menu-count`]]
          Чтобы заставить Wayfinder отображать в меню только ресурсы контейнеры тогда
          [[!Wayfinder? &startId=`5` &rowTpl=`menu-count` &where=`{"isfolder":1}]]

          чанк menu-count
          <a href="[[+wf.link]]" title="[[+wf.title]]">[[+wf.linktext]] [[+wf.id]]</a>([[+wf.subitemcount]])

          Если именно через getResources - то нужно дописывать, т.е. создайте копию и добавьте вывод количества дочерных ресурсов

          Вот именно так, через wayfinder я и сделал.