Меню в Joomla — добавление (вложенного или выпадающего), а так же создание и настройка модуля для его отображения на сайте

31 мая, 2010Рубрика: Самоучитель Joomla

Здравствуйте, уважаемые читатели блога KtoNaNovenkogo.ru. В предыдущих статьях я уже рассказывал о структуре шаблонов для Joomla (тут). А в них обязательно будут предусмотрены специальные места (позиции), предназначенные для вывода различных модулей с меню (ну, или другим содержимым).

Возможности и назначение меню в Joomla


Хотя, конечно же, для более быстрой и полной индексации лучше использовать карту сайта. Читайте подробнее о ее создании на базе Xmap — здесь. В шаблоне позиции для меню обычно предусмотрены слева или справа, а так же и в верху (горизонтальные меню) под шапкой (либо над ней). Нет, конечно же, их можно вставить в любую имеющуюся позицию, но чаще всего используют именно перечисленные выше.

На начальном этапе знакомства с Джумлой, как правило, возникают небольшие затруднения с созданием и отображением разнообразных менюшек. Тут, собственно, проблема кроется в том, что пользователь, создав его, но не увидев на сайте, не понимает, что именно он сделал не так. Но они будут видны только после того, как вы их вставите в какую-либо позицию шаблона и никак иначе.

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

Получается, что это даже нечто большее, чем просто навигация по вашему проекту. В статичном сайте, построенном на одних HTML файлах, можно просто ссылаться на страницы с других, при этом не добавляя их все в элементы навигации по вебсайту (они существует в любой момент времени и имеют свой адрес).

В нашем же движке все несколько иначе. Страницы формируются в реальном времени только после обращения к ней по Урлу, а этот самый URL появляется только после создания ссылки на нее в меню.

Хитрая система, которую не сразу получается до конца осознать. Более подробно об этом можете почитать в статье про принципы работы CMS Joomla (здесь). Иногда специально создают фиктивные менюшки, которые не отображаются (не публикуются), но которые позволяют получить живые Урлы для нужных вам страниц.

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

В админке мы задаем только каркас – создаем различные пункты, в том числе и вложенные, а так же настраиваем варианты отображения материалов вашего сайта при переходе по данному пункту (на него, например, можно повесить открывание одной единственной статьи или же целой категории или раздела в Joomla с большим количеством материалов).

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

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

Кстати, в Джумле есть одна замечательная возможность при работе с модулями, которая может позволить вам создавать менюшки, которые будет видно только на тех страницах, на которых вы захотите, а на остальных этот элемент навигации не будет отображаться или же на его месте будет отображаться что-то другое.

А можно сделать так, чтобы он было доступно (видно) только, например, зарегистрированным пользователям или же вообще только администраторам проекта (тут читайте про группы пользователей в Joomla). Очень удобно и функционально получиться может.

Модуль с новым, только что вами созданным меню, формируется автоматически, но он не публикуется до тех пор, пока вы этого не захотите. Оно и понятно, ведь он же может сам догадаться, в какое именно место шаблона вы захотите его воткнуть. Это как раз и вызывает некоторые затруднения у новичков.

Создание нового меню в админке Джумлы


Для начала вам нужно зайти в админку и выбрать сверху «Все» -«Меню» (в другом переводе этот пункт называется более правильно — Менеджер менюшек).

В результате вы попадете в своеобразный менеджер, где сможете создавать новые элементы навигации, редактировать уже существующие или удалять ненужные. По умолчанию, после установки Joomla (тут читайте про это), у вас уже будет создано одно меню под названием «Main Menu», в котором будет прописан один единственный пункт «Home».

Для создания нового нужно будет нажать на кнопку «Создать», расположенную в верхней правой части страницы менеджера:

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

В поле «Системное имя» вам нужно будет задать его название, но не простое, а для базы данных. Поэтому желательно не использовать при задании системного имени пробелов, а символы на всякий случай лучше использовать латинские. В поле «Заголовок» вы задаете ему обычное человеческое название русскими буквами и именно там вы его и будете видеть в окне менеджера.

Следующие два поля не обязательны для заполнения, но вы, тем не менее, можете их использовать. В графе «Описание» можете ввести любую информацию для того, чтобы вам самим было потом понятно, что оно содержит или же где оно выводится.

В графе «Заголовок модуля» можете дать название для модуля с новым меню, который еще не существует, но будет автоматически создан сразу после того, как вы нажмете кнопку «Сохранить». Но если вы не заполните этот пункт, то, как это ни печально, модуль создан не будет. Хотя в этом нет ничего страшного, ведь вы всегда можете создать его вручную. Как это сделать? Довольно просто.

Вам нужно будет после того, как создали новую менюшку (возможно вы так же создадите в нем и нужное вам количество пунктов), перейти в «Расширения» — «Менеджер модулей». Там увидите все элементы этого типа, которые были созданы до этого. Если бы вы заполнили поле «Заголовок модуля», то в этом списке присутствовал бы и тот, который создается автоматически.

Например, если вы посмотрите на рисунок расположенный выше, то увидите, что я заполнил поле «Заголовок» и теперь наблюдаю следующую картину:

В колонке «Включен», напротив этого модуля, стоит красный крест, означающий, что он пока не отображается на сайте, но если вы щелкните по этому красному кресту, то он тут же включится (опубликуется) и вы сможете увидеть, наконец, свою навигацию в позиции под названием LEFT, если такая имеется в используемом вами шаблоне.

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

Но если вы не заполнили поле «Заголовок» при создании нового меню, то модуль для него автоматически создан не будет и вам придется сделать это вручную. Для этого в их менеджере вам нужно будет нажать на кнопку «Создать», расположенную в верхнем правом углу окна.

Вы увидите список типов модулей, которые сможете создать (после установки новых расширений этот список будет расширяться).

Вам нужно найти среди всего этого многообразия пункт «Меню», расположенный в правой колонке. Щелкните по нему и попадете на страницу настройки.

Вообще-то, левая колонка окна настройки одинакова для всех типов модулей в Joomla:

Поле «Заголовок» является обязательным для заполнения, даже если не собираетесь отображать это название на сайте. Вы вправе выбирать это в графе «Показать заголовок», поставив галочку в поле «Да» или «Нет».

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

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

Включить сможете его потом прямо из менеджера, щелкнув по красному кресту в колонке «Включен» напротив его названия (см. предпоследний рисунок).

Как произвести сортировку модулей, расположенных в одной позиции шаблона

Кстати, гораздо удобнее проводить окончательную сортировку не на странице настроек каждого отдельного модуля (замучаетесь их открывать), а на странице менеджера, на которой отображаются сразу они все. Для этого вам нужно будет воспользоваться системой фильтров, имеющихся на странице менеджера.

Они расположены справа, сразу над таблицей со списком модулей. Нас интересует второй фильтр слева, позволяющий выбрать только те модули, которые расположены в определенной позиции.

Выбираете из выпадающего списка фильтра нужную вам позицию. В результате останутся только те модуля, которые в ней расположены. Теперь для их сортировки (определения порядка их следования на сайте) можете воспользоваться одним из двух инструментов, помогающих осуществить эту нелегкую операцию.

Если предметов сортировки не много, то можно их отпозиционировать с помощью зеленых стрелочек «Вверх-Вниз». Если их в данной позиции шаблона много, то можете вписать номер следования для каждого из них в поле колонки «Сортировка», а затем нажать на иконку дискетки, расположенную рядом с названием колонки «Сортировка», тем самым вы примените все ваши изменения.

Мы немного отвлеклись от настройки нашего модуля, c вновь созданным меню Joomla. В поле «Доступ» на странице настройки можете выбрать один из трех вариантов, определяющих, кому будет виден на вашем сайте этот модуль.

Можно выбрать вариант «Всем», либо вариант «Registered», означающий, что он будет не виден не зарегистрированным пользователям, либо вариант «Специальный» — его смогут увидеть только администраторы проекта (удобно в такой засовывать ссылки на доступ в админку Джумлы или, например, админку VirtueMart (тут см. список статей по созданию интернет магазина на бесплатном движке).

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

Если вы переставите галочку в позицию «Выбрать из списка», то сможете, удерживая SHIFT или CTRL на клавиатуре, выбрать все страницы Joomla, на которых он будет выводиться. Я сказал выбрать страницы, но на самом деле это не совсем так.

Как я уже говорил выше, в Joomla страницы существуют, только если на них есть ссылка из какого-либо меню (пусть даже и фиктивного). Так вот, в списке «Выбор» вы выбираете именно пункты менюшек, а не реальные вебстраницы вашего сайта.

Страница настроек модуля с меню в Joomla — правая колонка


С левой колонкой настроек модуля для нового меню покончено, переходим к рассмотрению в правой. Настройки там сосредоточенны в трех вкладках. Начнем с первой, которая называется «Параметры модуля»:

В принципе, во всей правой колонке обязательным для заполнения является только графа «Название», в котором вы должны будете выбрать из выпадающего списка то новое меню, для которого вы создаете этот модуль. Остальные поля необязательны к заполнению и предназначены они для тонкой настройки его внешнего вида.

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

В случае варианта «Список», меню будет формироваться на основе тегов HTML списка (здесь подробности), позволяющих создавать выпадающие меню с помощью вложенных друг в друга списков с тегами UL и LI.

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

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

Довольно хитрая, но удобная система навигации по сайту, которую можно реализовать воспользовавшись полями «Начальный уровень» и «Последний уровень» в настройках.

В поле «Всегда показывать вложенные подпункты» по умолчанию галочка стоит в поле «Нет», но если вам, например, в боковом меню понадобится отображать не только пункты верхнего уровня, но и вложенные (уровень вложенности можно задать в расположенном выше поле «Последний уровень»), то переставьте галочку в этом поле в положение «Да».

Вам так же могут понадобиться настройки, находящиеся во второй вкладке, которая называется «Расширенные параметры»:

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

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

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

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

Именно на вкладке «Расширенные параметры» в поля «Суффикс класса» можно добавить нужные, которые позволят реализовать, например, выпадающее меню (Суффикс класса менюшки) или же придать модулю нужный вам внешний вид (Суффикс класса модуля). Какие именно суффиксы вставлять в эти поля, нужно выяснять на домашней страничке разработчика, используемого ваши шаблона.

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

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

Анализ сайта: Проверка Траста
Не хотите пропустить новую статью? Подпишитесь и Вы всегда будете на острие атаки!
А пока новая статья не вышла ознакомьтесь с предыдущими:
  1. Шаблоны для сайта на Joomla — выбор платной или бесплатной темы,
  2. Расширения для Joomla (компоненты, модули и плагины) — что это такое
  3. Группы пользователей в Joomla, настройка кэширования и проблема отправки почты
  4. Визуальный редактор Jce, оптимальный Title, активация ЧПУ (SEF) и другие
  5. Установка Joomla 1.5 в деталях и картинках, решение возможных проблем
  6. CMS Joomla – принципы работы бесплатной системы управления контентом, создание

Комментарии
Алёна

Спасибо за полезную статью! Хотелось бы еще про нестандартное меню в Joomla прочитать, например, аккордеон.

Мелифаро

спс

Дмитрий

Ребят, пожалуйста, рад, что вам понравилось. Хороший пример насчет меню Joomla, которое не стоит кэшировать (сам не пользовался, поэтому и не учел такой вариант).

Эля

Отличная статья)

krot

для себя полезное нашел

LEbEdEV

Где взять скрипт «Спасибо Вам за добавление этой статьи в» ?

Дмитрий

LEbEdEV: здесь, но только для Joomla это, боюсь, не подойдет.

Максим

Статейка супер!!! Весь день искал что то подобное, ничего не получалось, пока не наткнулся на Ваш сайт. Спасибо!!!

Alex

Здравствуйте Дмитрий.

1) Очень рад что нашел ваш ресурс.

Действительно много развернутой и доходчивой информации.

Везде информация разбросанная, или отрывочная.

А у вас более менее собрана и последовательна.

Мне кажется что логика создания страниц в Joomla!

Это главное и первое что нужно понять новичку.

Я вообще был в ступоре, и уже начинал сомневаться в своих умственных способностях. :)

Так как с PHP до этого не сталкивался.

И знания HTML только в общих чертах.

У вас многое прояснил для себя. и самое главное, понял логику создания страниц.

От себя хочу добавить. Что восприятия и ассоциации информации у людей разные.

Для кого-то это список ссылок заключенный в рамку оформления.

Для других это «блок» с отдельными элементами управления.

А для третьих это и «модуль» и «блок» и «список»...)))

И по моему мнению. Именно в разных ассоциациях этих терминов,

для разных людей и кроется загвоздка, трудноусвояемости логики Joomla!.

Нигде еще не видел «Единого» скрина. Хотя бы стандартного шаблона. Где четко бы описывались названия для каждой области. То-есть названия, ассоциации и термины джумловкие. Относящиеся к объектам на этом скрине.

Со стрелочками-рамочками и т.д Что-бы человек работая в Joomla! мог смотреть на этот скрин. И визуально понимать и видеть, какой компонент в данный момент он создает и как он в джумле называется. И сознание — асоциации в этот момент у человека будут менятся и ломаться на Joom — ловские )))

Надеюсь что суть и логика моих суждений понятна...

так как 80% восприятия мира у нас все-таки визуальное.

2) И еще Дмитрий, поправьте меня если я не прав... Я так понял что «Главное меню» в Joomla или «Главная» существующее по умолчанию.

Существует лишь для того что-бы главная страница сайта могла просто загрузиться? И если это так. То что с ней делать если эта менюшка мне не нужна? Или я хочу его изменить? Просто сделать по умолчанию нужное мне? А то что было смело удалить...Так получается... по логике Joomla!...

И спасибо еще раз за ваши труды, реально помогают !

iPad

Ммм... Есть очень много интересных моментов... Спасибо...

очень полезно для тех, кто только начинает изучать Джумлу)

Sashkas

Подскажите, как сделать горизонтальное меню, вот такого шаблона http://www.yootheme.com/demo/jun10/

Alex

Sashkas:

По идее, если в шаблоне предусмотрено...

То должно, включатся в настройках шаблона.

Функционал и параметры справа.

Alex

Sashkas

Но для этого сначала нужно создать сами меню.

А потом модули и привязать их к месту, предусмотренному шаблоном.

Что бы посмотреть (модули вашего шаблона) В шаблоне, когда зайдете в настройки, нажмите кнопку "Предварительный просмотр, значек лупы...

Sashkas

Alex:

Спс =) там картинка предусмотренное место в шаблоне закрывала (.

Геннадий

отличный сайт! неимоверное количество полезной инфы!!

но даже здесь я не смог найти ответ на вопрос — как мне в горизонтальной позиции выводить модули горизонтально? они у меня строятся один за другим вертикально. уже перепробовал все, что можно.

може кто-нить натолкнет на идею, а то сутки бьюсь безрезультатно...

заранее спасибо!

Alex

Sashkas:

Да ...всякое бывает.

Бывает что над пустяком, бъешся днями.

А решение под носом. Нужно только отдохнуть и свежим умом прикинуть)

Капитан

Спасибо, сейчас буду учиться)

sander-fan

Alex: Alex говорит, что:

логика создания страниц в Joomla!

Это главное и первое что нужно понять новичку.

Я вообще был в ступоре, и уже начинал сомневаться в своих умственных способностях.

полностью согласен. нужна помощь-н могу создать новый модуль для нового меню.

Dima

Спасибо за познавательную информацию и за Ваши труды в целом. Если не затруднит, дополните пожалуйста статью. Хотелось бы получить информацию о выделении активного пункта меню. Дело в том, что при установке Joomla с демо данными — выделение активного элемента верхнего меню замечательно работает. Без установки — нет. Я не спец в каскадных стилях, но и туда уже заглянул, вроде идентичны и стили шаблона и настройки. Проблема мелочна, но довольно мало информации по ее решению в сети. И я уверен,что найду ее решение быстрее, чем получу ответ здесь. Но на всякий случай прошу помощи в этом вопросе. Может поможет такому же дундуку, как и я в будущем :)

Vyacheslav

Подскажите пожалуйста, как сделать в личном кабинете (на сайте presreliz.ru) утвержденные модератором статьи? Заранее спасибо.

Coolishe

Спасибо, самый удачный ресурс по Joomla!

Пока делаю первые сайты все время сюда захожу.

Как доведу до ума свои проекты — обязательно поставлю ссылку на ваш ресурс!

игорёс

на сайте в правйо колонке создал несколько менюшек стандартным модулем mod_mainmenu

Но вот что мне не нравится, заголовки этих меню выделяются заголовками 3 уровня, а хочется, чтобы не грузить лишними загаловками, создать свой класс, скажем, menu_heding

Подскажите пожалуйста, где убрать эти теги заголовков и вставить своё?

Я так понял это на уровне PHP решается

Дмитрий

Спасибо,Андрей.Всегда структурированная информация . -с Вами не пропадешь в лабиринтах интернета)))

Анна

Где можно про это почитать по подробнее?:

«Иногда специально создают фиктивные менюшки, которые не отображаются (не публикуются), но которые позволяют получить живые Урлы для нужных вам страниц.»

Написать

(обязательно)

(обязательно)

При вставке любого кода, пишите его между [php] и [/php]

Это не спам (обязательно)

Подписаться без комментирования