MODx/Встроенные сниппеты/Wayfinder
Информация
[править]Назначение: Основное назначение Wayfinder — генерировать навигационные меню, автоматически отражающие изменения в структуре сайта, однако он может быть использован и с другими целями.
Wayfinder — сниппет, сканирующий заданную часть дерева документов MODx, находящий все документы, отвечающие заданным условиям, и выводящий форматированный список этих документов.
Формат вывода определяется шаблонами, он может включать любые комбинации HTML, CSS и JavaScript, что дает невероятную степень гибкости. Эти шаблоны являются чанками (т.е. для задания какого-либо шаблона следует создать новый чанк, он то и будет являться шаблоном)
На одной странице может присутствовать несколько вызовов Wayfinder, соответственно можно создавать несколько независимых меню и списков документов.
Параметры
[править]Основные
[править]- &startId (по умолчанию — current docId) — стартовая папка (document ID)
- &level (по умолчанию — 0) — глубина просмотра (0 — все уровни)
- &ignoreHidden (по умолчанию — FALSE) — игнорировать флаг «show in menu» (включать всё)
- &ph (по умолчанию — FALSE) — имя подстановщика, заменяющего непосредственно выводимые результаты
- &debug (по умолчанию — FALSE) — включить режим отладки
- &hideSubMenus (по умолчанию — FALSE) — установить в ‘true’, чтобы выводилось только активное подменю
- &removeNewLines (по умолчанию — FALSE) — не включать в выводимый текст символы новой строки
- &textOfLinks (по умолчанию — menutitle) — имя поля, используемого для текста меню (допустимы значения: menutitle, id, pagetitle, description, parent, alias, longtitle, introtext)
- &titleOfLinks (по умолчанию — pagetitle) — имя поля, используемое для атрибута ‘title’ ссылки (допустимы значения: menutitle, id, pagetitle, description, parent, alias, longtitle, introtext)
- &rowIdPrefix (по умолчанию — FALSE) — установить уникальный идентификатор для каждого элемента списка (id = rowIdPrefix + docId)
- &useWeblinkUrl (по умолчанию — TRUE) — ссылка, указанная в weblink, будет замещать подстановщик [+wf.link+]
- &fullLink (по умолчанию — FALSE) — формировать абсолютные ссылки (с "префиксом" site-url)
Параметры шаблона
[править]Эти параметры указывают чанки, содержащие шаблоны для управления выводом Wayfinder.
- &outerTpl — имя чанка, описывающего внешний контейнер
Подстановщики:
- [+wf.classes+] — будет заменен классом (включая class=" ")
- [+wf.classnames+] — будет заменен именем класса (без class=" ")
- [+wf.wrapper+] — сюда будет вставлен весь внутренний текст
Пример
<ul id="topnav"[+wf.classes+]>[+wf.wrapper+]</ul>
<table [+wf.classes+]><tr>[+wf.wrapper+]</tr></table>
- &rowTpl — чанк, описывающий элементы-строки
Подстановщики
- [+wf.classes+] — будет заменен классом (включая class=" ")
- [+wf.classnames+] — будет заменен именем класса (без class=" ")
- [+wf.link+] — место для гиперссылки (значения href)
- [+wf.title+] — место для текста атрибута title для ссылки
- [+wf.linktext+] — место вставки текста гиперссылки
- [+wf.wrapper+] — место вставки подменю
- [+wf.id+] — место вставки уникального id
- [+wf.attributes+] — место вставки атрибутов ссылки
- [+wf.docid+] — место вставки идентификатора текущего документа
- [+wf.description+] - описание документа
Пример
<li[+wf.id+][+wf.classes+]><a href="[+wf.link+]" title="[+wf.title+]" [+wf.attributes+]>[+wf.linktext+]</a>[+wf.wrapper+]</li>
<li><a href="[+wf.link+]">[+wf.linktext+]</a> - [+wf.description+] [+wf.wrapper+]</li>
<td [+wf.classes+]><a href="[+wf.link+]" title="[+wf.title+]" [+wf.attributes+]>[+wf.linktext+]</a>[+wf.wrapper+]</td>
- &parentRowHereTpl — шаблон текущего документа, если он является папкой
Подстановщики — как в rowTpl
Пример
<li[+wf.classes+]><a href="[+wf.link+]" title="[+wf.title+]">[+wf.linktext+]</a>[+wf.wrapper+]</li>
- &parentRowTpl — шаблон для любого документа, являющегося папкой
Подстановщики — как в rowTpl
Пример
<li[+wf.classes+]><a href="[+wf.link+]" title="[+wf.title+]">[+wf.linktext+]</a>[+wf.wrapper+]</li>
- &hereTpl — шаблон для текущего документа
Подстановщики — как в rowTpl
Пример
<li[+wf.classes+]><span>[+wf.linktext+]</span>[+wf.wrapper+]</li>
- &innerTpl — шаблон для любых вложенных подпапок
Подстановщики — как в outerTpl
Пример
<ul[+wf.classes+]>[+wf.wrapper+]</ul>
- &innerRowTpl — шаблон элементов-строк в подпапке
Подстановщики — как в rowTpl
Пример
<li[+wf.classes+]><a href="[+wf.link+]" title="[+wf.title+]">[+wf.linktext+]</a>[+wf.wrapper+]</li>
- &innerHereTpl — шаблон для текущего документа, если он в подпапке
Подстановщики — как в rowTpl
Пример
<li[+wf.classes+]><span>[+wf.linktext+]</span>[+wf.wrapper+]</li>
- &activeParentRowTpl — шаблон для папок, которые в данный момент активны
Подстановщики — как в rowTpl
Пример
<li[+wf.classes+]><a href="[+wf.link+]" title="[+wf.title+]">[+wf.linktext+]</a>[+wf.wrapper+]</li>
- &categoryFoldersTpl — шаблон для папок-категорий. Определяются установкой пустого шаблона или установкой поля атрибутов ссылки в rel="category"
Подстановщики — как в rowTpl
Пример
<li[+wf.classes+]><a href="[+wf.link+]" title="[+wf.title+]">[+wf.linktext+]</a>[+wf.wrapper+]</li>
Параметры имени класса CSS
[править]CSS можно использовать для управления видом (а в некоторых случаях — действием) различных частей выводимого фрагмента. Однако необходимо указать Wayfinder, какие имена классов CSS используются, и какие элементы разметки фрагмента связываются с ними.
- &firstClass (по умолчанию — ‘’) — Класс CSS, определяющий первый элемент на данном уровне меню
- &lastClass (по умолчанию — ‘last’) — Класс CSS, определяющий последний элемент на данном уровне меню
- &hereClass (по умолчанию — ‘active’) — Класс CSS, определяющий позицию «вы здесь» для всей цепи
- &selfClass (по умолчанию — ‘’) — Класс CSS, определяющий позицию «вы здесь» только для текущего документа
- &parentClass (по умолчанию — ‘parent’) — Класс CSS, определяющий элемент меню, являющийся папкой
- &rowClass (по умолчанию — ‘’) — Класс CSS, определяющий каждую строку
- &levelClass (по умолчанию — ‘’) — Класс CSS, определяющий каждый уровень строк, номер уровня добавляется к указанной строке (напр., level1, level2, level3 и т.д.)
- &outerClass (по умолчанию — ‘’) — Класс CSS внешнего шаблона
- &innerClass (по умолчанию — ‘’) — Класс CSS внутреннего шаблона
- &webLinkClass (по умолчанию — ‘’) — Класс CSS внешних ссылок (weblinks)
Параметры включения кода (Code-Embedding)
[править]Если выводимый при вызове Wayfinder фрагмент требует присутствия некоторого фрагмента CSS или JavaScript, можно сохранить CSS в одном чанке, JavaScript — в другом, а затем использовать эти параметры, чтобы указать Wayfinder скопировать один или оба чанка в раздел HEAD той страницы, из которой вызван Wayfinder.
- &cssTpl (по умолчанию — FALSE) — имя чанка, содержащего включаемый в страницу CSS
- &jsTpl (по умолчанию — FALSE) — имя чанка, содержащего включаемый в страницу javascript
Примеры
[править]Простейший вызов:
[править]
[!Wayfinder? &startId=`0`!]
В результате будет выведен многоуровневый ненумерованный список, представляющий все дерево документов сайта ModX, при этом каждый элемент будет являться ссылкой на соответствующий документ.
Другие примеры: [1]
Как использовать шаблоны
[править]Рассмотрим на примере &rowTpl. Необходимо создать чанк, например Row, в него поместить шаблон, созданный из html-кода и постановщиков:
"<ul id="topnav"[+wf.classes+]>[+wf.wrapper+]</ul> <table [+wf.classes+]><tr>[+wf.wrapper+]</tr></table>
"
Затем создать запрос [[Wayfinder? &startId=`0` &rowTpl=`Row`]]
Ссылки
[править]- Справка по параметрам wayfinder
- Домашняя страница: Wayfinder