Взято здесь
В предыдущих статьях я уже рассказывал о структуре шаблонов для Jooml. В любых шаблонах для Joomla обязательно будут предусмотрены специальные места (позиции), предназначенные для вывода в них различных модулей с меню Joomla.
Меню в Joomla призваны решать проблему удобной навигации не только для посетителей вашего ресурса, но и для поисковых роботов, которые могут зайти на любую страничку сайта и проиндексировать все оставшиеся страницы вашего ресурса, просто переходя по пунктам ваших меню.
Хотя, конечно же, для более быстрой и полной индексации страниц вашего ресурса, лучше использовать карту сайта. В шаблоне Joomla позиции для меню обычно предусмотрены слева или справа, а так же и в верху окна (горизонтальные меню) под шапкой (либо над ней). Нет, конечно же, меню в Joomla можно вставить в любую позицию шаблона для вывода модулей, но чаще всего для вывода меню используют именно перечисленные выше позиции.
На начальном этапе знакомства с Joomla, как правило, возникают небольшие затруднения с созданием и отображением на сайте разнообразных меню. Тут, собственно, проблема кроется в том, что пользователь, создав меню и не увидев его на сайте, не понимает, что именно он сделал не так и почему его не видно на сайте. Но меню в Joomla будут видны на сайте только после того, как вы их вставите в какую-либо позицию шаблона, предусмотренную для вывода модулей.
Т.е. получается, что созданное вами, с помощью инструментов админки Joomla, меню – это модуль, который нужно будет еще опубликовать, при этом, выбрав позицию в шаблоне, где будет отображаться этот модуль.
Меню в Joomla - это даже нечто большее, чем просто навигация по вашему проекту. В статичном сайте, построенном на одних HTML файлах, можно просто ссылаться на страницы сайта с других страниц, при этом не добавляя их все в элементы навигации по вебсайту (страница такого сайта существует в любой момент времени и имеет свой адрес). В Joomla все несколько иначе. Страницы в Joomla формируются в реальном времени только после обращения к адресу этой странички, а адрес у страницы в Joomla появляется только после создания ссылки на нее в меню.
Хитрая система, которую не сразу получается до конца осознать. Иногда, чтобы иметь возможность проставить ссылку из текста статьи на другую страничку своего же ресурса, которой нет в отображаемых на сайте меню, в Joomla создают фиктивные меню, которые не отображаются (не публикуются), но которые позволяют создать ссылки на нужные нам странички Джумла-сайта.
Внешний вид, созданного в Joomla меню, будет целиком и полностью зависеть от используемого вами шаблона. Пункты меню, в зависимости от используемого шаблона, например, могут менять цвет шрифта или фона, при наведении на них курсора мыши или же сдвигаться, открывая скрытую до этого информацию. Все это задается в файлах используемого шаблона Joomla (в файле каскадных таблиц стилей CSS из папки с используемым шаблоном). В админке Joomla мы задаем только каркас для меню – создаем различные пункты этого меню, в том числе и вложенные, а так же настраиваем варианты отображения материалов вашего Джумла-сайта при переходе по данному пункту меню (на этот пункт, например, можно повесить открывание одной единственной статьи или же целой категории или раздела Joomla с большим количеством статей).
Если вы установите новый шаблон для Joomla на ваш Джумла-сайт, уже готовый и имеющий нужную структуру меню, и сделаете этот новый шаблон используемым по умолчанию, то поменяется и внешний вид меню в Joomla. Более того, некоторые из них вообще могут перестать отображаться, т.к. в новом шаблоне может либо не быть тех позиций для вывода модулей, которые использовались в старом шаблоне для вывода этих модулей с меню Joomla, либо эти позиции для модулей есть, но называться они будут уже по другому. Эта проблема решается довольно просто, выбором новой позиции для модуля с меню Joomla в настройках этого модуля, исходя из тех позиций для модулей, которые будут доступны в новом шаблоне.
Кстати, в Joomla есть одна замечательная возможность при работе с модулями, которая можете позволить вам создавать меню, которое будет видно только на тех страницах, на которых вы захотите, а на остальных страницах этот элемент навигации для Joomla не будет отображаться или же на его месте будет отображаться другой модуль Джумла с другим содержимым. Еще можно настроить модуль, в котором выводится меню так, чтобы это она было доступно (видно) только, например, зарегистрированным пользователям или же вообще только администраторам проекта. Все вышесказанное можно применить не только к модулю с меню целиком, но и к отдельно взятому пункту меню в Joomla.
При этом, при добавлении нового меню в Joomla автоматически будет создаваться соответствующий ему модуль, который вы можете увидеть в «Менеджере модулей» (в верхнем меню админки Joomla пункты «Расширения» - «Менеджер модулей»). Созданный модуль нужно будет еще опубликовать в нужной вам позиции шаблона (в любом шаблоне Joomla предусмотрены позиции для отображения различных модулей). Именно по этой причине модуль с новым, только что вами созданным меню, не публикуется на джумла-сайте автоматически, т.к. вы должны еще должны выбрать позицию в шаблоне Joomla, где будет отображаться меню.
Созданное в Joomla меню автоматически помещается в модуль (правда, не всегда автоматически, но об этом читайте ниже), с соответствующим названием. Именно в настройках модуля Joomla вы сможете выбрать внешний вид вашего меню, если это предусмотрено используемым вами шаблоном Joomla. За внешний вид модуля отвечает так называемый суффикс модуля. Если в вашем шаблоне предусмотрено несколько различных внешних видов модулей, то вы сможете прописать в настройке нужный суффикс и получить желаемый внешний вид модуля в Joomla.
Вообще в Joomla все довольно просто, но обязательно нужно знать последовательность действий, ибо интуитивно догадаться об этом зачастую просто не возможно. Ну, так уж получилась, что админка Joomla не имеет интуитивно-понятного интерфейса и вам придется немного почитать мануалы (свои статьи я считаю именно мануалами) по выполнению наиболее часто встречающихся операций, среди которых и создание и публикации в Joomla новых меню. Приступим.
Для начала вам нужно будет зайти в админку Joomla и выбрать из верхнего меню пункты «Все меню» -«Меню» (в другом переводе Joomla на русский язык, этот пункт называется более правильно - Менеджер меню).
[показать]
В результате вы попадете в своеобразный менеджер, где сможете создавать новые меню, редактировать уже существующие или удалять ненужные. По умолчанию, после установки Joomla, у вас уже будет создано одно меню под названием «Main Menu», в котором будет прописан один единственный пункт «Home».
Для создания нового меню в Joomla нужно будет нажать на кнопку "Создать", расположенную в верхней правой части страницы менеджера меню:
В результате откроется окно создания нового меню Joomla, в котором вам предложат заполнить четыре поля, причем обязательными к заполнению являются только первых два поля "Системное имя" и "Заголовок":
В поле "Системное имя" вам нужно будет задать имя для нового меню, которое в дальнейшем будет использоваться в коде, поэтому желательно не использовать при задании системного имени пробелов, а символы, на всякий случай, лучше использовать латинские. В поле "Заголовок" вы задаете название для этого меню, при этом можно использовать русские буквы и пробелы. Под этим названием вы будете видеть его в менеджере меню.
Следующие два поля не обязательны для заполнения, но вы, тем не менее, можете их заполнить. В поле "Описание" вы можете ввести описание этого меню, для того, чтобы вам самим было потом понятно, что оно содержит или же где оно выводится. В поле "Заголовок модуля" вы можете задать заголовок для модуля с новым меню Joomla, который еще не существует, но будет автоматически создан сразу после того, как вы нажмете кнопку "Сохранить".
Но если вы не заполните пункт "Заголовок модуля" на странице создания нового меню Joomla, то, как это ни печально, модуль создан не будет и вы не сможете вывести это меню на своем Joomla сайте, просто опубликовав автоматически созданный модуль. Хотя, в этом нем ничего страшного, ведь вы всегда можете добавить модуль для созданного меню Joomla вручную. Как это сделать? Довольно просто.
Вам нужно будет после того, как вы создали новое меню (возможно вы так же создадите в нем и нужное вам количество пунктов), перейти в "Менеджер модулей", выбрав из верхнего меню админки Joomla пункты "Расширения" - "Менеджер модулей". В открывшемся окне вы увидите все модули, которые были созданы на вашем Джумла-сайте. Если бы вы, при создании нового меню, заполнили бы поле "Заголовок модуля", то в этом списке модулей Joomla присутствовал бы и модуль, автоматически созданный для этого нового меню.
Например, если вы посмотрите на рисунок, расположенный выше, то увидите, что я заполнил поле "Заголовок модуля" и теперь, перейдя в менеджер модулей из админки Joomla, среди других модулей я могу наблюдать и автоматически созданный модуль для нового меню:
В колонке "Включен", напротив этого модуля, стоит красный крест, означающий, что этот модуль пока не отображается на Джумла-сайте, но если вы щелкните по этому красному кресту, то этот модуль тут же включится и вы, зайдя на свой Joomla сайт, сможете увидеть этот модуль с вашим новым меню в позиции для модулей под названием LEFT, если такая позиция имеется в используемом вами шаблоне Joomla.
Позиция для модулей под названием LEFT имеется практически во всех шаблонах для Joomla, поэтому она и выбирается по умолчанию при создании новых модулей. Но если вас эта позиция не устраивает, то вы всегда сможете зайти в настройки нужного модуля Joomla, просто щелкнув по его названию в менеджере модулей, и изменить позицию, в которой будет отображаться данный модуль, выбрав из выпадающего списка поля "Позиция" нужное название позиции для модулей, из имеющихся в используемом вами шаблоне.
Но если вы не заполнили поле "Заголовок модуля" при создании нового меню в Joomla, то модуль для него автоматически создан не будет и вам придется сделать это вручную. Для этого в менеджере модулей админки Joomla вам нужно будет нажать на кнопку "Создать", расположенную в верхнем правом углу окна. В результате откроется окно со списком всех модулей, которые вы сможете создать на вашем Joomla сайте (после установки новых расширений, этот список, доступных для создания модулей, будет расширяться).
Вам нужно найти среди всего этого многообразия пункт "Меню", расположенный в правой колонке. Щелкните по этому пункту и вы попадете на страницу настройки модуля для меню Joomla.
Вообще-то, левая колонка окна настройки модуля одинакова для всех модулей Joomla:
Поле "Заголовок" является обязательным для заполнения, даже если вы не собираетесь отображать название этого меню на сайте. Вы вправе выбирать это в пункте "Показать заголовок", поставив галочку в поле "Да" или "Нет". Наверное, если это меню будет одним единственным, то отображать его заголовок будет излишним, в вот если для каждого раздела вашего проекта будет создано по отдельному меню, то вполне логично будет назвать их созвучно названиям разделов Joomla и отображать их названия на вашем Joomla сайте. Так, например, это сделано на этом ресурсе, где в левой колонке выводятся меню, позволяющие просмотреть страницы разделов.
Вы можете включить модуль для нового меню Joomla, поставив галочку в поле "Да" напротив пункта "Включен". В этом случае после сохранения произведенных изменений, новое меню появится на вашем Joomla сайте. Если же вы пока еще не закончили работу над новым меню (еще не добавили в него все нужные пункты), то можете оставить галочку напротив пункта "Включен" в положении "Нет". Включить этот модуль вы сможете потом прямо из менеджера модулей, просто щелкнув по красному кресту в колонке "Включен" напротив названия данного модуля (см. предпоследний рисунок).
В поле "Позиция" вы сможете выбрать из выпадающего списка (включающего все доступные позиции для модулей в используемом вами шаблоне Joomla) нужную позицию для модуля нового меню в Joomla. Если в той позиции для модулей, которую вы выбрали, имеются еще какие-либо модули, то модуль с вашим новым меню можно будет позиционировать относительно других модулей в этой позиции вашего шаблона. Другими словами, мы можем определить порядок следования модулей в Joomla в позиции шаблона. Определение порядка следования для данного модуля осуществляется в поле "Сортировка".
Кстати, гораздо удобнее проводить окончательную сортировку модулей Joomla, расположенных в одной позиции шаблона, не на странице настроек каждого отдельного модуля (замучаетесь их открывать), а на странице менеджера модулей, на которой отображаются сразу все модуля, имеющиеся на вашем проекте. Для этого вам нужно будет воспользоваться системой фильтров, имеющихся на странице менеджера модулей в Joomla. Фильтры расположены справа, сразу над таблицей со списком модулей. Нас интересует второй фильтр слева, позволяющий выбрать из всех модулей Joomla, имеющихся у вас на сайте, только те, которые расположены в определенной позиции для модулей используемого вами шаблона.
Выбираете из выпадающего списка фильтра нужную вам позицию для модулей в шаблоне Joomla, в результате на странице менеджера модулей останутся только те модуля, которые расположены в этой позиции шаблона. Теперь для сортировки этих модулей (определения порядка их следования на Джумла-сайте), вы можете воспользоваться одним из двух инструментов, помогающих осуществить сортировку.
Если модулей в выбранной вами позиции шаблона не много, то можно их отпозиционировать с помощью зеленых стрелочек "Вверх-Вниз". Если же модулей в данной позиции шаблона Joomla много, то вы можете вписать номер следования для каждого модуля в поле колонки "Сортировка", а затем нажать на иконку дискетки, расположенную рядом с название колонки "Сортировка", тем самым вы примените произведенную вами с помощью цифр сортировку.
Мы немного отвлеклись от настройки нашего модуля, c вновь созданным меню Joomla. В поле "Доступ" на странице настройки модуля, вы можете выбрать один из трех вариантов, определяющих, кому будет виден на вашем Joomla сайте этот модуль. Можно выбрать вариант "Всем", либо вариант "Registered", означающий, что данный модуль будет не виден не зарегистрированным пользователям, либо вариант "Специальный" - модуль смогут увидеть только администраторы проекта.
В области "Назначение меню" вы сможете, при желании, выбрать на каких именно страницах вашего ресурса будет виден этот модуль с новым меню. По умолчанию стоит галочка в поле "Все", означающем отображение данного модуля на всех страницах вашего Joomla сайта. Если вы переставите галочку в позицию "Выбрать из списка", то сможете удерживая SHIFT или CTRL на клавиатуре, выбрать из списка все страницы Joomla, на которых будет выводиться модуль с меню.
Я сказал выбрать страницы, но на самом деле это не совсем так. Как я уже говорил выше, в Joomla страницы существуют, только если на них есть ссылка из какого-либо пункта меню (пусть даже и фиктивного). Так вот, в списке "Выбор меню" вы выбираете именно пункты меню, а не реальные страницы вашего Joomla сайта. Например, если вы выберете из этого списка пункт, по нажатии на который открываются все страницы какой-либо категории, то этот модуль будет виден на всех страницах этой категории. Так-то вот. Немного запутано, не правда ли?
С левой колонкой страницы настроек модуля Joomla для нового меню покончено, переходим к рассмотрению настроек, находящихся в правой колонке. Настройки в этой колонке сосредоточенны в трех вкладках. Начнем с первой вкладки, которая называется "Параметры модуля":
В принципе, во всей правой колонке, в настройках модуля нового меню, обязательным для заполнения является только поле "Название меню", в котором вы должны будете выбрать из выпадающего списка то новое меню Joomla, для которого вы создаете этот модуль. Остальные поля необязательны к заполнению и предназначены они для тонкой настройки внешнего вида создаваемого модуля с меню Joomla.
В поле "Стиль меню" в большинстве случаев вам нужно будет оставить вариант по умолчанию - "Список". Три другие варианта стиля немного устарели. При выборе вариантов "Вертикально" или "Горизонтально" наше новое меню будет выводиться при помощи HTML таблицы, а при выборе варианта "Плоский список" - при помощи маркированного списка. В случае варианта "Список", меню будет формироваться на основе тегов HTML списка, позволяющих создавать выпадающие меню с помощью вложенных друг в друга списков с тегами UL и LI.
В полях "Начальный уровень" и "Последний уровень" вы можете настроить отображение в создаваемом меню не всех уровней вложенности, а только пунктов определенных уровней вложенности, начиная с такого-то и заканчивая таким-то уровнем вложений. Если я не ошибаюсь, то существует такая вещь, как связанные меню в Joomla, суть которых заключается в следующем.
Например, в верхнем горизонтальном меню настраивается отображения только пунктов верхнего уровня, а в боковом меню будут выводиться пункты того же меню, но только начиная со второго уровня вложенности. Причем, для этих пунктов родительским элементом будет тот пункт из верхнего меню, по которому в данный момент перешел посетитель. Довольно хитрая, но удобная система навигации по сайту, которую можно реализовать просто воспользовавшись полями "Начальный уровень" и "Последний уровень" в настройках модулей верхнего и бокового меню Joomla.
В поле "Всегда показывать вложенные подпункты" по умолчанию галочка стоит в поле "Нет", но если вам, например, в боковом меню Joomla понадобится отображать не только пункты верхнего уровня, но и вложенные пункты (уровень вложенности, до которого будут отображаться пункты, можно задать в расположенном выше поле "Последний уровень"), то переставьте галочку в этом поле в положение "Да".
Вам так же могут понадобиться настройки модуля нового меню, находящиеся во второй вкладке, которая называется "Расширенные параметры":
Во-первых, в поле "Кэширование" вы можете отключить кэширование модуля с меню Joomla, в не зависимости от глобальных настроек кэширования на вашем Джумла-сайте. Отключать кэширование следует в первую очередь в тех модулях, в которых отображается динамичная, изменяющаяся со временем информация.
Во-вторых, наверное у многих из вас возникала ситуация, когда вы создавали вложенные пункты, вставляли это меню в ту позицию вашего шаблона Joomla, которая позволяла показывать эти вложенные пункты при подведении к родительским пунктам меню мыши, но при этом ничего не происходило. Причем, вы точно знаете, что в используемом вами шаблоне Джумла эта возможность была предусмотрена (видели это на демосайте шаблона или же на другом ресурсе, где используется такой же шаблон), но у вас вложенные пункты упорно не хотят отображаться. Вы начинаете искать концы в настройках меню и настройках пунктов этого меню, но ничего не находите и начинаете биться головой об стену, танцевать с бубном и ругать почем зря Joomla.
А ларчик-то просто открывался, просто не надо забывать, что за внешний вид меню в Joomla и его поведение на сайте отвечает модуль, в котором оно размещается. И следовательно решение этой проблемы нужно было искать именно в настройках модуля, а не в настройках самого меню и его пунктов. Именно на вкладке "Расширенные параметры" настройки модуля для меню, можно в поля "Суффикс класса меню" и "Суффикс класса модуля" добавить нужные суффиксы, которые позволят реализовать, например, выпадающее меню в Joomla (Суффикс класса меню) или же придать модулю с меню нужный вам внешний вид (Суффикс класса модуля). Какие именно суффиксы вставлять в эти поля нужно выяснять на домашней страничке разработчика, используемого ваши шаблона Joomla.
Настройки модуля с меню в Joomla на вкладке "Другие Параметры" я, обычно, не трогаю. Для того, что бы сохранить произведенные вами изменения на странице настроек модуля для нового меню, вам нужно будет нажать на кнопку "Сохранить" или "Применить".
В общем, работа с меню в Joomla не так уж проста и тривиальна, как это могло бы показаться в начале. Все значительно сложнее из-за тех нюансов, которые имеют место быть и которые надо знать, ибо в противном случае вы рискуете потратить массу времени и, что гораздо важнее, нервов, на решение простых вопросов, которые будут являться простыми, только в том случае, если вы знаете в каком месте искать ответ, а если нет, то все значительно усложняется.