я думаю задача стоит не в том, чтобы пометить все нужные документы каким-нимть TV и сделать в дитто фильтр по этой переменной или указать всех нужных парентов и сделать depth = 1, а в том чтобы все получилось автоматически..
Вопрос не совсем понятен, у дитто есть параметр &parents=`ID документа из которого выводит новости` или &startID=``
В принципе у нужных мне документов в отличии от остальных есть параметр TV (но значение его разное).
я думаю задача стоит не в том, чтобы пометить все нужные документы каким-нимть TV и сделать в дитто фильтр по этой переменной или указать всех нужных парентов и сделать depth = 1, а в том чтобы все получилось автоматически..
здесь бы помог фильтр по level-у для документа, но я не нашел такое свойство - возможно самый легкий путь подредактировать код сниппета и добавить такое свойство
Попробуйте через систему расширений у дитто.
afizikov, спасибо. Код работает как надо, только я не очень понял как его к дитто подключить.
Создал снипет с этим кодом. Создал чанк из которого вызывается этот снипет. Проверил. Работает как надо.
Начал подключать к дитто &parents=`название чанка` и ничего не получается.
вот так попробуйте [[Ditto? &parents=`[[сниппет]]`]]
Quote from: Smiler at Apr 21, 2008, 03:28 PMПопробуйте через систему расширений у дитто.
afizikov, спасибо. Код работает как надо, только я не очень понял как его к дитто подключить.
Создал снипет с этим кодом. Создал чанк из которого вызывается этот снипет. Проверил. Работает как надо.
Начал подключать к дитто &parents=`название чанка` и ничего не получается.
Дело в том, что таким образом выводятся документы не только третьего уровня, но и второго, не являющиеся папками.
а чем [[Ditto? &filter=`isfolder, 0` &depth=`3`]] плохо?
можно написать малюсенький сниппет, отбирающий из таблицы id документов второго уровня и передать этот сниппет как параметр parents для Ditto.
Примерный код сниппета:
$query="SELECT id from modx_site_content where parent=10 and published=1 and isfolder=1";
$result=mysql_query($query)
or die ("Query failed");
while ($line = mysql_fetch_array($result)) {
$arr[]=$line[0];
}
$documents=implode(",",$arr);
return $documents;