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'); Собственно, всё.

Ого круто, даже не подумал о таком решении) Таким образом можно любую динамическую информацию совать в ТВ)

Именно так :) Это уже не говоря о том, что можно вообще свои собственные TV-шки создавать. Когда-нибудь доберусь и напишу про это статью.

Очень жду подобную статью.)

Вместо @EVAL можно использовать @SELECT @SELECT pagetitle,id FROM modx_site_content WHERE parent=[[+id]]

Засчитано.

разобрался