Вывести все ресурсы родителя - родителя
Здравствуйте, подскажите как вывести (id) всех ресурсов родителя-родителя через api modx.
Есть структура:
«Категория» — «подкатегории» — «ресурсы»
Как вывести все ресурсы (id) из «Категории» (т.е. не все подкатегории, а именно все ресурсы подкатегорий одной категории), с помощью api.
Пробую так
Переделал
Есть структура:
«Категория» — «подкатегории» — «ресурсы»
Как вывести все ресурсы (id) из «Категории» (т.е. не все подкатегории, а именно все ресурсы подкатегорий одной категории), с помощью api.
Пробую так
if(!$docs = $modx->getCollection('modResource', array(
'parent' => $idkategor,
'published' => 1,
'deleted' => 0
))){return;}
foreach($docs as $doc){
$id = $doc->get('id');
echo $id.",";
}
И естественно получаю id всех подкатегорий. Есть ли простой способ, направите на решение.Переделал
if(!$docs = $modx->getCollection('modResource', array(
'parent' => $idkategor,
'published' => 1,
'deleted' => 0
))){return;}
foreach($docs as $doc){
$id = $doc->get('id');
$docs1 = $modx->getCollection('modResource', array(
'parent' => $id,
'published' => 1,
'deleted' => 0
));
foreach($docs1 as $doc1){
$id1 = $doc1->get('id');
$idall=$id1.",".$idall;
}
}
echo $idall;
Все получилось, но может быть есть более красивое и быстрое решение Комментарии: 5
Как вариант
$parentId= $modx->getParentIds($parent, 1);
$childIds = $modx->getChildIds($parentId[0], 1);
$result = array();
$q = $modx->newQuery('modResource', array('parent:IN' => $childIds));
$q->select('id');
if ($q->prepare() && $q->stmt->execute()) {
while ($row = $q->stmt->fetch(PDO::FETCH_ASSOC)) {
$result[] = $row['id'];
}
}
print '<pre>';
print_r($result);
print '</pre>';
Вызов сниппета[[mySnippet? &parent=`[[*parent]]`]]
Спасибо, попробую
Подскажите, а как в выборку добавить нужные TV поля?
Спасибо! Воспользовался этой статьей.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.