Перерыв большое количество сайтов я нашёл хорошее решение: http://www.belaychuk.ru/posts/modx-revolution-wayfinder-tv-filtration-with-getresources
Но для моей задачи – построения пары меню – он был избыточен, поэтому я его упростил. Ниже предлагаю работающий способ требующий минимальных действий:
- Создаём TV параметр (у меня был inLeftMenu - чекбокс)
- Создаём чанк со списком (leftMenuElements) с таким кодом:
[[!getResources?
&parents=`0`
&limit=`100`
&tvFilters=`inLeftMenu===1`
&tpl=`@INLINE [[+id]]`
&outputSeparator=`,`
&showHidden=`1`
]] - Наконец генерируем наше меню:
[[!Wayfinder?
&startId=`3`
&includeDocs=`[[$leftMenuElements]]`
&ignoreHidden=`1`
]]
Здесь startId это номер родительского ресурса для всех элементов меню. Чтобы это правильно работало вызов Wayfinder'а должен быть не кешируемый! Т.е. [[!Wayfinder]] вместо [[Wayfinder]]
Вот и всё! Теперь под каждое новое меню создаём свои чанки и TV и радуемся жизни!