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



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

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

Я воспользовался этим приёмом для того, чтобы сделать верхний пункт меню некликабельным (“Аэропорты Москвы”), а пункты подменю остались кликабельными.
Пример на сайте 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()’
),
);


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *