Joomla: Как сохранить выделенный пункт главного меню при навигации по отдельным пунктам подменю? - PullRequest
1 голос
/ 24 июня 2011

Я пытаюсь создать горизонтальное главное меню категории и вертикальное подменю, отделенное от основного. Когда я выбираю категорию, отображается ее главная страница. Но когда я выбираю другую страницу из подменю, которая должна быть из той же категории, то пункт «категория» в главном меню перестает подсвечиваться. Все меню определены как «автономные» модули, и я использую Joomla 1.6.3.

Ответы [ 2 ]

3 голосов
/ 02 апреля 2012

В то время я не знал, что я должен установить каждый элемент в верхнем меню как Псевдоним меню . Это позволило мне сохранить выделение элемента при выборе элементов из подменю.

Согласно документации Joomla http://docs.joomla.org/Help16:Menus_Menu_Item_Manager_Edit#Menu_Item_Alias:

"Этот тип элемента меню создает ссылку на существующий элемент меню. Это позволяет Вы должны иметь идентичные пункты меню в двух или более разных меню без дублирования настроек. Так, например, если вы измените параметр элемента меню, с которым связан псевдоним, псевдоним автоматически получит такое же изменение. "

Для тех, кто, как и я раньше, борется с идеей меню Joomla - главное меню в такой конфигурации находится в «Меню модуля» с начальным и конечным уровнями, установленными в 1 ( Основные параметры ), и подменю находится в другом «Модуле», но содержит то же меню, но начинается с уровня 2.

3 голосов
/ 25 июня 2011

Любой тип подсветки или эффекта основан на классах CSS, которые назначаются при создании меню через XML. Если у вас есть каждое меню как отдельное, а не одна большая иерархия, вы можете столкнуться с проблемами. Ваша структура меню должна быть выполнена в одном модуле с использованием иерархии.

Если мы посмотрим на демонстрационную страницу Joomla 1.6 по адресу: h http://demo16.cloudaccess.net/index.php/using-joomla/extensions Мы увидим, что "Использование Joomla!" является родителем, а «Использование расширений - это ребенок». Давайте посмотрим на классы CSS, присвоенные

для каждой из этих ссылок

Использование Joomla - класс = "активный более глубокий родитель" Использование расширений - class = "текущий активный более глубокий родитель"

Затем вы можете управлять форматированием, используя CSS Javascript на основе иерархии, например

 li.parent li.current { CSS here } //do things based on the current
 li.active li.active { css here } // add an .active for each level down the hierarchy, for example to affect 3 ways in, require three li.actives in the hierarchical-selector  

Например, вот некоторые правила CSS, используемые на этой странице:

ul.menu li.active a:link, ul.menu li.active a:visited { 
    color: #333333;
}

ul.menu li.active ul li.active a:link, ul.menu li.active ul li.active a:visited { 
     border-bottom-color: #ffffff;
     border-bottom-style: solid;
     border-bottom-width: 1px;
     border-left-color: currentColor;
     border-left-style: none;
     border-left-width: 0px;
     border-right-color: currentColor;
     border-right-style: none;
     border-right-width: 0px;
     border-top-color: currentColor;
     border-top-style: none;
     border-top-width: 0px;
     color: #333333;
 }

Если вы не используете одно большое меню для всего, тогда к родительским элементам не будут добавлены правильные классы CSS, и вам придется делать более сложный JavaScript.

...