Реализация подменю в Joomla

  • Среда, 01 марта 2006

Не секрет, что на больших порталах часто требуется иметь отдельное меню в каждом разделе. Проблема заключается в том, что в Joomla все меню существуют независимо друг от друга, и это создает проблемы при отображении пути.

Постановка задачи

Главное меню:
- Кухня
- Салон красоты
- Детская

Зайдя в раздел «Кухня», посетитель видит внутреннее меню:
- Салаты
- Закуски
- Супы

При посещении страницы одного из рецептов вы видите такой путь:
Главная -> Салаты -> Салат деревенский

Но нам бы хотелось видеть путь:
Главная -> Кухня -> Салаты -> Салат деревенский

Как это реализовать?

  1. Сначала вам придется создать в главном меню (mainmenu) всю структуру сайта вместе с подкатегориями, которые войдут в подменю. Это послужит для нас как бы картой сайта.

    • Кухня
      • Салаты
      • Закуски
      • Супы
    • Салон красоты
      • Косметика
      • Прически
    • Детская
      • Здоровье
      • Воспитание

  2. Создаем новое меню в Менеджере меню (Menu Manager). Назовем его mainmenu_real, название модуля выберите сами. Здесь мы создаем основные категории как пункты меню типа Link - URL, базируясь на настоящих адресах страниц, которые были созданы в главном меню.

    Начнем с категории «Кухня». Заходим в Главное меню (mainmenu) в редактирование категории «Кухня». Там мы видим строку под названием URL, копируем ее в буфер. Затем идем в mainmenu_real и создаем там новый пункт типа Link - URL. В поле Name вписываем название «Кухня», а в строку Link вставляем содержимое буфера, то есть скопированную нами ссылку из главного меню. По такому же принципу создаем пункты «Салон красоты» и «Детская». Подкатегории пока не трогаем.

  3. Создаем меню для первой категории меню. Называем его kitchen, имя модуля «Кухня». Идем в главное меню в редактирование подкатегории «Салаты». Копируем оттуда URL. Затем идем во вновь созданное меню kitchen и создаем там новый пункт типа Link - URL. В поле Name вписываем название «Салаты», а в строку Link вставляем скопированную нами ссылку из главного меню. Обратите внимание: в Parent Item оставляем значение Top. Точно также создаем пункты «Закуски» и «Супы».

    Аналогичным образом формируем два меню beauty (для «Салона красоты») и child (для «Детской»).

  4. В модуле, который отображает главное меню, выбираем mainmenu_real вместо mainmenu. Затем привязываем публикацию модуля «Кухня» к пунктам главного меню «Кухня», «Салаты», «Закуски», «Супы». Аналогично осуществляем публикацию остальных модулей меню. Обратите внимание, что при назначении страниц публикации модулей будут отображаться пункты Главного меню (mainmenu), так как по сути оно и является настоящим меню, а созданные нами дополнительные модули меню — всего лишь ссылки на него.

Заключение

  1. Развивая ваш сайт, не забывайте, что все новые разделы создаются ТОЛЬКО в mainmenu, а в дополнительных меню создаются лишь ссылки на них.
  2. Шаг 2 можно пропустить и использовать само mainmenu в случае, если вы выводите его в горизонтальном виде (подпункты в этом случае просто не будут отображаться)

Joomla!® CMS — пожалуй, лучшая система управления контентом с открытым исходным кодом

Логотип Joomla

Joomla! — это больше, чем просто программное обеспечение, это люди, включающие разработчиков, дизайнеров, системных администраторов, переводчиков, копирайтеров, и, что самое главное — простых пользователей.

Мы рады пригласить вас в ряды нашего сообщества!

Свернуть

Коротко о главном в Joomla

Новости портала

Новое в блогах

Видео

Форум о Joomla