Модуль «Меню» предназначен для реализации всего одной функции, а именно построения меню сайта, для того что бы пользователи сайта могли осуществлять по нему (по сайту) навигацию.
Меню сайта строится из структуры сайта и может быть представлено как в виде простой линейной навигации, так и более сложной – древовидной.
Модуль не имеет свойств.
Название свойства | Варианты значения | Описание |
---|---|---|
Видимость страницы | «Отображать» или «Не отображать» | С помощью этого свойства вы может скрыть необходимые страницы (или разделы) из меню сайта. Для этого соответственно необходимо в качестве значения выбрать «Не отображать». Для того, что бы по умолчанию все страницы попадали в меню, рекомендуем у главной страницы сайта установить значение этого в свойства в «Отображать». |
Таб. 1: Перечень свойств модуля «Меню», прописываемые к каждой странице сайта.
В Таб. 1 представлено единственное свойство к странице, используемое модулем «Меню» Не забывайте устанавливать значение данного свойства, так как в случае если оно у страницы не определено, то страница не попадёт в сформированное меню.
Модуль «Меню» может строить два разных типа меню, а именно «статическое меню» и «динамическое меню». Совокупность двух методов построение контента позволит реализовать 99% вариантов меню вашего сайта.
Перед тем как рассмотреть эти два действия, давайте поставим задачу, которую надо решить с помощью модуля меню, с тем, что бы на конкретном примере увидеть, различия двух действий.
Для этого, предположим, что на момент сборки сайта у нас имеется следующая структура представленная на Рис 2. Каждый блок, соответствует определённой странице сайта. Для каждой страницы указано её название и уникальный идентификатор (в скобках).
![]() |
Рис. 1: Структура сайта, представленная в виде схемы. Разными цветами представлены страницы, относящиеся к разным уровням. |
---|
Теперь, исходя из структуры сайта, перед модулем меню стоят следующие задачи:
Теперь рассмотрим в отдельности каждое действие, их сразу приведём варианты его использования для поставленной задачи.
Особенность данного метода состоит в том, что формируемое с помощью него меню будет всегда доступно для пользователя сайта. Количество выводимых страниц и их взаиморасположение ни как не будут зависеть от того, на какой сейчас странице находится пользователь.
Такое меню строится для разделов структуры, которые всегда должны быть доступны пользователю сайта, например это может быть навигация по языкам сайта, или навигация по основному меню сайта.
Как вы, наверное, уже поняли, данное действие идеально подходит для выполнения задачи по выводу меню быстрого доступа. Рассмотрим параметры, которые необходимо указать при создании действия по формированию статического меню:
Название параметра действия | Варианты значений | Описание |
---|---|---|
Страница начала построения | Выбирается конкретная страница сайта с помощью визуальных средств. Так же, значение идентификатора страницы может быть введено вручную | Необходимо указать, от какой страницы в структуре сайта будет происходить построение меню. В меню попадут все страницы, которые являются дочерними для выбранной. |
Количество выводимых уровней | Число от 1 до 6 | Определяет количество уровней в структуре, которые будут отображены при построении меню. Уровни считаются от уровня выбранной страницы построения. |
Шаблон | Выбирается один из списка доступных шаблонов. | Указанный шаблон будет использоваться для формирования визуального представления меню. |
Таб. 2: Перечень параметров действия «сформировать статическое меню».
Название параметра действия | Варианты значений |
---|---|
Страница начала построения | fastpage |
Количество выводимых уровней | 1 |
Шаблон | static_menu.html |
Таб. 3: Таблица со значением параметров действия для вывода раздела быстрого доступа.
Применяя данное действие для нашей задачи, мы получаем следующие параметры действия, которые представлены. Если расшифровать данные параметры, то получается, что в меню попадут все страницы, которые являются дочерними страницами первого уровня по отношению к странице «Быстрый доступ» (fastpage).
Ещё хочется обратить внимание на то, что меню, построенное таким образом, всегда будет отображаться на сайте (при условии правильного оформлению шаблона и установки параметра модуля к странице), в независимости от того, какая страница сайта из структуры является текущей.
Отличие данного действия в том, что построенное с его помощью меню будет зависеть от того, на какой странице сайта находиться пользователь сайта.
Такое меню используется для большинства задач, в том числе и при разделении меню первого уровня и меню второго уровня (и ниже) в разных областях страницы сайта. В Таб. 4 представлены параметры, которые необходимо использовать при создании данного действия.
Параметр действия | Варианты значений | Описание |
---|---|---|
Страница начала построения | Выбирается конкретная страница сайта с помощью визуальных средств. Так же, значение идентификатора может быть введено вручную | Необходимо указать, от какой страницы в структуре сайта будет происходить построение меню. |
Уровень начала построения | Число от 1 до 6 | Уровень в структуре сайта (относительно странице начала построения), с которого будет начинаться формирования меню. |
Количество выводимых уровней | Число от 1 до 6 | Определяет количество уровней в структуре, которые будут отображены при построении меню. Уровни считаются от уровня выбранной страницы построения. |
Шаблон | Выбирается один из списка доступных шаблонов. | Указанный шаблон будет использоваться для формирования визуального представления меню. |
Таб. 4: Перечень параметров действия «сформировать динамическое меню».
Название параметра действия | Варианты значений |
---|---|
Страница начала построения | rus |
Уровень начала построения | 1 |
Количество выводимых уровней | 2 |
Шаблон | extended.html |
Таб. 5: Таблица со значением параметров действия для вывода меню сайта.
Для того, что бы построить меню основных разделов и подразделов мы должны задать значения параметров действия, указанные в Таб. 5.
При построении такого меню, подразделы будут выведены подразделы только текущего раздела.
Если разница между двумя действиями вам всё ещё не понятна, обратитесь к следующему разделу документации, или же вы можете самостоятельно поэкспериментировать с модулем меню.
Главное, что необходимо помнить, при использовании «динамического меню», это то, что сформированное таким способом меню зависит от того, на какой страницы сейчас находиться пользователь сайта.
Давайте ещё раз обозначим разницу двух действий модуля «Меню». Для того, что бы визуально разделить два этих действия и ощутить разницу между ними рассмотрим блок схемы со структурой сайта.
На Рис. 2 представлена блок схема структуры гипотетического сайта. Пусть вас не пугает изобилие блоков (страниц). Главное, что из этой схемы необходимо вынести – данная структура представлена страницами тремя уровня. «Основной раздел» – страницы первого уровня, «Раздел» – страницы второго уровня и «Подразделы» – страницы третьего уровня (Рис. 2)
Название параметра действия | Варианты значений |
---|---|
Страница начала построения | Раздел 2.3 |
Количество выводимых уровней | 1 |
Шаблон | static_menu.html |
Таб. 6: Таблица со значениями параметров действия для формирования статического меню.
Теперь, допустим, необходимо, что бы на сайте постоянно отображались страницы «Подраздел 2.3.1», «Подраздел 2.3.2» и «Подраздел 2.3.3».Для этого используется только действие «постоянное меню». В качестве страницы начала формирования указывается идентификатор страницы «Раздел 2.3», а в качестве выводимых уровней выставляется в значение «1».
Статическое меню не должно вызывать особых сложностей и потому перейдём к формированию динамического меню. Представим, что пользователь сайта находиться на странице «Подраздел 1.3.2», и тогда ему динамическое меню сформирует такое меню, которое показано на Рис. 4. Красным цветом отмечены те страницы, которые будут обрабатываться при построении меню.
![]() |
Рис. 3: Схема страниц сайта, в случае, когда пользователь находится на странице «Подраздел 1.3.2» (оранжевый блок). Красные блоки показывают те страницы, которые попадут в сформированное меню. |
---|
Теперь, допустим, если пользователь решит просмотреть страницу «Раздел 3.1» то сформированное меню примет вид, показанный на Рис. 4.
![]() |
Рис. 4: Схема страниц сайта, в случае, когда пользователь находится на странице «Раздел 3.1» (оранжевый блок). Красные блоки показывают те страницы, которые попадут в сформированное меню. |
---|
Название параметра действия | Варианты значений |
---|---|
Страница начала построения | Главная страница |
Уровень начала построения | 1 |
Количество выводимых уровней | 3 |
Шаблон | main.html |
Таб. 7: Параметры действия «сформировать динамическое меню», для построения меню разделов всех уровней.
Как вы можете видеть (Рис. 4 и Рис. 5), пользователю сайта будет сформировано меню без включения «лишних» разделов. Как уже говорилось, такой способ формирования меню используется в большинстве стандартных случаев. А что бы вывести такое меню, необходимо использовать параметры указанные в Таб. 7.
Название параметра действия | Варианты значений |
---|---|
Страница начала построения | Главная страница |
Уровень начала построения | 1 |
Количество выводимых уровней | 1 |
Шаблон | menu_line.html |
Таб. 8: Параметры действия «сформировать динамическое меню», для построения меню только основных разделов.
Следует учесть, что используя одно действие (с параметрами указанными в таб. 7) для вывода меню, показанного на Рис. 4, всё меню будет выведено в один блок (в одну область страницы). Довольно часто перед разработчиком встаёт задача вывода основного меню отдельно от меню вложенных разделов. Для того, что бы реализовать эту задачу используются два действия «сформировать динамическое меню», но с разными параметрами.
Первое действие формирует меню основных разделов, для чего используются параметры, указанные в Таб. 8. Вызов такого действия сформирует меню только из основных разделов. Справедливости ради, следует сказать, что в данном случае, для построения меню основных разделов подойдёт и действие «сформировать статическое меню», так как основные разделы сайта ни как не будут меняться при навигации пользователя по структуре, приведённой на рисунках 3 и 4.
Название параметра действия | Варианты значений |
---|---|
Страница начала построения | Главная страница |
Уровень начала построения | 2 |
Количество выводимых уровней | 2 |
Шаблон | menu_tree.html |
Таб. 9: Параметры действия «сформировать динамическое меню», для построения меню разделов и подразделов для текущего основного раздела.
Второе действие формирует меню вложенных разделов, которое будет выводиться в другой части страницы, и для его создания необходимо использовать только «сформировать динамическое меню» с параметрами, указанными в Таблице 9.
Ещё необходимо отметить, что внешний вид меню полностью определяется шаблоном, используемым для его построения.
Теперь давайте рассмотрим блоки и переменные, используемые в шаблонах для построения меню. Модуль «меню» может использовать достаточно много блоков. Рекомендуем внимательно ознакомиться с этим разделом, чтобы иметь представления о том, как реализовывать сложные (в графическом плане) меню сайта.
Сначала опишем блоки, чаще всего необходимые для построения меню, а затем уже более сложные, без которых иногда не обойтись.
Заголовок блока | Замены при отсутствии | Описание |
---|---|---|
@begin | Пустая строка | Выводится один раз, перед самым началом построения меню. |
@link - | Выводится для элемента меню (страницы сайта), на который(-ой) может перейти пользователь. | |
@activelink | @link | Выводится для элемента меню (страницы сайта), на котором(-ой) сейчас находится пользователь. |
@passiveactive | @link | Выводится для элемента меню, который находится в текущей дороге пользователя, и выше по уровню от текущей страницы. |
@delimiter | Пустая строка | Выводится между любыми элементами меню. |
@end | Пустая строка | Выводится один раз, в самом конце построения меню. |
Таб. 10: Перечень основных блоков, используемых для построения меню.
Если какой-то блок не найден, но он необходим для построения меню по данному шаблону, то будет использован блок, указанный в колонке «Замена при отсутствии». Большинство блоков, представленных в Таблице 10, должны быть понятны, поэтому заострим наше внимание только на одном, а именно на «@passiveactive».
Этот блок используется для выделения страницы, на которой пользователь сейчас не находится, но в тоже время, она относится к текущей странице, так как находится в одной ветке с ней. Другими словами, если вы находитесь на странице «Подраздел 2.3.2», то этот блок будет вызываться для «Раздел 2.3» и для «Основной раздел 2» (Рис. 4).
Дизайн меню может быть выполнен (свёрстан) таким образом что, вам будет не хватать базовых блоков для построения меню. Для реализации более сложных меню введены дополнительные блоки, указанные в Таблице 11:
Заголовок блока | Замены при отсутствии | Описание |
---|---|---|
@beginactiv | @begin | Если указан, то будет выводиться перед началом меню, когда первый элемент меню является активным (т.е. выбранным пользователем), и замещает собой блок @begin |
@delimiteractivstart | @delimiter | Если указан, то будет выводиться перед блоком @activelink, заменяя собой блок @delimiter |
@delimiteractivend | @delimiter | Если указан, то будет выводиться после блока @activelink, заменяя собой блок @delimiter |
@endactiv | @end | Если указан, то будет выводиться в самом конце меню, когда активным является последний элемент меню, и замещает блок @end |
Таб. 11: Перечень дополнительных блоков, используемых для построения меню. Если какой-то блок не найден, но он необходим для построения меню по данному шаблону, то будет использован блок, указанный в колонке «Замена при отсутствии».
Как вы можете заметить, представленные в Таблице 11 блоки позволяют изменять блоки «@begin», «@delimiter» и «@end» рядом с блоком активной страницы. Данная возможность может понадобиться для построения меню со сложным графическим оформлением, когда активный элемент меню влияет на отображение соседних элементов.
Для построения древовидных меню вам необходимо будет активно использовать блок уровня, так как в большинстве случаев, вам будет нужно, чтобы страницы более низких уровней выводились с какими-то изменениями (меньшим шрифтом, с отступом и т.п.).
Как уже говорилось, для этого используется блок «@@nextlevel», который указывается после любого из основных и дополнительных блоков и определяет их (эти блоки) для страниц следующего уровня.
Для получения примера использования блока уровня обратитесь к подразделу «Блок уровня» раздела «Общие особенности всех модулей».
Опишем переменные, которые могут быть использованы в блоках шаблона. Их немного, и они достаточно просты, поэтому у вас не должно возникнуть трудностей с их использованием.
Переменная | Блоки использования | Значение переменной |
---|---|---|
text | Все | Название выводимой страницы. |
link | Все | Относительная ссылка, вида «/id_page.html», для осуществления клика и перехода на данную страницу. |
id | Все | Уникальный идентификатор данной страницы. |
level | Все | Уровень текущей страницы в формируемой структуре меню. Значения всегда начинается с нуля, независимо от действия и его настроек. |
Таб. 12: Перечень переменных, используемых в блоках модуля «Меню», для непосредственного построения меню.
Иногда возникает необходимость особым образом выделять первую ссылку в меню или последнюю.
Для этого конструкцию %link% и %text% можно помещать в секциях
<!-- @begin -->
и
<!-- @end -->
Для выделения активности или пассивности линка можно сюда же включить секции
<!-- @beginactiv -->
и
<!-- @endactiv -->