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

Отображение меню 2го уровня внутри активной страницы из данного меню

  • 22 октября 2012 г.
  • Добрый день господа! Прошу помощи по следующему вопросу:

    Есть главное меню. Хочу чтобы на активных страницах 2го уровня меню показывалось всё меню 2го уровня, элементом которого является данная активная страница. Другие меню 1го и 2го уровня (элементом которого активная страница не является) надо скрыть.

    Предполагается использование CSS display: none и display: block. Парился я и так и сяк. не получается правильно расставить параметры insert name="show_block" module="menu" чтобы все div'ы открывались и закрывались так, как надо. Посоветуйте пожалуйста как быть. Заранее спасибо!
    • 22 октября 2012 г.
    • Тут бы верстку увидеть, и меню. Вслепую идеи сложно генерировать.
      А вообще, чем show_links не подходит? Он как раз показывает все подпункты текущего пункта. А все исходное меню можно скрыть. Хотя не, не пойдет наверное... В общем, сайт надо
      • 22 октября 2012 г. , редакция: 22 октября 2012 г.
      • ну я пока стили красивые не пишу, а пробую по простому сделать в тестовых целях.

        Код


        <insert name="show_block" module="menu" id="1"
        tag_start_1="[div style=`display: none;`]"
        tag_end_1="[/div]"
        tag_active_child_start_1="[div style=`display: block;`]">


        пытаюсь справиться такими вариациями, но пока добился только того, что выводится пункт 1го уровня, у которого дочерняя страничка активна, а мне нужны все пункты данного меню 2го уровня.

        пример:
        http://amotors.org/remont/remont-tormoznoy-sistemy/

        выдает "ремонт" (пункт 1го уровня, у которого дочерняя страничка активна)
        а нужно "Ремонт ходовой
        Ремонт сцепления
        Ремонт КПП
        Ремонт АКПП
        Ремонт системы охлаждения
        Ремонт ходовой
        Ремонт тормозной системы"

        надеюсь понятно изъяснился :)
        • 22 октября 2012 г.
        • Если честно, я ничего не понял Вроде в примере у вас сделано через ul li, чем этот вариант не устраивает? Или же вы привели это как пример, а у вас верстка совсем иная?
          • 22 октября 2012 г.
          • Я это не с основным экземпляром меню колдовал, а создавал, как бы вспомогательное меню, которое генерится из основного.
  • 22 октября 2012 г.
  • да, согласен, объяснить сложно :) сделал так ):
    Код

    <insert name="show_block" module="menu" id="1"
    tag_start_1="[div style=`display: none;`]" // открывает слой который должен быть скрыт
    tag_start_2="" // делаем пустое чтобы он не скопировал параметр с родительского уровня
    tag_level_end_1=""
    tag_level_end_2="[/div]" // закрываем слой - получилось что мы его открыли тегом перед пунктом первого уровня, а закрыл в самом конце второго уровня
    tag_active_child_start_1="[div style=`display: block;`]"> // а этим мы как раз открыли слой дочерние пункты которого должны показываться


    данная система благополучно перестает пахать, если в меню оказался элемент 1го уровня, у которого нет подменю т.к. для него не применится tag_level_end_2="[/div]" и порядок слоев поедет. В остальном вроде пашет
    • 22 октября 2012 г.
    • А не проще это через css сделать?
      • 23 октября 2012 г.
      • Проблема была не в написании CSS, а в том, как расставить шаблонные теги, чтобы все заработало :)
        • 23 октября 2012 г.
        • Мне казалось что шаблонные теги нужны только для того, чтобы обернуть меню в них и назначить классы для вложенных/не вложенных тегов. А все остальное делается через css/js.
          • 03 ноября 2012 г.
          • Понятное дело что все это классами описывается, но лень было 2 файла редактировать в тестовых целях, вот я и пристроил стили прямо в тело :)
    • 23 октября 2012 г.
    • По-моему, лучше просто использовать
      Код
      <insert name="show_block" module="menu" id="1" template="default">

      и всю нужную конструкцию построить в menu.view.php
      • 23 октября 2012 г.
      • Вроде даже при использовании темплейта добится требуемого результата в данном случае не так просто.

Новости

  • 17 января, пятница
  • В преддверии 2025 года была выпущена сборка 7.2.5, которая не приносит радикальных изменений в функциональности, но способствует повышению стабильности работы системы и расширению возможностей облачного сервиса для создания сайтов.
  • 18 июня 2024 г.
  • В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
  • 24 апреля 2024 г.
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.