Кол-во дочерних ресурсов
Всем доброго дня!
Подскажите есть -ли возможность посчитать количество дочерних ресурсов НЕСКОЛЬКИХ родителей с помощью PdoTools/
Пробовал getChildCount
Не силен в PHP — Помомогите советом!
Спасибо!
Подскажите есть -ли возможность посчитать количество дочерних ресурсов НЕСКОЛЬКИХ родителей с помощью 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 — Помомогите советом!
Спасибо!
Комментарии: 8
Попробуй разбить строку parent по разделителю (запятой) в массив. И искать уже с помощью IN:
$parent = explode(',', $modx->getOption('parent', $scriptProperties, 0));
$query = $modx->newQuery('modResource', array('parent:IN' => $parent, 'deleted' => 0, 'published' => 1));
Спасибо! Делит первого родителя пополам и вторую половину передает дальше
[[!getChildCount? &parent=`15`]]
[[!getChildCount? &parent=`15,154`]]
Получилось решить вопрос?
А в чем проблема-то? Не понятно как это сделать базовыми методами MODX или SQL?
Проблема в том, что считает только первого родителя.
Как сделать на SQL написал выше Илья. На php через $modx->getChildIds() в цикле foreach.
второго не трогает
<?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;
Можно ли модифицировать этот сниппет так, чтобы считать дочерние с определённым параметром tv поля?
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.