MODX. TV поле с выбором страницы

Оглавление

Часто приходится создавать самостоятельное поле или поле которое является частью 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"}'));