TV-поле выпадающий список с привязкой к текущему документу.
Топик пишется в ответ на поднятую тему здесь. Кратко задача: при редактировании документа TV-поле-список должен формироваться из списка дочерних документов (по parent = id текущего документа). Так как стандартное поле «Список ресурсов» не годится для этого (в нем это не предусмотрено), мы будем создавать свое собственное TV-поле. Для этого нам понадобится написать сниппет, который будет формировать список документов для селекта. Назовем его tv_resources_list. Вот его код: <?php $output = '';
$data = array( "Выберите из списка==" );
if($parent = $modx->resource->id){ $q = $modx->newQuery('modResource');
$q->where(array(
"parent" => $parent,
));
$q->select(array(
"modResource.id",
"modResource.pagetitle",
));
$s = $q->prepare();
$s->execute();
$modx->log(1, $q->toSQL());
while($row = $s->fetch(PDO::FETCH_ASSOC)){
$data[] = "{$row['pagetitle']}=={$row['id']}";
}
}
$output = implode("||", $data);
return $output; После этого создаем новое TV-поле с типом Список, а в поле Возможные значения прописываем @EVAL return $modx->runSnippet('tv_resources_list'); Собственно, всё.