Меню на сайтеМодуль «Меню на сайте» формирует меню любой сложности и в любом количестве.
Модуль состоит из 2х частей: пункты меню и меню.
Меню

Категории меню – это различные меню на сайте. Меню на сайте может быть неограниченное множество. Выводятся они на сайте с помощью шаблонного тега show_block module=menu (см. ниже).
Кнопка служит для удаления меню. Кнопка служит для быстрой публикации меню (или, наоборот, временного скрытия). При удалении меню удаляются все принадлежащие ему пункты меню.
Категории меню имеют следующие характеристики:
-
Название;
- Номер – номер меню, его id, подсказка для использования в шаблонном теге вывода меню;
-
Показывать на сайте – показывать ли меню на сайте;
-
Показывать заголовок – на сайте перед пунктами меню будет отображаться название меню
-
Раскрывать все пункты меню – на сайте будут отображаются сразу все пункты меню, включая вложенные. Если галка не стоит, то вложенные пункты меню будут отображаться только у активного пункта меню;
-
Не отображать ссылку на элемент, если он имеет дочерние пункты.
Пункты меню
Пункты меню – ссылки, формирующие меню. То есть по сути само меню и есть. Навигация. Пункты меню могут ссылаться на страницы сайта, категории модулей и элементы модулей, а также на любую внешнюю ссылку.

Если перед названием пункта меню имеется знак +, это значит, что этому пункту принадлежат вложенные пункты меню. Добавить пункт нижнего уровня можно, нажав на знак рядом с названием текущего пункта в общем списке.
Кнопка служит для удаления текущего пункта меню. Если пункту меню принадлежат пункты нижнего уровня, то при удалении они будут также удалены. Кнопка служит для быстрой публикации пункта меню (или, наоборот, блокирования). Отсортировать пункты меню можно мышкой, просто перетаскивая их.
Пункты меню имеют следующие характеристики:
-
Название – название пункта меню;
-
Показывать на сайте – показывать ли пункт меню на сайте или временно скрыть;
-
Элемент – страница сайта, категория или элемент модуля, на который ссылается пункт меню;
-
Вложенность: принадлежит – пункт меню верхнего уровня;
-
Категория – меню на сайте, к которому принадлежит пункт;
-
Внешняя ссылка (в формате http://site.com/) – если в меню необходимо вывести ссылку на другой сайт, то заполняется данное поле (например, на форум на поддомене: http://forum.site.ru/). Если «Внешняя ссылка» заполнена, остальные характеристики игнорируются.
При блокировании элемента, на который ссылается пункт меню, соответствующий пункт меню тоже блокируется. Также при удалении элемента, соответствующий пункт меню удаляется. То есть, если скрыть или удалить страницу на сайте, соответствующий пункт меню также будет скрыт или удален.
Структуру меню можно формировать непосредственно из модуля «Меню на сайте» или при заполнении страниц сайта, отмечая галку "Показывать в меню". При этом структура сайта повторяется в меню.
Например, отмечаем опцию «Показывать в меню» для новости. Если категория, которой принадлежит новость также имеет ссылку в меню, то новый пункт меню добавится как вложенный в пункт категории меню. Иначе добавится пункт меню первого уровня.
При формировании списка элементов, которые можно выбрать в качестве ссылок для пунктов меню, используются элементы других модулей. Ссылки на эти элементы формируются с помощью файла modules/модуль/admin/модуль.admin.menu.php.
Шаблонные функции:
Для работы с модулем "Меню" в diafan.CMS служит шаблонная функция:
show_block – выводит меню.
Без атрибутов выводит просто ссылки вида <a href="...">имя пункта меню</a>, одну за одной.
Атрибуты:
- id – идентификатор категории меню;
- template – шаблон тега (функция в файле modules/menu/menu.view.php должна называться show_block_template; по умолчанию значение атрибута default шаблон show_block). Если атрибут не задан, меню оформляется с помощью атрибутов оформления и выводится с помощью функции в шаблоне show_menu.
Атрибуты оформления:
- tag_start_номер – текст, выводимый перед каждой ссылкой меню (может содержать слово Increment – при выводе автоматически заменяемое на арифметическую прогресиию, 1, 2, 3, … и Level – заменяемое на номер уровня меню);
- tag_end_номер – текст, выводимый после каждой ссылки пункта меню (может содержать слово Increment - заменяемое на увеличивающийся номер и Level – заменяемое на номер уровня меню);
- tag_level_start_номер – текст, выводимый перед уровнем (номер) меню;
- tag_level_end_номер – текст, выводимый после уровня (номер) меню;
- tag_active_start_номер – текст, выводимый перед активным пунктом меню уровня (может содержать слово Increment - заменяемое на увеличивающийся номер и Level – заменяемое на номер уровня меню);
- tag_active_end_номер – текст, выводимый после активного пункта меню уровня (может содержать слово Increment - заменяемое на увеличивающийся номер и Level – заменяемое на номер уровня меню);
- tag_active_child_start_номер – текст, выводимый перед пунктом меню уровня (номер) с активным дочерним пунктом (может содержать слово Increment - заменяемое на увеличивающийся номер и Level – заменяемое на номер уровня меню);
- tag_active_child_end_номер – текст, выводимый после пункта меню уровня (номер) с активным дочерним пунктом (может содержать слово Increment - заменяемое на увеличивающийся номер и Level – заменяемое на номер уровня меню);
- separator_номер – текст, разделяющий пункты меню.
Номер в названии этих атрибутов обозначает номер уровня. Если атрибуты не указаны для текущего уровня, то они наследуются у верхнего уровня.
Пример: <insert name="show_block" module="menu" >
выведет просто список ссылок основного меню
<table> <insert name="show_block" module="menu" id="2" tag_start_1="[tr][td]" tag_end_1="[/td][/tr]"> </table>
сформирует таблицу, в отдельной ячейке которой будут пункты меню из второго меню
<insert name="show_block" module="menu" tag_start_1="[div class=`menu`]" tag_end_1="[/div]" tag_start_2="[div class=`submenu`]" tag_end_2="[/div]">
Выведет:
<div class="menu"><a href="...">О нас</a></div> <div class="submenu"><a href="...">Животные</a></div> <div class="submenu"><a href="...">Миссия</a></div> <div class="submenu"><a href="...">История</a></div> <div class="menu"><a href="...">Фотогалерея</a></div>
<insert name="show_block" module="menu" tag_start_1="[div class=`menuLevel`]" tag_end_1="[/div]">
Выведет:
<div class="menu1"><a href="...">О нас</a></div> <div class="menu2"><a href="...">Животные</a></div> <div class="menu2"><a href="...">Миссия</a></div> <div class="menu2"><a href="...">История</a></div> <div class="menu1"><a href="...">Фотогалерея</a></div>
Шаблон: функция show_block, show_level (второй уровень) – при оформлении шаблоном, show_menu – при оформлении тегами в файле modules/menu/menu.view.php.
CSS-форматирование
Автоматически пункты меню выводятся в css оформлении, которые можно подправить в шаблоне модуля "Меню" /modules/menu/view.menu.php
.menu_block{} – блок меню, если используется шаблон по-умолчанию
.menu_block h2{} – заголовок блока меню
.menu_item{} – пункт меню
.menu_active{} – текущий пункт меню
.menu_active_child{} – пункт меню с текущим дочерним пунктом
.menu_level_НОМЕР{} – уровень меню НОМЕР
.menu_item_НОМЕР{} – пункт меню уровня НОМЕР
Файлы
Модуль находится в папке /modules/menu/ и устроен классически.
-
modules/menu/menu.php – контроллер модуля;
-
modules/menu/menu.model.php – формирование данных для меню;
-
modules/menu/menu.view.php – шаблон модуля;
-
modules/menu/admin/menu.admin.php – редактирование пунктов меню;
-
modules/menu/admin/menu.admin.category.php – редактирование категорий меню;
-
modules/menu/admin/menu.admin.act.php – активирование / блокирование пунктов меню при активировании / блокировании элементов модулей;
-
modules/menu/admin/menu.admin.edit.php – редактирование меню в административной части модулей;
-
modules/menu/admin/menu.admin.del.php – удаление пунктов меню при удаление элементов модулей;
-
modules/menu/admin/menu.admin.save.php – сохранение меню в административной части модулей;
-
modules/menu/admin/menu.admin.ajax.php – обработка Ajax-запросов в административной части модуля;
- modules/menu/admin/menu.admin.js – редактирование пунктов меню, JS-сценарий;
-
modules/модуль/admin/модуль.admin.menu.php – формирование списка элементов модуля, доступные для добавления в меню.
Не понятно? Уточните
|