Обсудим ваш проект?

Меню в Битриксе: типы, создание и редактирование пунктов меню


Просмотров:
3578
Время на прочтение:
Статья обновлена:
4 Декабря 2019
Информация о статье
Просмотров: 3578
Время на прочтение:
Статья обновлена: 04.12.2019
Дарья, редактор
Дарья, редактор

Из чего состоит меню Битрикс, на какие типы делится и как формируется? На эти вопросы не так просто ответить не только новичку, но и опытному специалисту. При формировании и внедрении меню, а также редактировании его пунктов нужно быть особенно внимательным. 

Что такое меню в 1С-Битрикс и почему его называют наследуемым?

Любое меню на сайте формируется на базе двух элементов:

  • Шаблон внешнего отображения меню. Шаблон представляет собой PHP-код, который ответственен за внешний вид. Шаблон обрабатывает массив данных, по итогу формируя HTML-код.
  • Массив данных $aMenuLinks. Определяет содержание меню, задает наименования и ссылки для всех пунктов. Управлять массивом данных можно с помощью административного интерфейса.

Массив $aMenuLinks содержит ряд отдельных файлов, в каждом из которых находятся данные для каждого типа меню. Имя каждого файла имеет формат <тип меню>.menu.php. К примеру, хранение данных типа left предполагает использование файла .left.menu.php, а хранение информации типа top – файл .top .menu.php.

Меню в Битрикс называют иерархически наследуемым. Связано это с тем, что файлы меню помещаются в папках тех разделов веб-ресурса, где необходим показ соответствующих типов меню. Если для раздела не сформирован соответствующий файл меню, система выполняет поиск сайта в каталоге уровнем выше.

Приведем пример. Основное меню выводится во всех разделах. Следовательно, файл этого меню помещается только в корневой каталог веб-ресурса. Меню же второго уровня отображается отдельно для каждого раздела сайта. В связи с этим в папке каждого раздела формируется свой файл для данного типа меню.

Еще один пример. Пользователь посетил раздел /ru/company/about/ . Чтобы показывалось меню типа left, система выполняет поиск файла меню в следующей последовательности:

1. /ru/company/about/.left.menu.php

2. /ru/company/.left.menu.php

3. /ru/.left.menu.php

4. /.left.menu.php

Если в каком-то каталоге найдено меню, процедура поиска завершается и в последующих каталогах уже не выполняется.

Типы меню

Типом меню называют принцип формирования меню. Изначально дистрибутив содержит два типа: левое и верхнее. В зависимости от задач сайта может использоваться нижнее расположение. В каждом компоненте меню применяются два типа: первое – основное, а второе в качестве дополнительного при условии использования шаблонов многоуровневого типа.

Типы меню
Типы меню

В общем случае на сайте есть одно «главное» меню, которое соответствует верхней ступени иерархии. Отображается оно во всех разделах сайта. Также в системе используется меню второго уровня. Оно включает ссылки на подразделы и документы настоящего раздела.

Отображение меню

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

Если вам нужно, чтобы в находящемся ниже разделе не отображалось вышестоящее меню, сформируйте меню в необходимом разделе без формирования в нем пунктов меню.

Каждому разделу присваивается свое меню. Транслируется оно на все страницы раздела. При необходимости в подразделах вы можете создавать собственное меню и применять к нему свой тип.

Виды используемых на веб-ресурсе меню задаются из административного раздела на странице настроек модуля Управление структурой. Допустим, в системе применяются два типа меню:

Настройка типов меню
Настройка типов меню

  • Левое меню – тип left;
  • Главное меню – тип top.

Тип меню, указанный в настройках модуля Управление структурой, выступит в качестве префикса файла меню, а также для идентификации файлом с пунктами меню (к примеру, .top.menu.php). Помимо этого, имя типа меню применяется для подключения меню в шаблоне дизайна.

Статическое меню

В 1С-Bitrix все данные делятся на два типа: статические и динамические. Статическая информация редко меняется с течением времени. Создается и редактируется вручную. Статические данные вводятся непосредственно на странице сайта, а потому меняются редко и вручную.

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

Какое меню создавать? Тут все зависит от ваших целей и того, что именно вы хотите в нем видеть. Создайте статическое меню, если вам нужен блок, из которого можно переходить в разделы или на страницы сайта. Добавьте названия разделов и страниц, пропишите ссылки на соответствующие папки и файлы из физической структуры сайта. Именно простота является основным преимуществом статического меню.

Статическое меню
Статическое меню

Недостаток такого меню – необходимость вручную добавлять новые пункты и ссылки на него. Если же меню горизонтальное, то добавляемый пункт может попросту не поместиться на страницу. В этом случае переделывать придется всю верстку.

Динамическое меню

Используйте динамический блок с пунктами, если вам нужно выпадающее меню, которое будет меняться автоматически при добавлении или изменении информации в каталоге. Клик по пункту будет переводить пользователя на раздел или элемент каталога.

Если раздел содержит несколько элементов, вам не придется создавать для каждого из них физическую страницу и сохранять их в виде файлов. Страница будет сформирована в момент обращения при помощи специального программного кода. Она будет содержать актуальные сведения, а вам не придется следить за этим. Не нужно будет и вносить изменения в публичной части.

Динамическое меню
Динамическое меню

На примере выше динамическое меню. Для него не требуется создание отдельных пунктов и страниц для отдельных товаров, когда ассортимент пополнится новыми товарами.

Возможен даже вариант совмещения в одном меню разных типов информации. Например, это список услуг вашей компании и контактные сведения. Контакты меняются редко, а услуги с товарами регулярно. В этом случае нужно настроить компонент меню на отображение инфоблока услуг и добавить к нему статические пункты.

Независимо от того, какой тип меню — статический или динамический, — вы выбрали, корректная его работа во многом зависит от скорости сайта. Чтобы не потерять посетителей и конверсии, убедитесь, что сайт работает достаточно быстро. О том, как это сделать, мы писали в статье «Оптимизация сайта на “Битрикс”».

Формирование меню и внедрение его в шаблон сайта

Отметим еще раз: статические данные в структуре сайта – это папки (они же разделы) и файлы (страницы). Динамическая же информация – это инфоблоки (инструменты, с помощью которых в Базу данных заносится информация).

Следовательно, статическое меню:

  • Имеет доступные для редактирования пункты;
  • Использует папки и файлы из структуры сайта.

Динамическое меню:

  • базируется на инфоблоке;
  • пункты не отображаются при редактировании меню.

Что нужно для создания статического меню с последующим внедрением его в шаблон сайта? Алгоритм работы следующий:

  • Создадим новый раздел, допустим, «Саженцы».
  • В административном разделе в папке /sazhenci создаем пустой файл .left.menu_ext.php, чтобы базовое динамическое меню в создаваемом разделе не показывалось.
  • В разделе «Саженцы» создаем несколько страниц и наполняем их содержимым.
  • Статическое меню создается автоматически, если при формировании страниц будет указана опция «Добавить пункт меню».
  • Вырубаем использование кеша, чтобы компонент меню мог обновляться сразу по изменении данных.

По итогу мы получим статическое меню в разделе «Саженцы».

Создать меню динамического типа можно несколькими способами. Первый вариант самый легкий: нужно добавить к каталогу демо-версии сайта собственные разделы и подразделы. Они автоматически попадут в главное меню.

Второй вариант – настройка меню на свой инфоблок. Алгоритм следующий:

  • Добавление инфоблока с его разделами и подразделами;
  • Формирование нужного раздела в Публичной части;
  • Размещение в визуальном редакторе компонента «Каталог» для взаимодействия с инфоблоками;
  • Указание в параметрах компонента созданного инфоблока как источника данных;
  • В разделе сайта появится инфоблок в виде каталога со своим меню.

Наконец, третий способ. Он предполагает внесение изменений в код. Для этого:

  • В административной части, а именно в папке раздела создаем два файла меню - .left.menu.php и .left.menu_ext.php.
  • В файл динамического меню .left.menu_ext.php вставляем фрагмент кода:

// пример файла .left.menu_ext.php
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
global $APPLICATION;
$aMenuLinksExt = $APPLICATION->IncludeComponent(
 "bitrix:menu.sections",
 "",
Array(
 "ID" => $_REQUEST["ELEMENT_ID"], 
 "IBLOCK_TYPE" => "books", 
 "IBLOCK_ID" => "30", 
 "SECTION_URL" => "/e-store/books/index.php?SECTION_ID=#ID#", 
 "CACHE_TIME" => "3600" 
 )
);
$aMenuLinks = array_merge($aMenuLinks, $aMenuLinksExt);
 

  • Меняем название типа инфоблока, его ID и адрес сайта на нужные. Для этого выгружаем их из свойств информационного блока.

После этого динамическое меню автоматически отобразится в разделе.

Построение меню для показа проходит в три этапа:

  1. В основной шаблон показа попадает вызов отображения меню на экран;
  2. При загрузке компонент исследует наличие файла в текущем разделе сайта, который включает массив значений для меню;
  3. Компонент ищет шаблон построения для выбранного типа меню и высвечивает HTML меню на экран.

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

Создание и редактирование пунктов меню происходит в публичной части сайта. Выглядит это следующим образом:

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

Изменения будут видны сразу после нажатия кнопки «сохранить». При этом отредактировать пункты можно как в публичной, так и в административной части веб-ресурса.

Редактирование в публичном разделе сайта

Переходим в редактор, что находится в разделе «правки». Наводим курсором на нужное меню и жмем кнопку «редактировать пункты меню».

Редактирование пунктов меню через публичный раздел сайта
Редактирование пунктов меню через публичный раздел сайта

Затем всплывет окно, где вы можете поменять существующие пункты, либо включить новые.

Всплывающее окно для редактирования меню
Всплывающее окно для редактирования меню

Здесь же вы можете открыть окно с редактированием меню в административном разделе.

Редактирование в административном разделе сайта

Обозначьте раздел в структуре сайта, меню которого вы собираетесь изменить. Выберете нужный тип меню. Вот пример главного меню, находящегося в корне сайта и имеющего тип main:

Управление меню в административном разделе Битрикс
Управление меню в административном разделе Битрикс

Нажмите кнопку «редактировать меню». У вас откроется соответствующая форма:

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

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

В расширенном режиме, через форму редактирования меню можно прописать дополнительные данные для пункта меню. Например, это условие его показа. Для этого перейдите в расширенный режим управления меню:

Расширенный режим редактирования меню
Расширенный режим редактирования меню

Вы можете выбрать любой удобной вариант редактирования. 


Поможем с сайтами на Битрикс!
Разрабатываем, развиваем и обеспечиваем бесперебойность работы сайтов на Bitrix. Работаем с сайтами любой технической сложности и бизнес-логики. В течение 2 часов реагируем на любые ваши задачи в тикетной системе. В команде 6 программистов и 3 технических менеджера.

Нам доверяют

Жерихова А.В., директор ООО «Позитив»
Айзикович Б.И., генеральный директор ЗАО Медицинский центр «Авиценна»
Левчук Ю.С., управляющий ООО «ТФ Теплодар»