Форум русской поддержки Joomla!® CMS
08.12.2016, 13:50:55 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

[Решено] В активном пункте меню, отобразить другой тоже активным

 (Прочитано 234 раз)
0 Пользователей и 1 Гость смотрят эту тему.
slepoy
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Сообщений: 703


Тотальная шизофазия


« : 07.12.2015, 21:44:29 »

Здравствуйте.

Есть ли такое расширение или способы, позволяющие пункт меню подсвечивать (выделять) как активный, если пользователь находится в другом пункте меню?

На практике необходимо это, в следующем случае:
1) есть видимый пункт меню ИГРЫ (games);
2) есть пункт меню ОНЛАЙН (flash) в скрытом меню;
3) создается дочерний пункт меню ОНЛАЙН в ИГРАХ (тип - "Псевдоним пункта меню" (скрытого пункта) ОНЛАЙН).
Цель: раздел ОНЛАЙН должен быть доступен по короткой ссылке "сайт.ру/flash", а не "сайт.ру/games/flash".
Недостаток: Находясь в разделе ОНЛАЙН подсвечивается (выделяется активным) только пункт меню ОНЛАЙН.
Необходимо: также сделать активным пункт меню ИГРЫ, если пользователь находится в разделе ОНЛАЙН (на скриншоте ниже ИГРЫ не активны).



Спасибо.
« Последнее редактирование: 13.12.2015, 18:25:35 от slepoy » Записан
Shustry
Группа развития
*****

Репутация: +727/-3
Offline Offline

Пол: Мужской
Сообщений: 6667


Рисую дизайны


« Ответ #1 : 07.12.2015, 21:48:05 »

Там два разных класса назначаются: curent и active.
Записан
slepoy
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Сообщений: 703


Тотальная шизофазия


« Ответ #2 : 07.12.2015, 22:05:44 »

Дело в том, что находясь в разделе ОНЛАЙН, ИГРЫ не имеет класс curent или active т.к. фактически ИГРЫ - не родительский пункт меню. У ОНЛАЙН нет родительского пункта меню.
Записан
Shustry
Группа развития
*****

Репутация: +727/-3
Offline Offline

Пол: Мужской
Сообщений: 6667


Рисую дизайны


« Ответ #3 : 07.12.2015, 22:23:42 »

А URLы у этих пунктов меню одинаковые?
Записан
slepoy
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Сообщений: 703


Тотальная шизофазия


« Ответ #4 : 07.12.2015, 22:34:36 »

Есть пункт меню ИГРЫ (games), но я не стал создавать в нем под.пункт ОНЛАЙН (games/flash). Раздел ОНЛАЙН был создан в другом "скрытом" меню и получил короткую ссылку flash. Затем внутри ИГР был создан под.пункт "Псевдоним пункта меню", который ссылается на ОНЛАЙН.

В результате выглядит так, словно ОНЛАЙН внутри ИГР (см. скриншот выше). Но на самом деле ИГРЫ - это не родительский пункт меню для ОНЛАЙНА (и потому ИГРЫ не будут выделены классом curent/active, если находиться в ОНЛАЙНе).

Вопрос в том, как сделать ИГРЫ "активными" (подсвеченными / задать цвет другой для "иконки джойстика"), если находиться в совершенно другом пункте меню (в ОНЛАЙНЕ)? Иначе, пользователю не понятно, в каком разделе он находится (при свернутом меню):



Спасибо.
« Последнее редактирование: 12.12.2015, 22:55:12 от slepoy » Записан
Ragivort
Живу я здесь
******

Репутация: +48/-2
Offline Offline

Пол: Мужской
Сообщений: 1005


Есть мечта-стоит жить


« Ответ #5 : 08.12.2015, 14:18:10 »

Ну лучше бы сделали подпунктами.
А так, как вариант, хакнуть меню, сделать проверку на Itemid текущего пункта, и приписать класс active
Может можно проще
Записан
midav
Живу я здесь
******

Репутация: +113/-1
Offline Offline

Пол: Мужской
Сообщений: 946



« Ответ #6 : 08.12.2015, 22:52:02 »

Ну лучше бы сделали подпунктами.
А так, как вариант, хакнуть меню, сделать проверку на Itemid текущего пункта, и приписать класс active
Может можно проще

Текущему пункту меню итак будет приписан класс active .
У ТС проблема не в этом .
Записан
Ragivort
Живу я здесь
******

Репутация: +48/-2
Offline Offline

Пол: Мужской
Сообщений: 1005


Есть мечта-стоит жить


« Ответ #7 : 09.12.2015, 12:28:32 »

У ТС проблема в том, как я понял, что у родителя не приписывается класс, я про это и сказал.
Записан
slepoy
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Сообщений: 703


Тотальная шизофазия


« Ответ #8 : 13.12.2015, 17:58:35 »

Удалось найти решение.

Продублирую исходные данные более наглядно, добавив скриншоты из админки:

Для пользователя все выглядит так, словно пункт меню ОНЛАЙН является дочерним у пункта ИГРЫ:

Но это не так ибо первоначально состояла задача в том, чтобы ИГРЫ и ОНЛАЙН были доступны по коротким ссылкам, а именно: сайт.ру/GAMES и сайт.ру/FLASH(не сайт.ру/GAMES/FLASH).

В связи с чем было создано скрытое от пользователей меню, содержащее пункт ОНЛАЙН (со ссылкой FLASH):


А в видимом (главном) меню под ИГРАМИ был создан псевдоним пункта меню:


Проблема: Находясь пункте меню ОНЛАЙН, не подсвечивается пункт ИГРЫ (не выделяется как активный, что вполне естественно), отчего пользователь, перейдя сразу в ОНЛАЙН может не разобраться в каком разделе находится.




Решение с помощью CSS:

Пункту меню ИГРЫ задаем класс games-active для ссылки:


Пункту меню ОНЛАЙН (который находится в скрытом меню) задаем класс make-games-active для страницы:


А далее в зависимости от шаблона включаем стиль в CSS-файл:
Цитировать
.make-games-active .uk-navbar-nav>li>a.games-active{color: #fff}

В итоге подсвечивается (выделяется белым цветом) и пункт ИГРЫ при нахождении в ОНЛАЙНе:
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet