кто может подсказать сниппет для того, чтобы определять дочерние документы и вывести именно их из подкаталога, при этом не выводить запись о том, что "Записей не найдено".
Пример такой:
Каталог - основной
--Автотранспорт
-----Ремонт и обслуживание
*****Документ 1
*****Документ 2
-----Логистика
*****Документ 1
*****Документ 2
И так далее, и вывести именно документы а не папки, я делал путем нескольких вызовов дитто, но это очень не удобно и не красиво, и если в папках ничего нет, то он выводить, что записей нет, при этом абсолютно везде если нет документов в разделах.
Подскажите с как сделать, в PHP не бумбум, вчера всю ночь сидел пытался написать подобное, мозгов не хватает
Зачем делать несколько вызовов Ditto? Достаточно одного вызова с параметром parents, в котором перечислены ID папок, из которых надо выводить документы.
дело в том, что эти папки могут дополнятся, и каждый раз дописывать в дито ID это бред!
Тогда сделайте в parents вызов сниппета, который вернет список id-шников через запятую (своим кодом или ditto, но лучше своим, конечно)
Вообще, видимо речь идет об использовании вложенного Ditto - в шаблоне внешнего дитто делаем вызов внутреннего со всеми нужными параметрами.
Для пустых документов смотреть параметр
noResults Text or chunk to display when there are no results
Читать документацию:
http://ditto.modxcms.com/files/snippet-ditto-php.html (и вокруг)
Удачи
ps. Вложенный вызов Ditto не оптимален и при большом количестве элементов без знаний PHP, пожалуй, придется туговато..
Можно че-то подобное сделать:
<?php
$output = '';
$mainpage = 2;
$depth = 2;
$where = array(
'parent:IN' => $modx->getChildIds($mainpage,$depth),
'deleted:=' => 0,
'hidemenu:=' => 0,
'published:=' => 1,
'isfolder:=' => 0
);
$c = $modx->newQuery('modResource');
$c->where($where);
$c->sortby('`modResource`.`id`','DESC');
$resources = $modx->getCollection('modResource',$c);
foreach ($resources as $resource) {
$output.= $modx->getChunk('MyArticles', array(
'title' => $resource->get('pagetitle'),
'desc'=> $resource->get('content'),
'link'=> $modx->makeUrl($resource->get('id'))
// ....
));
}
return $output;
?>
$mainpage = 2; // Родительская папка для всех элементов
$depth = 2; // Максимальный уровень для выборки дочерних id
Таким образом мы получим все вложенные документы НЕпапки, у которых родители $modx->getChildIds($mainpage,$depth)
Возможно все, но шансы астрономически малы
Quote from: Mangust at Oct 05, 2010, 06:41 AM
Можно че-то подобное сделать:
Сначала поинтересовались бы используемой версией MODx...
Quote from: AKots at Oct 05, 2010, 07:11 AM
Сначала поинтересовались бы используемой версией MODx...
Виноват

Какой вопрос, такой ответ. :Р
Возможно все, но шансы астрономически малы
я бы может быть сам и придумал бы что то. но дело в том, что нет нормальной литературы по MODX, вот например от куда взялось modResource?