Вход • Регистрация

Вывод меню только текущего уровня

  • 12 июля 2021 г. , редакция: 14 июля 2021 г.
  • Ситуация такая, имеется многоуровневое меню, при переходе на уровень ниже хочу вывести только список дочернего меню текущей страницы. Пока получилось реализовать вот так:

    Код
    <ul class="show_links"><insert name="show_block" module="menu" id="3" tag_start_1="[span style='display: none;']" tag_end_1="[/span]" tag_start_2="[li]" tag_end_2="[/li]"></insert></ul>


    Но это тоже не вариант, так как всё равно выводится всё меню, но отдельные уровни не показываются пользователю. Если меню большое, то оно только мешает поисковику выбрать нужную информацию, и является избыточным.

    Код
    <insert name="show_links" module="site"></insert>

    Конструкция этого вида не подходит, так как в меню иногда отображается больше страниц, чем есть в списке категорий и не отображает реальной картины, нужен именно текущий уровень меню.

    Какие ещё есть варианты?
    • 12 июля 2021 г. , редакция: 12 июля 2021 г.
    • 1. Смотрите настройку "Раскрывать все пункты меню" в настройках вашего меню в админке.
      2. + далее смотрите в сторону шаблонного тега
      Код
      <insert name="show_block" module="menu" id="3" template="ваш_шаблон">
      и уже в шаблонах по уровням и нужным страницам реализовывать задуманное. В шаблонах достаточно гибкости для этого.
      • 12 июля 2021 г.
      • "Раскрывать все пункты меню" галка не стоит. А про шаблон сам думал, нужно будет сделать вывод только пунктов, где родитель активен. Буду мастерить ))
        • 12 июля 2021 г.
        • В шаблонах много проще и вариативнее можно реализовать под ваши нужды.
          Как минимум, можно использовать 1 меню и 2 шаблона, один шаблон выводим на главных категориях (или страницах), и показываем там родительские, второй шаблон показываем только меню второго уровня. Но можно смастерить и одним меню. Все от конкретной задачи зависит. Я не до конца понял вашу задачу. По идеи если "Раскрывать все пункты меню" галка не стоит - то при первом вашем коде будут показываться именно подменю родителя и ничего более. Другой вопрос, что span style='display: none;' на мой взгляд далеко не лучшее решение.

Новости

  • 18 июня
  • В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
  • 24 апреля
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 

Форум