Наверх

Меню на сайте

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

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

Пункты меню

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

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

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

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

Основные:

  • Название пункта меню – Это название выводится как пункт меню на сайте. Параметр имеет разные значения для разных языковых версий сайта.
  • Опубликовать на сайте – Показывать ли пункт меню на сайте или временно скрыть. Параметр имеет разные значения для разных языковых версий сайта.
  • Ссылка с пункта меню – Адрес ссылки, куда ведет текущий пункт меню. Заполняется автоматически при отметке галки «Показывать в меню» у элемента на сайте. Возможно указать вручную, как на внутреннюю страницу сайта, так и на любой другой сайт.
  • Открывать в новом окне – Если отмечена, клик пользователя по пункту меню на сайте откроет ссылку в новом окне.
  • Атрибуты HTML ссылки – HTML-код, выводимый в виде атрибутов для тега внутри ссылки <a *** ></a> (Веб-мастеру и программисту).
  • Свойства пункта.
  • Принадлежит к меню – Выбор меню, к которому относится текущий пункт.
  • Вложенность: принадлежит – Перемещение текущего пункта меню и всех его подпунктов в принадлежность другому пункту меню (администратору сайта).
  • Сортировка: установить перед – Изменить положение текущего пункта меню среди других пунктов (администратору сайта).
  • Изображение – Назначить текущему пункту меню изображение. Тогда ссылкой будет на название пункта, а прикрепленное изображение.
  • Описание – Краткое описание выводиться для пункта меню на сайте. Параметр имеет разные значения для разных языковых версий сайта.

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

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

Пример:

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

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

Меню

Список меню

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

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

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

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

Основные:

  • ID меню – Номер элемента в БД (Веб-мастеру и программисту).
  • Название меню – Название меню, отображается на сайте перед меню, если отмечен параметр «Показывать заголовок меню». Параметр имеет разные значения для разных языковых версий сайта.
  • Опубликовать на сайте – Показывать ли меню на сайте. Параметр имеет разные значения для разных языковых версий сайта.
  • Показывать заголовок меню – Если отмечено, перед пунктами меню выведется название меню (администратору сайта).
  • Раскрывать все пункты меню – Если отмечено, в меню будут выводиться все пункты меню, включая вложенные. Иначе вложенные пункты будут появляться только при переходе на родительский пункт. (администратору сайта).
  • Не отображать ссылку на элемент, если он имеет дочерние пункты – Если отмечено, пункты меню не будут ссылками, если у них есть вложенные пункты. (администратору сайта).
  • Текущий пункт меню как ссылка – Если отмечено, активный пункт меню останется ссылкой. (администратору сайта).
  • Не отображать имя пункта меню, если используется изображние – Если к пункту меню прикреплено изображение, то имя пункта отображаться не будет. (администратору сайта).
  • Отображать на страницах – Выбор отдельных страниц сайта, где будет показываться меню. Удерживайте CTRL, чтобы выбрать несколько страниц (администратору сайта).
  • Доступ – Если отметить опцию «Доступ только», категорию увидят только авторизованные на сайте пользователи, отмеченных типов. Не авторизованные, в том числе поисковые роботы, увидят «404 Страница не найдена» (администратору сайта).
  • Сортировка: установить перед – Редактирование порядка следования категории в списке. Поле доступно для редактирования только для категорий, отображаемых на сайте.
  • Шаблон вывода меню – Шаблон будет использован, если в шаблонном теге show_block указан атрибут template="select". (Веб-мастеру и программисту. Не меняйте этот параметр, если не уверены в результате!)

Настройки

Настройки

  • Использовать изображения – Если отметить, то к каждому пункту меню затем можно будет загружать изображения. Необходимо для графических сайтов, где пункты меню нарисованы, а не написаны текстом
  • Генерировать размеры изображений – Размеры изображений, заданные в модуле «Изображения» и тег латинскими буквами для подключения изображения на сайте. Обязательно должны быть заданы два размера: превью изображения в списке файлов (тег medium) и полное изображение (тег large).
  • Максимальный размер загружаемых файлов – Параметр показывает максимально допустимый размер загружаемых файлов, установленный в настройках хостинга. Параметр выводится, если отмечена опция «Использовать изображения».
  • Применить настройки ко всем ранее загруженным изображениям – Позволяет переконвертировать размер уже загруженных изображений. Кнопка необходима, если изменены настройки размеров изображений. Параметр выводится, если отмечена опция «Использовать изображения».

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

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

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/menu.php – контроллер;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ваши комментарии и дополнения

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