Особенности
DLMenu: Особенности
Особенности cниппет DLMenu для вывода меню с помощью DocLister.
С Wayfinder все понятно и так; DLBuildMenu хорош как иллюстрация возможностей параметра prepare, но такой способ решения задачи привел к повышенному потреблению ресурсов, что уже не очень хорошо. К недостаткам DLBuildMenu можно отнести и некоторую сложность при переходе с Wayfinder. В общем, предлагаю свое решение, которое должно преуменьшить недостатки DLBuildMenu, сохранив гибкость в манипуляциях с шаблонами.
Сниппет я написал, конечно, на базе DocLister, расширив контроллер site_content.
- система шаблонов и классов, схожая с Wayfinder;
- количество запросов равно количеству уровней в меню (без учета запросов на добавление tv-параметров и подсчет дочерних документов)
- собственно, возможность подсчитать количество дочерних ресурсов (для непосредственных родителей);
- почти все параметры можно задавать как для всех уровней меню, так и для конкретного уровня;
- можно использовать prepare для обработки данных и подмены шаблонов; как и в DocLister можно с помощью prepare исключать документы из вывода;
- можно строить меню от нескольких родителей;
- можно держать развернутыми определенные ветки;
- можно вывести меню в виде json-массива;
- кэширование исходных данные для ускорения работы (пойдет в паблик, когда прикрутим к Evo нормальный кэш).
Автор: Pathologic