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