LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
19.06.2013, 03:26:04 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 2.5 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор Тема: Активные ссылки в многоуровневом меню  (Прочитано 28942 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Shendrik
Осваиваюсь на форуме
***

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

Сообщений: 36


« : 11.11.2006, 20:04:13 »

Здравствуйте, очень важный вопрос.

Как сохранить активные сыылки в многоуровнем меню?

пример:

меню1
меню2            подменю2-1
                      подменю2-2
                      подменю2-3             подменю3-1
                                                      подменю3-2
                                                      подменю3-3
                                                      подменю3-4

(активные меню к примеру болдовые и не подчеркнутые)

Я думаю может как-то задать свой класс каждому из модулей, где размещаются пункты и подпункты. Чтоб active_menu работал только внутри своего модуля и не менялся от значения в других модулях.
Но возможно ли это, и как это сделать?
Или же есть какие-то другие решения данной проблемы?

« Последнее редактирование: 21.12.2006, 20:54:44 от Mitrich » Записан
ButuzOFF
Осваиваюсь на форуме
***

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

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



« Ответ #1 : 11.11.2006, 20:49:46 »

Может это

Записан
Shendrik
Осваиваюсь на форуме
***

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

Сообщений: 36


« Ответ #2 : 17.11.2006, 19:37:13 »

нет немного не то

при таком оформлении не работают active_menu
Записан
one_more
Support Team
*****

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

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


there is no spoon


« Ответ #3 : 17.11.2006, 20:08:44 »

Насколько я помню, эта проблема решена в Extenden menu. По крайней мере, можно задавать уникальный Itemid для каждого пункта.
Записан
Shendrik
Осваиваюсь на форуме
***

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

Сообщений: 36


« Ответ #4 : 18.11.2006, 12:38:48 »

к сожалению я не разобрался с этими Itemid, нечего толкового не вышло.
В могли бы вы объяснить по подробней, как они работают?
был бы очень вам признателен
Записан
one_more
Support Team
*****

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

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


there is no spoon


« Ответ #5 : 18.11.2006, 15:02:35 »

Сначала несколько пояснений:
1.   Я сам такого «раскрашивания» в меню не делал, просто исхожу из того, что написано в документации к модулю, которую читал и переводил.
2.   Собирать сейчас тестовый сайт, чтобы проверить, что и как работает, и на конкретном примере объяснять, у меня нет времени
3.   Поэтому просто привожу те выдержки из официальной документации к модулю, которые, на мой взгляд, должны помочь в решении

Раздел «Параметры вывода» --- [ output fields ] ---

•   Level Class – определяет используемые классы css для основного уровня меню и подменю (параметр не действует в случае использования шаблона меню)
     o   Default – используются те же классы, какие используются в модуле mainmenu.
     o   Mainlevel and Sublevel – дополнительные возможности настройки отображения с использованием стилей css.
•   Active Menu Class – используемый css класс для меню (параметр равнозначен такому же параметру, используемому в дефолтном модуле меню joomla)
     o   No – значение «по умолчанию». Не используются дополнительно созданные стили.
     o   to a-Element – для активного пункта меню (для тега <a>) используются классы "mainlevel_active" и "sublevel_active" и классы "mainlevel_current"/"sublevel_current" для текущего пункта меню.
     o   to li/td/div-Element – аналогично предыдущему пункту, но стилевые классы присваиваются не самим линкам, а элементам-контейнерам, содержащим линки (<li>, <td> или <div>).
     o   Both – используются оба вышеназванных варианта одновременно.
•   Element Id – каждый отдельный элемент (пункт) меню будет получать свой собственный стиль, основанный на иерархии элементов. Например класс "menuitem_2_5" будет присвоен пятому пункту подменю второго пункта меню. Это позволяет создать для каждого пункта меню свой собственный стиль.
(Примечание разработчика: поскольку эта настройка конфликтовала с active_menu id, последняя настройка из модуля удалена)

Разное

•   Resolve Itemid By Content Item – в некоторых случаях Вам требуется, чтобы к одному материалу вели несколько ссылок. Если установить этот параметр в "No", стилевое выделение «активной ссылки» используется только для текущей ссылки на материал (и функция getItemid больше не вызывается).
•   Current/Active Item Highlighting – этот параметр определяет, должен ли модуль меню для «подсветки» определенного пункта пытаться определить текущий пункт меню автоматически или ограничиваться указанным в Itemid.
•   Current Item Duplicates – дупликация пунктов меню, одновременно помеченных как текущие, может приводить к ошибкам в html-коде. Используя этот параметр Вы можете конвертировать их в «активные» (обычно id пункта меню, который является «родительским» по отношению к текущему, не имеет признака "active_menu")

Записан
Shendrik
Осваиваюсь на форуме
***

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

Сообщений: 36


« Ответ #6 : 19.11.2006, 19:08:09 »

благодарен вам за внимание
Все попробовал, но так нечего и не вышло
Записан
one_more
Support Team
*****

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

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


there is no spoon


« Ответ #7 : 19.11.2006, 20:38:54 »

Так. Поставил. Посмотрел. Всё работает так, как и было обещано разработчиком.

Выставляете в разделе настроек модуля [output] следующие параметры (другие варианты сочетаний просто не проверял):
1. Level Class в значение "Mainlevel and Sublevel"
2. Active Menu Class в значение "to a-Element"

и получаете
1. для текущего пункта меню  <a id="active_menu-суффикс_модуля"
2. для тех пунктов, в которые текущий "вложен" <a class="sublevel_active-суффикс_модуля"
3. для самого верхнего уровня "активного" меню <a class="mainlevel_active-суффикс_модуля"
4. Неактивные пункты меню имеют <a class="sublevel-суффикс_модуля" и  <a class="mainlevel-суффикс_модуля"

* суффикс_модуля может отсутствовать, если не назначен в самом модуле extended menu

Теперь остаётся только все нужные стили описать в css. В Вашем случае все *_active должны иметь стиль "жирный" "не подчёркнутый". Если остальные стили не описывать, они будут иметь вид, назначенный тэгу <a> "по умолчанию"
« Последнее редактирование: 19.11.2006, 20:45:57 от lamer » Записан
Shendrik
Осваиваюсь на форуме
***

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

Сообщений: 36


« Ответ #8 : 19.11.2006, 23:49:22 »

Большое вам спасибо, и ее бы хотелось узнать, возможно ли настроить субменю как в примере1? А то При настройке субменю получается как в примере 2, тоесть все ссылки что ниже при раскрывание субменю находятся под ним, а хотелось бы чтоб столбец не скакал.
Такое возможно при настройке модулей в каждой таблице шаблона, но тогда нельзя сделать путь активных ссылок, а в  настройка сублевелов  все наоборот.

Записан
one_more
Support Team
*****

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

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


there is no spoon


« Ответ #9 : 20.11.2006, 21:33:58 »

ИМХО - через z-index. К модулю extended menu есть DHTML-шаблоны. Посмотреть в работе можно здесь. Шаблон "вертикального" меню suckerfish-vertical-1.0.1.zip - здесь - в нём придётся переписать css.
Записан
Shendrik
Осваиваюсь на форуме
***

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

Сообщений: 36


« Ответ #10 : 21.11.2006, 00:20:23 »

да, почти то что надо, только как сделать теперь меню не выпадающем, а чтоб субменю были видимыми только при нажатии на маинменю?

Менял в css     display: block; , но получилось только сделать, чтоб все суб меню были видны сразу.
Можно ли решить данный вопрос через css, или придется лезть в js?

Еще раз огромное вам спасибо, вы мне очень помогаете.
Записан
Shendrik
Осваиваюсь на форуме
***

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

Сообщений: 36


« Ответ #11 : 21.11.2006, 01:23:39 »

Вот еще подумалось, ведь не получится мне сделать чтоб каждое субменю начиналось с верхней строки. Ведь каждому нижнему маинменю я не пропишу разное значение отступа субменю.
Вообщем снова не совсем верное решение вопроса, придется все делать в модулях.
Я вам очень благодарен за помощь.
Записан
one_more
Support Team
*****

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

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


there is no spoon


« Ответ #12 : 21.11.2006, 21:53:26 »

Цитировать
ведь не получится мне сделать чтоб каждое субменю начиналось с верхней строки

Получится, поскольку
1.   Никто не мешает задавать отрицательные отступы (в т.ч. верикальные)
2.   Меню построено на «вложенных» один-в-другой ненумерованных списках (<ul><li><ul><li></li></ul></li></ul>). Значит, можно описать необходимые стили для этих списков в css, даже не влезая в код модуля.
3.   В качестве примера: если за основу взять именно шаблон suckerfish-vertical, тогда попробуйте задать отрицательный вертикальный отступ так:


ul.mainlevel-suckerfish-vertical ul {
   margin-top: -200px; /* вертикальный отступ «минус 200 пикселей» - стиль будет действовать для первого выпадающего подменю*/
}

ul.mainlevel-suckerfish-vertical ul ul {
   margin-top: -200px; /* вертикальный отступ «минус 200 пикселей» - стиль будет действовать для второго выпадающего подменю*/
}

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

ЗЫ. Единственное, можно ожидать проблем кроссбраузерной совместимости при отрицательных отступах (выглядеть это будет чуть по-разному), но и это решаемо.

ЗЗЫ. При «выпадающем» меню отрицательный отступ не имеет смысла, если «выпадающее» подменю имеет мало пунктов, поскольку если подменюшку сместить далеко вверх от пункта, из которого подменю «выпадает», будет просто невозможно перейти мышью на само подменю (при уходе с активирующего пункта оно «закроется»). Суть проблемы понятна из скриншота.

ЗЗЗЫ. Чтобы «выпавшее» меню больше не «скрывалось», нужно поменять логику обработки события onMouseOut в menu.js  Самый топорный способ, который едва ли может понравится – убрать в шаблоне в файле menu.js  строку 73

node.onmouseout =this.onmouseout;

Но большего я всё равно не предложу (тем более, что плохо представляю, что именно требуется).

Цитировать
как сделать теперь меню не выпадающем, а чтоб субменю были видимыми только при нажатии на маинменю

Чтобы это сделать, нужно в том же menu.js поменять onmouseover на onclick.
Но ничего хорошего из этого не выйдет, поскольку если Вы захотите кликом на <меню1> раскрыть субменю1, это субменю1 раскроется, но тут же загрузится страница, на которую ведёт ссылка с самого пункта меню1.


[вложение удалено Администратором]
« Последнее редактирование: 22.11.2006, 18:06:49 от lamer » Записан
Shendrik
Осваиваюсь на форуме
***

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

Сообщений: 36


« Ответ #13 : 22.11.2006, 00:48:36 »

большое спасибо за подробный ответ, займусь этим завтра

как что выйдет отпишу
Записан
ostanin
Гость
« Ответ #14 : 28.11.2006, 14:59:47 »

А если мне необходимо сделать 3 блока на сайте (в различных частях), из которых одно показывает разделы, другое- категории, третье материалы? Делаю структуру в mainmenu, выводу тремя Extenden menu, в одном только разделы, в другом - категории, в 3м - материалы. Проблема в том что категории и материалы выводятся все имеющиеся, а не текущего раздела.. можно это поправить?
Записан
one_more
Support Team
*****

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

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


there is no spoon


« Ответ #15 : 28.11.2006, 21:26:57 »

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

Если вопрос только в этом - посмотрите SectionNav
Записан
ostanin
Гость
« Ответ #16 : 28.11.2006, 21:45:24 »

Спасибо, справился: CSS & Extenden menu - очень сильно!
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.18 | 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