Установка сниппета tagLinks для формирования списка ссылок для фильтрации документов по категориям.
Создаем TV-пареметр tags со значением Text и указываем все шаблоны, для которых он будет применяться.
Данный параметр будет содержать теги (или иначе категории), по которым мы будем фильтровать документы. Существует несколько вариантов добавления тегов.
1. Если все категории определены заранее
В этом случае стоит воспользоваться полем "Возможные значения", где перечислить все категории в таком виде:
Категория1||Категория2||Категория3 ...
В качестве "Визуального компонента" укажите "Delimited List" со значением ", ".
Помните, что MODX позволяет хранить эти данные в чанке либо в файле, которые подключаются @CHUNK tags либо @FILE assets/files/tags.txt
2. Если категории добавляются пользователями
В этом случае в "Возможных значениях" ничего не указываем, и для удобства пользователей подключаем виджет mm_widget_tags плагина ManagerManager.
На данной странице будет происходить фильтрация документов по заданным тегам. Фильтровать мы будем с помощью сниппета Ditto. В качестве псевдонима документа укажем main. В содержимом разместим примерно такой вызов Ditto:
[!Ditto? &id=`tags` &tagData=`tags` &tagDelimiter=`, ` &parents=`0` &depth=`5` &showInMenuOnly=`1` &display=`10` &tpl=`tplDoc` &paginate=`1` &dateSource=`pub_date` &sortBy=`pub_date` &dateFormat=`%d.%m.%Y` &hiddenFields=`tags`!]
<div class="pagination">[+tags_previous+] [+tags_pages+] [+tags_next+]</div>
где:
&tagData=`tags` &tagDelimiter=`, `
- обязательные параметры вызова&parents=`0`
- список ID ресурсов через запятую, в которых осуществляется поиск документов с тегами, в данном случае выбран корень сайта&depth=`5`
- глубина просмотра&showInMenuOnly=`1`
- показывать только документы у которых поставлен флаг «Показывать в меню»&display=`10`
- количество найденных документов на странице&tpl=`tplDoc`
- шаблон вывода найденного документа&paginate=`1`
- включаем разбиение по страницамУ вас вызов Ditto может иметь другие параметры и значения.
Там, где нам необходимо вывести список тегов, которым соответствует документ, помещаем вызов сниппета:
[[tagLinks? &id=`424` &value=`` &separator=`, ` &element=`span` &fap=`1` &path=`main` &label=` `]]
в шаблоне для Ditto вызов будет таким:
[[tagLinks? &id=`` &value=`` &separator=`, ` &element=`span` &fap=`1` &path=`main` &label=` `]]
где:
&tagData=`tags` &tagDelimiter=`, `
- обязательные параметры вызова&parents=`0`
- список ID ресурсов через запятую, в которых осуществляется поиск документов с тегами, в данном случае выбран корень сайта&id=`424`
- id документа, содержащего теги&value=``
- TV-параметр, в котором хранятся теги&separator=`, `
- разделитель между ссылками&element=`span`
- элемент, которым оборачиваем список ссылок&path=`main`
- путь к странице с фильтрацией по тегам