Производство фотообоев в Новосибирске. Интернет магазин фотообоев. Изготовление - один день! Каталог 10 000 изображений!
13 Октябрь 2020

Битрикс меню — структура файла и дополнительные параметры

posted in Bitrix |


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

Таким образом, приведу пример файла из второй статьи со структурой меню, которой в структуре может вообще не быть — то есть подпункты, можно добавить.

Я воспользовался этим приёмом для того, чтобы сделать верхний пункт меню некликабельным («Аэропорты Москвы»), а пункты подменю остались кликабельными.
Пример на сайте reklamy.ru — главное меню, раздел Реклама в аэропортах.
Так же мне нужно было, чтобы подпункты не были по структуре внутри верхнего пункта (т.к. он вообще не имеет своего адреса).

Свой файл выкладывать не буду — смысла нет, там всё по аналогии с файлом из первой статьи, который я себе сохраню

Ну и для себя оставлю репост структуры файла меню с первой статьи — все пять параметров (без описания дополнительных).

$aMenuLinks = Array(
Array(
‘Полезные статьи’,
‘/articles/’,
Array(),
Array(),
»
),
);
В переменной $aMenuLinks задается массив пунктов меню. Каждый пункт описывается массивом из 5 элементов:

1. Название пункта, в примере это «Полезные статьи»

2. Адрес, в примере это «/articles/», также может быть указан абсолютный путь: «http://www.site.ru/»

3. Массив дополнительных адресов, на которых описываемый пункт меню будет выделен, например:

Array(
‘/articles1/’,
‘/articles2/’,
‘/articles3/’,
);
4. Массив произвольных параметров. Здесь это ассоциативный массив: ‘ключ’=>’значение’. Очень удобное решение, т.к. этот массив можно заполнять через админку:
Режим правки → Редактировать пункты меню → Редактировать меню в Панели управления → Расширенный режим
Здесь же можно задать дополнительные адреса и условие показа, это пункт 5. Далее эти параметры можно использовать в шаблоне меню, по своему усмотрению. Пример:

Array(
‘target’ => ‘_blank’,
‘fon-color’ => ‘#123456’,
);
5. Условие, при котором пункт меню будет отображен. Это PHP выражение, которое должно вернуть «true». В админке реализован конструктор таких выражений. Так, например, для авторизованных пользователей можно показывать пункт «Личный кабинет», а для не авторизованных — «Вход»:

global $USER;
$aMenuLinks = Array(
Array(
‘Личный кабинет’,
‘/personal/’,
Array(),
Array(),
‘$USER->IsAuthorized()’
),
Array(
‘Вход’,
‘/auth/’,
Array(),
Array(),
‘!$USER->IsAuthorized()’
),
);

Оставить комментарий