MODX. Wayfinder, компонент для создания меню
Отредактировано: 16 Октября 2019
Wayfinder — компонент для создания меню или списка ссылок. Существует как для MODX evo так и для revo.
Параметры
&config — Имя внешнего php файла с настройками меню
Значение по умолчанию:
default
Примечание: В этом файле находятся шаблоны и параметры для отображения меню. Файл конфигурации должен иметь название filename.config.php. Примеры расположены в папке:
/assets/snippets/wayfinder/configs/
Пример:
&config=`breadcrumb`
&debug — Режим отладки
Значение по умолчанию: 0
Примечание: Установить режим отладки для диагностики.
Пример:
&debug=`1`
&displayStart — Показать начальную папку, указанную в startId
Значение по умолчанию: 0
Примечание: Если &displayStart=1 заставит Wayfinder вывести ссылку на документ, используемый в качестве &startId, используя шаблон &startItemTpl. Параметр работает, если только &startId не равен нулю.
Пример:
&displayStart=`1`
&excludeDocs — Исключаемые документы
Значение по умолчанию: нет
Примечание: список любых документов, разделенный запятыми
Пример:
&excludeDocs=`6,7,8`
&fullLink — Вывести полный URL
Значение по умолчанию: 0
Пример:
&fullLink=`1`
&hereId — Id документа, текущего для генерируемого меню.
Примечание: Нужно указывать только если скрипт сам его неверно определяет, например при выводе меню из чанка другого сниппета.
Пример:
&hereId=``
&hideSubMenus — Скрывать подменю и выводить для активного пункта
Значение по умолчанию: 0
Пример:
&hideSubMenus=`1`
&ignoreHidden — Выводить документы не отмеченные для показа в меню
Значение по умолчанию: 0
Пример:
&ignoreHidden=`1`
&includeDocs — Документы, обязательные для вывода
Значение по умолчанию: нет
Пример:
&includeDocs=`5,6,7`
&level — Количество уровней в меню
Значение по умолчанию: 0
Примечание: 0 — показывать все уровни
Пример:
&level=`3`
&limit — Максимальное число пунктов меню
Значение по умолчанию: 0
Примечание: 0 — без ограничения
Пример:
&limit=`5`
&ph — Вывод результата в плейсхолдер
Значение по умолчанию: нет
Примечание: Весь код результата будет сохранен в переменную, значение которой можно вставить в страницу при помощи плейсхолдера с именем переменной.
Пример:
&ph=`wf_menu`
&removeNewLines — Удалять символ переноса в результате
Значение по умолчанию: 0
Примечание: Убирать символ переноса строки при выводе. т. е. весь результирующий код будет в виде одной строки.
Пример:
&removeNewLines=`1`
&rowIdPrefix — Добавлять префикс к id для каждой ссылки
Примечание: Добавлять префикс к идентификатору (id) для каждого элемента (id складывается из значения rowIdPrefix + docId)
Пример:
&rowIdPrefix=``
&showSubDocCount — Выводить количество документов в плейсхолдер wf.subitemcount
Значение по умолчанию: 0
Пример:
&showSubDocCount=`1`
&sortBy — Параметр используемый для сортировки
Значение по умолчанию: menuindex
Примечание: id, menutitle, pagetitle, introtext, menuindex, published, hidemenu, parent, isfolder, description, alias, longtitle, type, template, random
Пример:
&sortBy=`pagetitle`
&sortOrder — Порядок сортировки документов
Значение по умолчанию: ASC
Примечание: ASC — по возрастанию | DESC — по убыванию
Пример:
&sortOrder=`DESC`
&startId — Источник документов для меню
Значение по умолчанию: текущий документ
Примечание: Любой номер (ID) документа— контейнера.
Пример:
&startId=`0`
&textOfLinks — Параметр для названия ссылки
Значение по умолчанию: menutitle
Пример:
&textOfLinks=`longtitle`
&titleOfLinks — Параметр для title ссылки
Значение по умолчанию: pagetitle
Пример:
&titleOfLinks=`longtitle`
&useWeblinkUrl — Вывод ссылки в плейсхолдер wf.link
Значение по умолчанию: 0
Пример:
&useWeblinkUrl=`1`
&where — Дополнительные условия запроса в БД (v 2.0.2)
Примечание: Соответствует where в MySQL
Пример:
&where=`isfolder = 1`
Шаблоны
&activeParentRowTpl — Шаблон родителей текущего пункта меню
Значение по умолчанию: нет
Примечание: Возможные плэйсхолдеры:
[[+wf.classes]] — место для указания используемого CSS-класса (включает class=" ")
[[+wf.classnames]] — содержит только название CSS-класса (не включает class=" ")
[[+wf.link]] — адрес (href) для ссылки
[[+wf.title]] — текст для title ссылки
[[+wf.linktext]] — текст названия ссылки
[[+wf.wrapper]] — место для вывода подменю
[[+wf.id]] — вывод уникального идентификатора (id)
[[+wf.attributes]] — вывод дополнительных атрибутов ссылки
[[+wf.docid]] — идентификатор документа для текущего элемента
[[+wf.subitemcount]] — количество элементов в папке
[[+wf.description]] — выводит значения поля описания
[[+wf.introtext]] — выводит значения поля интротекста
Пример шаблона:
<li[[+wf.classes]]><a href="[[+wf.link]]" title="[[+wf.title]]">[[+wf.linktext]]</a>[[+wf.wrapper]]</li>
Пример:
&activeParentRowTpl=`activeParentRowTpl`
&categoryFoldersTpl — Шаблон вывода категории
Значение по умолчанию: нет
Примечание: Категория определяется установкой шаблона
blank
или атрибутом ссылки rel="category"
.Возможные плэйсхолдеры:
[[+wf.classes]] — место для указания используемого CSS-класса (включает class=" ")
[[+wf.classnames]] — содержит только название CSS-класса (не включает class=" ")
[[+wf.link]] — адрес (href) для ссылки
[[+wf.title]] — текст для title ссылки
[[+wf.linktext]] — текст названия ссылки
[[+wf.wrapper]] — место для вывода подменю
[[+wf.id]] — вывод уникального идентификатора (id)
[[+wf.attributes]] — вывод дополнительных атрибутов ссылки
[[+wf.docid]] — идентификатор документа для текущего элемента
[[+wf.subitemcount]] — количество элементов в папке
[[+wf.description]] — выводит значения поля описания
[[+wf.introtext]] — выводит значения поля интротекста
Пример шаблона:
<li[[+wf.classes]]><a href="[[+wf.link]]" title="[[+wf.title]]">[[+wf.linktext]]</a>[[+wf.wrapper]]</li>
Пример:
&categoryFoldersTpl=`categoryFoldersTpl`
&cssTpl — Имя чанка содержащего CSS
Значение по умолчанию: нет
Пример:
&cssTpl=`cssTpl`
&hereTpl — Шаблон текущего пункта
Значение по умолчанию: нет
Примечание: Возможные плэйсхолдеры:
[[+wf.classes]] — место для указания используемого CSS-класса (включает class=" ")
[[+wf.classnames]] — содержит только название CSS-класса (не включает class=" ")
[[+wf.link]] — адрес (href) для ссылки
[[+wf.title]] — текст для title ссылки
[[+wf.linktext]] — текст названия ссылки
[[+wf.wrapper]] — место для вывода подменю
[[+wf.id]] — вывод уникального идентификатора (id)
[[+wf.attributes]] — вывод дополнительных атрибутов ссылки
[[+wf.docid]] — идентификатор документа для текущего элемента
[[+wf.subitemcount]] — количество элементов в папке
[[+wf.description]] — выводит значения поля описания
[[+wf.introtext]] — выводит значения поля интротекста
Пример шаблона:
<li[[+wf.classes]]><span>[[+wf.linktext]]</span>[[+wf.wrapper]]</li>
Пример:
&hereTpl=`hereTpl`
&innerHereTpl — Шаблон текущего пункта подменю
Значение по умолчанию: нет
Примечание: Возможные плэйсхолдеры:
[[+wf.classes]] — место для указания используемого CSS-класса (включает class=" ")
[[+wf.classnames]] — содержит только название CSS-класса (не включает class=" ")
[[+wf.link]] — адрес (href) для ссылки
[[+wf.title]] — текст для title ссылки
[[+wf.linktext]] — текст названия ссылки
[[+wf.wrapper]] — место для вывода подменю
[[+wf.id]] — вывод уникального идентификатора (id)
[[+wf.attributes]] — вывод дополнительных атрибутов ссылки
[[+wf.docid]] — идентификатор документа для текущего элемента
[[+wf.subitemcount]] — количество элементов в папке
[[+wf.description]] — выводит значения поля описания
[[+wf.introtext]] — выводит значения поля интротекста
Пример шаблона:
<li[[+wf.classes]]><span>[[+wf.linktext]]</span>[[+wf.wrapper]]</li>
Пример:
&innerHereTpl=`innerHereTpl`
&innerRowTpl — Шаблон для пункта подменю
Значение по умолчанию: нет
Примечание: Возможные плэйсхолдеры:
[[+wf.classes]] — место для указания используемого CSS-класса (включает class=" ")
[[+wf.classnames]] — содержит только название CSS-класса (не включает class=" ")
[[+wf.link]] — адрес (href) для ссылки
[[+wf.title]] — текст для title ссылки
[[+wf.linktext]] — текст названия ссылки
[[+wf.wrapper]] — место для вывода подменю
[[+wf.id]] — вывод уникального идентификатора (id)
[[+wf.attributes]] — вывод дополнительных атрибутов ссылки
[[+wf.docid]] — идентификатор документа для текущего элемента
[[+wf.subitemcount]] — количество элементов в папке
[[+wf.description]] — выводит значения поля описания
[[+wf.introtext]] — выводит значения поля интротекста
Пример шаблона:
<li[[+wf.classes]]><a href="[[+wf.link]]" title="[[+wf.title]]">[[+wf.linktext]]</a>[[+wf.wrapper]]</li>
Пример:
&innerRowTpl=`innerRowTpl`
&innerTpl — Шаблон для подпапок
Значение по умолчанию: нет
Примечание: Возможные плэйсхолдеры:
[[+wf.classes]] — место для указания используемого CSS-класса (включает class=" ")
[[+wf.classnames]] — содержит только название CSS-класса (не включает class=" ")
[[+wf.wrapper]] — место где будет выводиться содержимое меню.
Пример шаблона:
<ul [[+wf.classes]]>[[+wf.wrapper]]</ul>
Пример:
&innerTpl=`innerTpl`
&jsTpl — Имя чанка содержащего JavaScript
Значение по умолчанию: нет
Пример:
&jsTpl=`jsTpl`
&lastRowTpl — Шаблон последнего пункта меню (v 2.0.3)
Значение по умолчанию: rowTpl
Примечание: Возможные плэйсхолдеры:
[[+wf.classes]] — место для указания используемого CSS-класса (включает class=" ")
[[+wf.classnames]] — содержит только название CSS-класса (не включает class=" ")
[[+wf.link]] — адрес (href) для ссылки
[[+wf.title]] — текст для title ссылки
[[+wf.linktext]] — текст названия ссылки
[[+wf.wrapper]] — место для вывода подменю
[[+wf.id]] — вывод уникального идентификатора (id)
[[+wf.attributes]] — вывод дополнительных атрибутов ссылки
[[+wf.docid]] — идентификатор документа для текущего элемента
[[+wf.subitemcount]] — количество элементов в папке
[[+wf.description]] — выводит значения поля описания
[[+wf.introtext]] — выводит значения поля интротекста
Пример шаблона:
<li[[+wf.classes]]><a href="[[+wf.link]]" title="[[+wf.title]]">[[+wf.linktext]]</a>[[+wf.wrapper]]</li>
Пример:
&lastRowTpl=`lastRowTpl`
&outerTpl — Шаблон контейнера меню
Значение по умолчанию:
<ul[[+wf.classes]]>[[+wf.wrapper]]</ul>
Примечание: Возможные плэйсхолдеры:
[[+wf.classes]] — место для указания используемого CSS-класса (включает class=" ")
[[+wf.classnames]] — содержит только название CSS-класса (не включает class=" ")
[[+wf.wrapper]] — место где будет выводиться содержимое меню.
Пример шаблона:
<ul id="topnav" [[+wf.classes]]>[[+wf.wrapper]]</ul>
Пример:
&outerTpl=`outerTpl`
&parentRowHereTpl — Шаблон вывода активного документа— контейнера
Значение по умолчанию: нет
Примечание: Возможные плэйсхолдеры:
[[+wf.classes]] — место для указания используемого CSS-класса (включает class=" ")
[[+wf.classnames]] — содержит только название CSS-класса (не включает class=" ")
[[+wf.link]] — адрес (href) для ссылки
[[+wf.title]] — текст для title ссылки
[[+wf.linktext]] — текст названия ссылки
[[+wf.wrapper]] — место для вывода подменю
[[+wf.id]] — вывод уникального идентификатора (id)
[[+wf.attributes]] — вывод дополнительных атрибутов ссылки
[[+wf.docid]] — идентификатор документа для текущего элемента
[[+wf.subitemcount]] — количество элементов в папке
[[+wf.description]] — выводит значения поля описания
[[+wf.introtext]] — выводит значения поля интротекста
Пример шаблона:
<li[[+wf.classes]]><a href="[[+wf.link]]" title="[[+wf.title]]">[[+wf.linktext]]»</a>[[+wf.wrapper]]</li>
Пример:
&parentRowHereTpl=`parentRowHereTpl`
&parentRowTpl — Шаблон документа контейнера
Значение по умолчанию: нет
Примечание: Возможные плэйсхолдеры:
[[+wf.classes]] — место для указания используемого CSS-класса (включает class=" ")
[[+wf.classnames]] — содержит только название CSS-класса (не включает class=" ")
[[+wf.link]] — адрес (href) для ссылки
[[+wf.title]] — текст для title ссылки
[[+wf.linktext]] — текст названия ссылки
[[+wf.wrapper]] — место для вывода подменю
[[+wf.id]] — вывод уникального идентификатора (id)
[[+wf.attributes]] — вывод дополнительных атрибутов ссылки
[[+wf.docid]] — идентификатор документа для текущего элемента
[[+wf.subitemcount]] — количество элементов в папке
[[+wf.description]] — выводит значения поля описания
[[+wf.introtext]] — выводит значения поля интротекста
Пример шаблона:
<li[[+wf.classes]]><a href="[[+wf.link]]" title="[[+wf.title]]">[[+wf.linktext]]»</a>[[+wf.wrapper]]</li>
Пример:
&parentRowTpl=`parentRowTpl`
&rowTpl — Шаблон пункта меню
Значение по умолчанию:
<li[[+wf.id]][[+wf.classes]]><a href="[[+wf.link]]" title="[[+wf.title]]" [[+wf.attributes]]>[[+wf.linktext]]</a>[[+wf.wrapper]]</li>
Примечание: Возможные плэйсхолдеры:
[[+wf.classes]] — место для указания используемого CSS-класса (включает class=" ")
[[+wf.classnames]] — содержит только название CSS-класса (не включает class=" ")
[[+wf.link]] — адрес (href) для ссылки
[[+wf.title]] — текст для title ссылки
[[+wf.linktext]] — текст названия ссылки
[[+wf.wrapper]] — место для вывода подменю
[[+wf.id]] — вывод уникального идентификатора (id)
[[+wf.attributes]] — вывод дополнительных атрибутов ссылки
[[+wf.docid]] — идентификатор документа для текущего элемента
[[+wf.subitemcount]] — количество элементов в папке
[[+wf.description]] — выводит значения поля описания
[[+wf.introtext]] — выводит значения поля интротекста
Пример шаблона:
<li[[+wf.classes]]><a href="[[+wf.link]]" title="[[+wf.title]]">[[+wf.linktext]]</a>[[+wf.wrapper]]</li>
Пример:
&rowTpl=`rowTpl`
&startItemTpl — Шаблон ссылки на начальную папку, указанную в startId
Значение по умолчанию:
<h2[[+wf.id]][[+wf.classes]]>[[+wf.linktext]]</h2>[[+wf.wrapper]]
Примечание: Используется при &displayStart=`1`
Возможные плэйсхолдеры:
[[+wf.classes]] — место для указания используемого CSS-класса (включает class=" ")
[[+wf.classnames]] — содержит только название CSS-класса (не включает class=" ")
[[+wf.link]] — адрес (href) для ссылки
[[+wf.title]] — текст для title ссылки
[[+wf.linktext]] — текст названия ссылки
[[+wf.wrapper]] — место для вывода подменю
[[+wf.id]] — вывод уникального идентификатора (id)
[[+wf.attributes]] — вывод дополнительных атрибутов ссылки
[[+wf.docid]] — идентификатор документа для текущего элемента
[[+wf.subitemcount]] — количество элементов в папке
[[+wf.description]] — выводит значения поля описания
[[+wf.introtext]] — выводит значения поля интротекста
Пример шаблона:
<h2>[[+wf.linktext]]</h2>[[+wf.wrapper]]
Пример:
&startItemTpl=`startItemTpl`
Классы
&firstClass — CSS-класс первого пункта меню на данном уровне
Значение по умолчанию: нет
Пример:
&firstClass=`firstClass`
&hereClass — CSS-класс текущей цепочки пунктов меню
Значение по умолчанию: active
Пример:
&hereClass=`hereClass`
&innerClass — CSS-класс для подпунктов меню
Значение по умолчанию: нет
Пример:
&innerClass=`innerClass`
&lastClass — CSS-класс последнего пункта меню
Значение по умолчанию: last
Пример:
&lastClass=`lastClass`
&levelClass — CSS-класс для каждого уровня меню
Значение по умолчанию: нет
Примечание: Число уровня будет добавлено к указанному классу (то есть level1, level2, level3, и т.д... )
Пример:
&levelClass=`level`
&outerClass — CSS-класс для контейнера меню
Значение по умолчанию: нет
Пример:
&outerClass=`outerClass`
&parentClass — CSS-класс документов-контейнеров
Значение по умолчанию: нет
Пример:
&parentClass=`parentClass`
&rowClass — CSS-класс для всех пунктов меню
Значение по умолчанию: нет
Пример:
&rowClass=`rowClass`
&selfClass — CSS-класс текущего пункта меню
Значение по умолчанию: нет
Примечание: Определяет только текущий документ.
Пример:
&selfClass=`selfClass`
&webLinkClass — CSS-класс для пунктов меню — ссылок
Значение по умолчанию: нет
Пример:
&webLinkClass=`webLinkClass`
Примеры
Простой вариант вызова
[[Wayfinder? &startId=`15`]]
15 — ID папки, из которой нам необходимо вывести документы в меню
Дочерние документы
[[Wayfinder? &startId=`[[*id]]`]]
где [[*id]]
автоматически заменяется на ID текущего документа.
Соседние документы/разделы
[[Wayfinder? &startId=`[[*parent]]`]]
где [[*parent]]
автоматически заменяется ID родителя текущего документа.
Примечание: [[*parent]] у главной страницы равен 0.
Карта сайта
[[Wayfinder? &startId=`0`]]
Примечание: Проверяйте результат на наличие документов, которые не выводятся в основных меню, но могут попасть в карту сайта. Так как галочка «показывать в меню» по умолчанию включена, то можно случайно пропустить служебные документы (результаты поиска, страница 404, RSS и т.д.)
Вывод подменю не у всех разделов
Если надо выводить подменю во всех разделах кроме 5, сперва инициализируем просчет параметра , можно сделать это в атрибуте id, затем пишем условие, не выводить подменю для id 5
<li>
<a href="[[+wf.link]]" id="[[+id]]">[[+wf.linktext]]</a>
[[+id:ne=`5`:then=`[[+wf.wrapper]]`]]
</li>
Здравствуйте!
Позвольте представиться, меня зовут Марина. Более 10 лет я занимаюсь обслуживанием сайтов и развитием интернет проектов. Если вы хотите избавиться от хлопот связанных с созданием и поддержкой сайта, тогда вы попали по адресу. При работе с сайтами я предоставляю качественные услуги, ориентируясь на ваши индивидуальные потребности. Для связи со мной воспользуйтесь формой обратной связи.