Особливості

    DLMenu: Особливості

    Особливості cніпета DLMenu для виведення меню за допомогою DocLister.

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

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

    Особливості:

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

    Автор: Pathologic