Поддержать Проект

Обратная связь

[MODX] Guru
  • Информация
  • Разработчикам
  • Дополнения
    • DocLister
    • DLMenu
      • Основные параметры
      • Шаблоны
      • Классы
      • Плейсходеры
    • DLCrumbs
    • DLBuildMenu
    • DLLastViews
    • DLSiblings
    • DLRequest
    • DLglossary
    • DLSitemap
    • DocInfo
    • FormLister
    • Wayfinder
    • phpthumb
    • LikeDislike
    • eForm
    • Ditto
    • multiTV
    • AjaxMegaSearch
    • AjaxSearch
    • WebLoginPE
    • Breadcrumbs
    • CodeMirror
    • AnythingRating
    • Easy Newsletter
    • FirstChildRedirect
    • OpenGraphTags
    • ddTypograph
    • TagSaver
    • BlackList
    • CfgTv
    • ModxAccount
    • Forgot Manager Login
    • GetField
    • if
    • Jot
    • ListChild
    • ListIndexer
    • ManagerManager
    • ddMMEditor
    • MaxiGallery
    • MemberCheck
    • ddGetMultipleField
    • MetaX
    • MODxBB и phpBB
    • Yams
    • Personalize
    • PHx
    • Reflect
    • tagLinks
    • TransAlias
    • TvTagCloud
    • UltimateParent
    • WebSignup
    • WebLogin
    • countViews
    • thumb
    • imageCaptor
    • optimizeJPG
    • Preview Next
    • Shopkeeper
    • SiteMap
    • Sass
    • Selector
    • SimpleGallery
    • SimpleTube
    • SimpleFiles
    • Star Rating
    • MinifyX
    • adminNav
    • SimplePolls
    • CResource
    • MODxAPI
    • customTables
    • HtmlInLine
    • HtmlMinModxEvo
    • SHKUserProfile
    • PickDocsInTree
    • evoSearch
    • editDocs
    • PageBuilder
    • HybridAuth
    • Compare
    • alterTitle
  • Виджеты
  • Уроки
  • Разработчики
  • Готовые примеры
  • Блог
  • Конфиги
  • HTML коды
© [MODX] Guru
  • Дополнения
  • avatar
    • Автор: Pathologic
    • HybridAuth
    • DLSitemap
    • SimplePolls
    • Selector
    • LikeDislike
    • SimpleGallery
    • SimpleTube
    • DLRequest
    • FormLister

DLMenu: Сниппет для вывода меню с помощью DocLister

  • Дополнения
  • DLMenu
72128

DLMenu: Сниппет для вывода меню с помощью DocLister

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

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

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

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

  • Основные параметры
  • Шаблоны
  • Классы
  • Плейсходеры