Разное → Joomla: Вынос подменю в отдельный блок

09.02.2010

Задача

Создать двухуровневое меню, в котором второй уровень отображается в отдельном блоке.

Решение

Предположим, нам нужно создать следующую структуру меню:

  • Главная
  • О компании
    • История
    • Награды
    • Клиенты
  • Услуги
    • Дизайн
    • Поддержка
    • Продвижение
  1. На странице МатериалыМенеджер материалов создаём страницы с текстом, на которые будут ссылаться пункты меню. В нашем случае это страницы История, Награды, Клиенты, Дизайн, Поддержка и Продвижение:

  2. Идём в раздел управления главным меню Все менюГлавное меню и создаём новый пункт меню О компании с настройками:

    Тип меню = Внутренняя ссылка / Материалы / Стандартный шаблон материала
    Заголовок = О компании
    Выберите материал = История

  3. Так же создаём пункт меню Услуги, только вместо материала История, нужно выбрать Дизайн

  4. Создаём подпункт История:

    Тип меню = Внутренняя ссылка / Материалы / Стандартный шаблон материала
    Заголовок = История
    Родительский элемент = О компании
    Выберите материал = История

  5. Аналогично создаём подпункты Награды и Клиенты, изменяя заголовок и материал на который будет ссылаться пункт.

  6. Аналогично создаём подпункты Дизайн, Поддержка и Продвижение, но в качестве родительского пункта выбираем Услуги

    В итоге должно получится нечто похожее на:

  7. Идём в раздел управления модулями РасширенияМенеджер модулей и открываем форму редактирования модуля Главное меню.

  8. Изменяем пункт Позиция на user3, чтобы меню выводилось горизонтально. И изменяем пункт Последний уровень на 1, чтобы выводился только первый уровень меню.

  9. В менеджере модулей создаём новый модуль Подменю с настройками:

    Модули = Меню
    Заголовок = Подменю
    Меню = Выбрать из списка
    Выбор меню = выбираем все пункты кроме Главная
    Начальный уровень = 1
    Суффикс класса модуля = _menu

На этом всё =) Длинновато получилось, но если вкратце, то весь смысл в модуле Подменю, который выводит соответствующие ссылки.

Результат

Главная страница (основное меню расположено горизонтально, блок с подменю отсутствует):

Страница О компании / История (в блоке с подменю выводятся только ссылки из родительского раздела):

Страница Услуги / Поддержка:

Написанное актуально для
Joomla 1.5.x
Похожие записи

Комментарии

Гость
25.03.2010, 19:34

Большое спасибо! Очень помогло, просто и легко делается

Спасибо за статью, а вот как сделать, чтобы было многоуровневое меню. Например: Услуги, а в них дизайн, а в дизайне поддержка и продвижение.

создаёте два новых подпункта, в качестве Родительского элемента выбираете дизайн, джумла сама выведет многоуровневое меню

Спасибо, все понятно и доходчиво.

Спасбо огромное!
На джумлафорум спрашивал, все какую-то чушь городили, а у Вас все хорошо описано. Побольше бы ткаих туторов...

tiamat666
05.08.2010, 11:16

Огромное спасибо, я уже 3 дня разобраться пытаюсь. Все очень гамотно и доходчиво.

спасибо огромнейшЕЕ!!! очень сильно помог!!

Максим
18.11.2010, 02:49

Большое спасибо за статью, очень помогла!!!
Но возникла проблема, пункты под меню (История, Награды, Клиенты) появились также в в главном меню, а если их убрать в модуле меню, то все меню исчезает.
В чем может быть загвоздка ???

проделайте всё ещё раз, не отступая от пунктов

Максим
18.11.2010, 16:09

Три раза уже делал, по пунктам, и все равно такая штука ((

Максим
18.11.2010, 16:17

Вот еще, если в модуле меню в назначение меню выбрать только
"Главная", то появляются все пункты меню включая подменю, а если выбрать другой пункт "О компании", то исчезают все пункты.

Автор просто супер!!! +100 и миллион в придачу! Действительно, как бы был прекрасен интернет, если бы были только такие авторы...Огромное спасибо!!!!

Блин, еще раз Искреннее Спасибо. Автор спас от психушки просто)

Александр
18.01.2011, 17:21

ОТ ДУУУУШШИИИИИИИИИИИИ!)))

Дмитрий
10.02.2011, 14:00

Спасибо огромное, уже не первый день на Joomla работаю, всегда такое городил, а тут вот как оказывается можно.

Наконец то нашел способ, как это реализуется. Двумя отдельными меню пытался добиться, а все оказывается проще :) Большое спасибо за хороший подробный мануал.

+1 к комменту выше!!!! Искал долго переконопатил весь инет!! НАШЕЛ ТАКИ!! еее=)

Артем
06.03.2011, 03:58

огромное спасибо!!! ваша схеме работает отлично!!!!
Но у меня проблема возникла: - если главное меню (mainmenu) вертикально, а второй уровень надо вывести горизонтально??? ни чего не получается :-( второй уровень тоже начинает выводится вертикально или всё меню дублируется горизонтально или вертикально.

С Главным меню у меня все получилось! Спасибо! Но вот потом я решил сделать каждый пункт главного меню ,как отдельное меню со своими пунктами. У каждого пункта есть еще подпункты, которые я решил вывести в отдельное подменю. И тут-то ничего не получилось, хотя сделал по инструкции...

Артем
17.03.2011, 11:08

Все дело в том, что этот пример работает, в основном, для стандартного шаблона!!!! который приложен автоматически к joomla. Люди, если Вы хотите сделать подобную схему в своем шаблоне , который Вы скачали из инета, то может ни чего и не получиться! - "...Опыт сын ошибок трудных..." Пробуйте! Экспериментируйте! И все будет так как Вас захотите!!! Собака зарыта в css...

Доброй ночи. Может не совсем в тему но: создал многоуровневое меню, хочу часть пунктов (меню многоуровневое) - уровней меню вывести в отдельное меню, задаю начальный и конечные уровни. Но если начальным уровнем задать 1 или последующие то меню почему-то не выводится. В обратную сторону уровни отрубаются без проблем. Если кто сталкивался, просьба помочь. Надеюсь на Вашу помощь.......

Артем
27.04.2011, 12:14

Alex Привет. Все просто! заходишь в модули выберешь модуль который отвечает у тебя за твое меню, которое хочешь изменить, ставишь "стиль меню" (у меня вертикально-зависит от шаблона меню). начальный уровень 0 конечный соответственно, что нужно ... или 0 или 1 или ...
теперь сохраняешь и создаешь новый модуль "ЗАГОЛОВОК":
Параметры модуля:
Название меню - соответствует предыдущему модулю!!!
Стиль меню - СПИСОК (!!!!)

Начальный уровень - 1
Последний уровень - 0
эта хрень у меня реализована на сайте http://89035742196.ru и все идеально работает!
Пробуй!
Артем

Автору спасибо! Сделал. Вроде получилось, но когда выбираю пункт в подменю, то это подменю пропадает. Как сделать чтобы оно отображалось?

Гость
13.07.2011, 06:50

Замечательная идея! Я, как раз сидел и обдумывал нечто подобное, и тут Ваша статья! Я сделал тоже самое, только вместо верхнего меню у меня одно (родительское) меню слева, а подменю справа (тип родительского меню - topmenu)/

Эта идея не нова. Она описана в книге Бари Норта по Joomla. Но не суть. Все старательно обходят один момент: это создание подменю у пункта "Главная". Обратите внимание, что в этом примере его тоже нет. Объясняю почему: если добавить хлебные крошки или просто выбрать пункт из подменю главная, то ссылка на страницу будет иметь вид типа: сайт\home\страница. Появляется дубль главной страницы "home". Может быть автор знает решение данной проблемы.

Автору респект!!! Статья супер...очень помогла.....огромное при огромное СПАСИБО!!!

Молодца, это шестой сайт на котором искал решение своей небольшой проблемы. Четко, наглядно и лаконично! спасибо

Спасибо! Полезная информация.
Подскажите, а можно ли сделать на внутренних страницах вывод не только текущего блока меню, но и неактивного? Т.е., например, блок "О компании" с подпунктами, а под ним - "Услуги" тоже с подпунктами?

Блин, эти джумловоды все такие пусечки, такие благодарные няшечки! Не то что злые и угрюмые друпоеды! :)

Павел
28.08.2012, 21:17

Подскажите, пожалуйста, как похожее реализовать на Drupal 7.

У меня так проблема.
Создал под меню в тех разделах которые мне нужны один раздел с подменю работает шикарно.
В других разделах бред нажал на ссылку из под меню и вышли подменю из других разделов...
Как это убрать???
Могу скинуть ссылку...
В модулях я специально отметил галочками что к чему должно относится но не хочет работать подменю...

Гость
24.08.2014, 19:50

Спасибо тебе, добрый человек!!!!!!!!!

Денис
29.09.2015, 02:05

Великолепно.
Правда очень много путаницы с этими названиями пунктов меню. По сути, если человек дорос до столкновения с такой проблемой, то первые 5 пунктов вполне можно опустить без ущерба для понимания. Даже наоборот - так будет проще.

Добавить комментарий