Для чего это нужно
Часто приходится создавать самостоятельное поле или поле которое является частью MIGX, в котором необходимо указывать ID страницы для ссылки и т.п.
Вместо того что бы вручную искать в дереве ресурсов ID страницы и потом писать конструкцию в виде ссылки [[~123]] (а иногда контент-менеджеры могут вообще прописать ссылку вручную, что плохо) мы можем создать поле с быстрым поиском и автодополнением.
Пример
оздадим TV поле, например resource-list, назовём его “Список страниц” и будем выводить или использовать в других MIGX полях.
В параметрах ввода выбираем:
Тип ввода - список (одиночный выбор)
Возможные значения
@SELECT `pagetitle` AS `name`,`id` FROM `[[+PREFIX]]site_content` WHERE `published` = 1 AND `deleted` = 0
Мы делаем выборку опубликованных и не удалённых страниц, её можно дополнить, указав например только страницы с определённым шаблоном или родителем и т.д.
Включить автозавершение - Да
Выбрать только из списка - Да
Альтернативный вариант
@EVAL return $modx->runSnippet('pdoResources', array('parents' => 64, 'limit' => 0, 'tpl' => '@INLINE {$pagetitle}=={$id}', 'outputSeparator' => '||', 'where' => '{"parent":64}', 'sortby' => '{"menuindex":"ASC"}'));