Структура файла меню

25.09.2013

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

Типовой файл menuname.menu.php


$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()' 
	),
);

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

Представьтесь пожалуйста:
Электронная почта:
Электронный адрес не публикуются
Текст сообщения:
Для подсветки кода, оборачивайте ваш код в теги <code></code>
Введите 5 цифр с картинки:

Рекомендую:

Поделюсь промокодами для хостинга TimeWeb!

Поддержать проект: