Как и обещал, скажу пару слов о сниппете.
Часто приходится решать задачу категорирования различных данных.
Проще всего сделать для этой цели TV-парметр, которым будет выбираться одна или несколько категорий некоторого документа modx.
Очень удобно в данном случае категории задавать как документы modx, входящие в папку, допустим, "Категории" и имеющими нужный заголовок. Эта папка не показывается в меню, и, наверное, может быть вообще неопубликованна.
Далее, во всех руководствах по modx следует рассказ как заполнить поле «Возможные значения TV» с помощью @SELECT и прямого запроса к таблице, в которой хранятся документы modx: modx_site_content.
Зачем такие сложности? Пишем в этом поле @EVAL return $modx->runSnippet("tvsLinks",array(’doc’=>4,’depth’=>0,’folder’=>0)) (остальные параметры можно посмотреть в коде, там их не много) И, вуаля, TV заполняется документами так, как вы и хотели.
Единственное, что пришлось сделать, это переопределить разделитель параметром &delim, который, по-умолчанию, почему-то установлен в «__», зачем, мне не понятно. Rariteth, прокомментируй, пожалуйста?
Потом, список выбранных опций можно вывести на странице с помощью этого же сниппета, только в сочетании с параметром &tv. Есть поддержка шаблонов.
Главное достоинство: не нужно ничего лишнего писать руками — все copy&paste.
Из аналогов:
Quill и
tvExplorer