Кол-во дочерних ресурсов

Всем доброго дня!
Подскажите есть -ли возможность посчитать количество дочерних ресурсов НЕСКОЛЬКИХ родителей с помощью PdoTools/
Пробовал getChildCount
<?php
$count = 0;
$parent = $modx->getOption('parent', $scriptProperties, 0);
$query = $modx->newQuery('modResource', array('parent' => $parent, 'deleted' => 0, 'published' => 1));
$query->select(array('count'=>'count(id)'));
if ($query->prepare() && $query->stmt->execute()) {
    $res = $query->stmt->fetch(PDO::FETCH_ASSOC);
    $count = $res['count'];
}
return $count;
Но при указание нескольких parents — считает первый.

Не силен в PHP — Помомогите советом!

Спасибо!
Alexander
26 октября 2017, 06:56
modx.pro
2 367
0

Комментарии: 8

Илья Уткин
26 октября 2017, 10:08
0
Попробуй разбить строку parent по разделителю (запятой) в массив. И искать уже с помощью IN:

$parent = explode(',', $modx->getOption('parent', $scriptProperties, 0));
$query = $modx->newQuery('modResource', array('parent:IN' => $parent, 'deleted' => 0, 'published' => 1));
    Alexander
    26 октября 2017, 10:40
    0
    Спасибо! Делит первого родителя пополам и вторую половину передает дальше
    [[!getChildCount? &parent=`15`]]
    
    [[!getChildCount? &parent=`15,154`]]
      Роман
      04 марта 2020, 07:51
      0
      Получилось решить вопрос?
        Сергей Шлоков
        04 марта 2020, 08:36
        0
        А в чем проблема-то? Не понятно как это сделать базовыми методами MODX или SQL?
          Роман
          04 марта 2020, 08:38
          0
          Проблема в том, что считает только первого родителя.
            Сергей Шлоков
            04 марта 2020, 08:56
            0
            Как сделать на SQL написал выше Илья. На php через $modx->getChildIds() в цикле foreach.
    Alexander
    26 октября 2017, 10:41
    0
    второго не трогает
    <?php
    $count = 0;
    $parent = explode(',', $modx->getOption('parent', $scriptProperties, 0));
    $query = $modx->newQuery('modResource', array('parent:IN' => $parent, 'deleted' => 0, 'published' => 1));
    if ($parent > 0) {
        $criteria = array(
            'parent' => $parent,
            'deleted' => false,
            'published' => true,
        );
        $count = $modx->getCount('modResource', $criteria);
    }
    return (string) $count;
      Misha Bulic
      24 марта 2018, 12:31
      0
      Можно ли модифицировать этот сниппет так, чтобы считать дочерние с определённым параметром tv поля?
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        8