Меню на сайте

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

Модуль состоит из 2х частей: пункты меню и меню.

Пункты меню

Список пунктов меню

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

Редактирование пункта меню

Пункты меню имеют следующие характеристики:

При блокировании элемента, на который ссылается пункт меню, соответствующий пункт меню тоже блокируется. Также при удалении элемента – соответствующий пункт меню удаляется. То есть, если скрыть или удалить страницу на сайте, соответствующий пункт меню также будет скрыт или удален.

Структуру меню можно формировать непосредственно из модуля «Меню на сайте» или при заполнении страниц сайта, категорий или элементов модулей, отмечая галку «Показывать в меню». При этом структура сайта повторяется в меню.

Пример:

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

При формировании списка элементов, которые можно выбрать в качестве ссылок для пунктов меню, используются элементы других модулей. Ссылки на эти элементы формируются с помощью файла modules/модуль/admin/модуль.admin.menu.php.

Меню

Список меню

Категории меню – это различные меню на сайте. Меню на сайте может быть неограниченное множество. Выводятся они на сайте с помощью шаблонного тега show_block.

При удалении меню удаляются все принадлежащие ему пункты меню.

Редактирование меню

Категории меню имеют следующие характеристики:

Настройки

Настройки

Шаблонные теги

Для работы с модулем «Меню» служат следующие шаблонные теги:

show_block – выводит меню.

Атрибуты:

id – идентификатор категории меню;

template – имя шаблона;

Внимание!

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

Если в атрибуте template указано какое-либо значение, то должен существовать файл modules/menu/view/menu.view.show_block_template.php.

Пример:

<insert name="show_block" module="menu" template="supermenu">

меню оформится с помощью файла modules/menu/view/menu.view.show_block_supermenu.php, который необходимо будет создать (можно скопировать любой другой существующий файл шаблона)

Значение template="default" подключит шаблон modules/menu/view/menu.view.show_block.php.

Значение template="select" подключит шаблон выбранный для меню в административном интерфейсе – параметр «Шаблон вывода меню».

Если атрибут template не задан, меню оформляется с помощью атрибутов оформления и выводится шаблоном modules/menu/view/menu.view.show_menu.php.

tag_start_номер – текст, выводимый перед каждой ссылкой меню (может содержать слово Increment – при выводе автоматически заменяемое на арифметическую прогресиию, 1, 2, 3, … и Level – заменяемое на номер уровня меню);

tag_end_номер – текст, выводимый после каждой ссылки пункта меню (может содержать слово Increment - заменяемое на увеличивающийся номер и Level – заменяемое на номер уровня меню);

tag_end_after_children_номер – текст, выводимый после вложенных пунктов каждого пункта меню (может содержать слово Increment - заменяемое на увеличивающийся номер и Level – заменяемое на номер уровня меню);

tag_level_start_номер – текст, выводимый перед уровнем (номер) меню;

tag_level_end_номер – текст, выводимый после уровня (номер) меню;

tag_active_start_номер – текст, выводимый перед активным пунктом меню уровня (может содержать слово Increment - заменяемое на увеличивающийся номер и Level – заменяемое на номер уровня меню);

tag_active_end_номер – текст, выводимый после активного пункта меню уровня (может содержать слово Increment - заменяемое на увеличивающийся номер и Level – заменяемое на номер уровня меню);

tag_active_end_after_children_номер – текст, выводимый после вложенных пунктов активного пункта меню уровня (может содержать слово Increment - заменяемое на увеличивающийся номер и Level – заменяемое на номер уровня меню);

tag_active_child_start_номер – текст, выводимый перед пунктом меню уровня (номер) с активным дочерним пунктом (может содержать слово Increment - заменяемое на увеличивающийся номер и Level – заменяемое на номер уровня меню);

tag_active_child_end_номер – текст, выводимый после пункта меню уровня (номер) с активным дочерним пунктом (может содержать слово Increment - заменяемое на увеличивающийся номер и Level – заменяемое на номер уровня меню);

tag_active_child_end_after_children_номер – текст, выводимый после вложенных пунктов пункта меню уровня (номер) с активным дочерним пунктом (может содержать слово Increment - заменяемое на увеличивающийся номер и Level – заменяемое на номер уровня меню);

separator_номер – текст, разделяющий пункты меню;

count_level – количество выводимых уровней меню, атрибут используется при оформлении меню атрибутами (template="");

defer – маркер отложенной загрузки шаблонного тега: event – загрузка контента только по желанию пользователя при нажатии кнопки "Загрузить", emergence – загрузка контента только при появлении в окне браузера клиента, async – асинхронная (одновременная) загрузка контента совместно с контентом шаблонных тегов с тем же маркером, sync – синхронная (последовательная) загрузка контента совместно с контентом шаблонных тегов с тем же маркером, по умолчанию отложенная загрузка не используется, обычный вывод шаблонных тегов в коде страницы;

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

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

Пример:

<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>

В шаблоне тега можно получить значение любого атрибута через переменную $result["attributes"]["название атрибута"].

База данных

{menu} – Пункты меню

{menu_category} – Меню

{menu_category_site_rel} – Данные о том, на каких страницах сайта выводится меню

{menu_parents} – Родительские связи пунктов меню

Файлы

Модуль находится в папке modules/menu и устроен классически.

  1. modules/menu/admin/js/menu.admin.js – редактирование пунктов меню, JS-сценарий;

  2. modules/menu/admin/menu.admin.php – редактирование пунктов меню;

  3. modules/menu/admin/menu.admin.action.php – обработка POST-запросов при работе с меню в административной части;

  4. modules/menu/admin/menu.admin.category.php – редактирование категорий меню;

  5. modules/menu/admin/menu.admin.config.php – настройки модуля;

  6. modules/menu/admin/menu.admin.inc.php – подключение модуля к административной части других модулей;

  7. modules/menu/js/menu.show_block_nav_main.js – JS-сценарий меню;

  8. modules/menu/js/menu.show_block_nav_tool.js – JS-сценарий меню;

  9. modules/menu/js/menu.show_block_nav_top.js – JS-сценарий меню;

  10. modules/menu/menu.php – контроллер;

  11. modules/menu/menu.inc.php – подключение модуля;

  12. modules/menu/menu.install.php – установка модуля;

  13. modules/menu/menu.model.php – модель;

  14. modules/menu/views/m/menu.view.show_block_topmenu.php – шаблон меню template=topmenu;

  15. modules/menu/views/m/menu.view.show_level_topmenu.php – шаблон вывода первого уровня меню, вызывается из функции show_block в начале файла, template=topmenu;

  16. modules/menu/views/m/menu.view.show_level_topmenu_2.php – шаблон второго и последующих уровней меню, оформленного шаблоном;

  17. modules/menu/views/m/menu.view.show_level_topmenu_3.php – шаблон второго и последующих уровней меню, оформленного шаблоном;

  18. modules/menu/views/menu.view.show_block.php – шаблон меню, оформленного шаблоном;

  19. modules/menu/views/menu.view.show_block_leftmenu.php – шаблон меню template=leftmenu;

  20. modules/menu/views/menu.view.show_block_nav_broad.php – шаблон меню template=navint;

  21. modules/menu/views/menu.view.show_block_nav_intern.php – шаблон меню template=navint;

  22. modules/menu/views/menu.view.show_block_nav_main.php – шаблон меню template=navmain;

  23. modules/menu/views/menu.view.show_block_nav_tool.php – шаблон меню template=navtool;

  24. modules/menu/views/menu.view.show_block_nav_top.php – шаблон меню template=navtop;

  25. modules/menu/views/menu.view.show_block_topmenu.php – шаблон меню template=topmenu;

  26. modules/menu/views/menu.view.show_level.php – шаблон вывода первого уровня меню, вызывается из функции show_block в начале файла, оформленного шаблоном;

  27. modules/menu/views/menu.view.show_level_2.php – шаблон вывода второго и последующих уровней меню, оформленного шаблоном;

  28. modules/menu/views/menu.view.show_level_leftmenu.php – шаблон вывода первого уровня меню, вызывается из функции show_block в начале файла, template=leftmenu;

  29. modules/menu/views/menu.view.show_level_leftmenu_2.php – шаблон второго и последующих уровней меню, оформленного шаблоном;

  30. modules/menu/views/menu.view.show_level_navmenu.php – шаблон вывода первого уровня меню, вызывается из функции show_block в начале файла;

  31. modules/menu/views/menu.view.show_level_navmenu_2.php – шаблон второго и последующих уровней меню, оформленного шаблоном;

  32. modules/menu/views/menu.view.show_level_topmenu.php – шаблон вывода первого уровня меню, вызывается из функции show_block в начале файла, template=topmenu;

  33. modules/menu/views/menu.view.show_level_topmenu_2.php – шаблон второго и последующих уровней меню, оформленного шаблоном;

  34. modules/menu/views/menu.view.show_level_topmenu_3.php – шаблон второго и последующих уровней меню, оформленного шаблоном;

  35. modules/menu/views/menu.view.show_menu.php – шаблон меню, оформленного атрибутами тега.

База знаний

Ваши комментарии и дополнения
25 июля 2013 г.
Сделайте пожалуйста кнопку "наверх".

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