Заміна Wayfinder і DLBuildMenu. Особливості:
Для сортування і обмеження вибірки слід використовувати параметри DocLister (sortBy, sortDir, orderBy, addWhereList і т.д.) За замовчуванням виконується сортування за зростанням значення поля menuindex, документи з hidemenu = 1 цієї статті не виводяться. Для того щоб виводилися документи, в яких параметр "Відображати в меню", неактивний, потрібно додати в виклик сніпепта параметр addWhereList з порожнім значенням (& addWhereList = '').
Параметр prepare можна задати для певного рівня (наприклад, prepare2). Але в самому prepare-сніпеті дізнатися рівень можна з значення $ data [ 'level']. Параметр tvList також застосовується до всіх рівнів.
В параметрах шаблонів слід вказувати рівень на 1 менше (наприклад, rowTpl2 буде застосований до документів третього рівня, а rowTpl0 - першого).
Список id документів, які утворюють однорівневе меню. Щоб вивести в тому порядку, в якому вони перераховані, слід використовувати параметр sortType1 зі значенням "doclist".
Список id документів, від яких будується багаторівневе меню, через кому. Якщо у зазначених документів різні батьки, то буде побудовано кілька меню. Щоб вивести в тому порядку, в якому перераховані батьки, слід використовувати параметр sortType1 зі значенням "doclist".
Можливі значення - список id через кому.
Значення за замовчуванням - id ресурсу, в якому викликаний сниппет.
Максимальна кількість рівнів в меню.
Можливі значення - число від 1.
Значення за замовчуванням - 10.
Якщо значення параметра дорівнює 1, то будуть показані документи, зазначені в параметрі parents.
Можливі значення - 0 або 1.
Значення за замовчуванням - 0.
Якщо значення параметра дорівнює 1, то результати будуть виведені у вигляді json-масиву.
Можливі значення - 0 або 1.
Значення за замовчуванням - 0.
Якщо значення параметра дорівнює 1, то неактивні гілки меню не показуються.
Можливі значення - 0 або 1.
Значення за замовчуванням - 0.
Результат аналогічний викликом з включеним параметром hideSubMenus, але можна вказати через кому id батьківських документів, чиї безпосередні нащадки будуть завжди на виду.
Можливі значення - список id через кому.
Значення за замовчуванням - не задано.
Якщо значення параметра дорівнює 1, то буде обчислено кількість безпосередніх дочірніх документів для кожного ресурсу в меню.
Можливі значення - 0 або 1.
Значення за замовчуванням - 0.
Ім'я плейсхолдера, в якому задається назва документа.
Значення за замовчуванням - title.
Якщо задано кілька батьків і відключений параметр showParent, то сніпет виведе стільки ж меню. За допомогою цього параметра їх можна об'єднати в одне.
Можливі значення - 0 або 1.
Значення за замовчуванням - 0.
При використанні компонента EvoTwig можливо використовувати кеш для прискорення роботи DLMenu. При включеному кешуванні запити в БД для побудови меню виконуються тільки один раз, готове меню також кешируєтся, але тільки для активних пунктів меню (тобто загальна кількість відповідних записів в кеші буде дорівнює кількості пунктів меню плюс один запис для меню з неактивними пунктами, незалежно від кількості сторінок сайту, на яких це меню виводиться).
Включає кешування.
Можливі значення - 0 або 1.
Значення за замовчуванням - 1.
Дозволяє кешувати дані на заданий час. Якщо значення дорівнює 0, то дані кешуються до тих пір, поки кеш не очистите.
Можливі значення - кількість секунд.
Значення за замовчуванням - 0.
Визначає режим кешування. При значенні user записи в кеші створюється два набори записів: для авторизованих і неавторизованих користувачів; при usergroup також враховуються групи, створені учасником.
Можливі значення - user, usergroup.
Значення за замовчуванням - порожньо.
Дозволяє вказати функцію або статичний метод для побудови ключа кеша. При виклику використовуються аргументи modx (об'єкт DocumentParser) і DocLister (об'єкт контролера). За замовчуванням для побудови ключа використовує хеш параметрів, з якими був викликаний сніпет.
Можливі значення - функція, статичний метод.
Значення за замовчуванням - порожньо.
Обгортка всього меню.
Можливі значення - ім'я шаблону, вказане за правилами завдання шаблонів в DocLister.
Значення за замовчуванням:
@CODE:<ul[+classes+]>[+wrap+]</ul>
Шаблон для виведення пункту меню першого рівня без нащадків. Для поточного документа може бути заданий шаблон rowHereTpl.
Можливі значення - ім'я шаблону, вказане за правилами завдання шаблонів в DocLister.
Значення за замовчуванням:
@CODE:<li[+classes+]><a href="[+url+]">[+title+]</a></li>
Шаблон для виведення документа, у якого є нащадки. Для поточного документа може бути заданий шаблон parentRowHereTpl, для активного - parentRowActiveTpl.
Можливі значення - ім'я шаблону, вказане за правилами завдання шаблонів в DocLister.
Значення за замовчуванням:
@CODE:<li[+classes+]><a href="[+url+]">[+title+]</a>[+wrap+]</li>
Обгортка блоку дочірніх документів.
Можливі значення - ім'я шаблону, вказане за правилами завдання шаблонів в DocLister.
Значення за замовчуванням - значення параметра outerTpl.
Шаблон для виведення дочірнього документа. Для поточного документа може бути заданий шаблон innerRowHereTpl.
Можливі значення - ім'я шаблону, вказане за правилами завдання шаблонів в DocLister.
Значення за замовчуванням - значення параметра rowTpl.
Шаблон для виведення категорії (документа з полем isfolder = 1 і шаблоном \ _blank або значенням поля link_attributes містить слово category).
Можливі значення - ім'я шаблону, вказане за правилами завдання шаблонів в DocLister.
Значення за замовчуванням - значення параметра parentRowTpl.
Задаються для документів:
Можна також додати свої класи в prepare-сніпеті:
$data['classes'] = array('myClass'=>'my');
Задаються для обгорток:
Також доступні плейсхолдери, що встановлюються екстендером e, і плейсхолдери окремих класів: [+oddClass+], [+rowClass+] і т.д.