Замена 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+] и т.д.