Сниппет tagLinks предназначен для формирования списка ссылок для фильтрации документов по категориям.

Параметры

Формат: id документа
Значение по умолчанию: Id текущего документа
Примечание: При использовании в шаблоне Ditto &id=``
Пример:
&id=``
Формат: TV-параметр
Значение по умолчанию: нет
Примечание:
Пример:
&tv=``
Формат:
Значение по умолчанию:
Примечание:
Пример:
&value=``
Формат: строка
Значение по умолчанию: ,
Примечание:
Пример:
&delimeter=`, `
Формат: 0 | 1
Значение по умолчанию: 0
Примечание:
Пример:
&caseSensitive=`1`
Формат:
Значение по умолчанию: Categories:
Примечание:
Пример:
&label=`Категории:`
Формат:
Значение по умолчанию: пусто
Примечание:
Пример:
&separator=` | `
Формат: div | span | p
Значение по умолчанию: div
Примечание:
Пример:
&element=`span`
Формат:
Значение по умолчанию: taglinks
Примечание:
Пример:
&style=`links`
Формат: a | ul | ol
Значение по умолчанию:
Примечание:
Пример:
&format=``
Формат: 0 | 1
Значение по умолчанию: 1
Примечание:
Пример:
&newline=`0`
Формат:
Значение по умолчанию:
Примечание: Если путь выглядит так: yoursite.url/blog/categories/, то в качестве значения укажите &path=`blog/categories`. Альтернативный вариант - указать id документа и он будет преобразован в путь автоматически.
Пример:
&path=``
Формат:
Значение по умолчанию:
Примечание: Необходим, если сниппет Ditto вызывается с параметром &id
Пример:
&idDitto=``

Установка

Создаем TV-параметр tags

Создаем 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

Там, где нам необходимо вывести список тегов, которым соответствует документ, помещаем вызов сниппета:

[[tagLinks? &id=`[*id*]` &value=`[*tags*]` &separator=`, ` &element=`span` &fap=`1` &path=`main` &label=` `]]

в шаблоне для Ditto вызов будет таким:

[[tagLinks? &id=`[+id+]` &value=`[+tags+]` &separator=`, ` &element=`span` &fap=`1` &path=`main` &label=` `]]

где:

  • &tagData=`tags` &tagDelimiter=`, ` - обязательные параметры вызова
  • &parents=`0` - список ID ресурсов через запятую, в которых осуществляется поиск документов с тегами, в данном случае выбран корень сайта
  • &id=`[*id*]`- id документа, содержащего теги
  • &value=`[+tags+]` - TV-параметр, в котором хранятся теги
  • &separator=`, ` - разделитель между ссылками
  • &element=`span` - элемент, которым оборачиваем список ссылок
  • &path=`main` - путь к странице с фильтрацией по тегам

Поделитесь ссылкой

Статистика

Яндекс цитирования
© 2011 - 2023 Школа MODX
Напишите нам в Telegram