- Хранение меню
Данные для каждого типа меню хранятся в отдельном файле, имя которого имеет следующий формат: .<тип меню>.menu.php. Например, для хранения данных меню типа left будет использоваться файл .left.menu.php, а для хранения данных меню типа top — файл .top.menu.php.Меню является иерархически наследуемым. Файлы меню размещаются в папках тех разделов сайта, где требуется показ соответствующих типов меню. Если для данного раздела не создан соответствующий файл меню, система производит поиск файла в каталоге уровнем выше.
Например, т.к. основное меню (в демо-версии продукта, это меню типа top) должно выводиться во всех разделах, то файл данного меню помещается только в корневой каталог сайта.
Соответственно меню второго уровня (например, меню left) выводится отдельно для каждого раздела сайта. Поэтому в папке каждого раздела создается свой файл для данного типа меню. - Как не отображать меню на странице?
Если необходимо, чтобы в нижележащем разделе просто не отображалось вышестоящее меню, создайте меню в нужном разделе без создания в нем пунктов меню. - Динамическое меню
Система Bitrix Framework позволяет также создавать меню динамического типа . Т.е. массив данных таких меню генерируется автоматически на основании некоторых данных, получаемых с помощью программного кода. Данный код должен храниться в папке соответствующего раздела сайта в файле с именем .<тип меню>.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);
?>
- Отображение пункта меню неавторизованным пользователям (или только авторизованным)
В расширенном режиме редактирования меню необходимо установить следующее условие:
Тип условия: выражение PHP
Условие: !$USER->IsAuthorized() - Всплывающие подсказки для пунктов меню
Для этого необходимо в расширенном режиме редактирования добавить дополнительный параметр A_TITLE, и записать в него содержание всплывающей подсказки.
Название: A_TITLE
Значение: текст_всплывающей_подсказки
Ссылку в шаблоне меняем на
<a href="<?=$arItem["LINK"]?>" title="<?=$arItem["PARAMS"]["A_TITLE"]?>"><?=$arItem["TEXT"]?></a>
- Как поставить картинки рядом с пунктами меню?
Для этого необходимо добавить в меню дополнительный параметр (редактирование в расширенном режиме), например IMG
Название: IMG
Значение: путь_к_картинке
В шаблоне после
<a href="<?=$arItem["LINK"]?>">
добавить
<img src="<?=$arItem["PARAMS"]["IMG"]?>" border="0" />