Битрикс: расширенные параметры редактирования меню
4 Апреля 2015

Битрикс: расширенные параметры редактирования меню

Довольно часто возникает необходимость добавить различные параметры или атрибуты к ссылкам в меню. Или задать определенные условия для показа пунктов меню на сайте. Рассмотрим как это можно сделать через расширенный режим редактирования меню на сайте под управлением Битрикс.

Рассмотрим как добавить дополнительные параметры к ссылкам. К примеру, id или data атрибуты

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

Увидим примерно следующее (в моем примере я добавляю вывод производльного html кода к пункту меню) :

редактирование меню в расширенном режиме

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

Остается отредактировать шаблон компонента. Перед началом не забудьте скопировать его в папку со своим шаблоном.

Сохраненные значения будут доступны в массиве $arItem["PARAMS"]["MYNAME"].

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

<?=$arItem["PARAMS"]["ICO"]?>

Примеры использования типов условий для меню

В расширенном режиме редактирования меню доступные различные условия с разными типами, при проверки которых он будет показан или скрыт. Штука очень гибкая и практичная. Можно задать показ меню только в заданном каталоге или странице, ограничить показ по времени, отображать пункт только с определенными параметрами в url или использовать выражение php с условием проверки.

При задании выражения php, в поле условие должна быть записана только часть с проверкой, которая находится внутри условия if(). Если при проверке будет возвращено true, то меню будет показано. Например, $USER->IsAuthorized() - показ только авторизованным пользователям, $APPLICATION->GetCurPage(true) != SITE_DIR."index.php" - показ на всех страницах, кроме главной и т.д. Подробнее про условия можно почитать в документации.

Комментарии

Использую в своей работе