Особенности

    DLMenu: Особенности

    Особенности cниппет DLMenu для вывода меню с помощью DocLister.

    С Wayfinder все понятно и так; DLBuildMenu хорош как иллюстрация возможностей параметра prepare, но такой способ решения задачи привел к повышенному потреблению ресурсов, что уже не очень хорошо. К недостаткам DLBuildMenu можно отнести и некоторую сложность при переходе с Wayfinder. В общем, предлагаю свое решение, которое должно преуменьшить недостатки DLBuildMenu, сохранив гибкость в манипуляциях с шаблонами.

    Сниппет я написал, конечно, на базе DocLister, расширив контроллер site_content.

    Особенности:

    • система шаблонов и классов, схожая с Wayfinder;
    • количество запросов равно количеству уровней в меню (без учета запросов на добавление tv-параметров и подсчет дочерних документов)
    • собственно, возможность подсчитать количество дочерних ресурсов (для непосредственных родителей);
    • почти все параметры можно задавать как для всех уровней меню, так и для конкретного уровня;
    • можно использовать prepare для обработки данных и подмены шаблонов; как и в DocLister можно с помощью prepare исключать документы из вывода;
    • можно строить меню от нескольких родителей;
    • можно держать развернутыми определенные ветки;
    • можно вывести меню в виде json-массива;
    • кэширование исходных данные для ускорения работы (пойдет в паблик, когда прикрутим к Evo нормальный кэш).

    Автор: Pathologic