GetMenuHtml
Описание и параметры
string CMain::GetMenuHtml( string type = "left", bool MenuExt = false, mixed template = false, mixed InitDir = false )
Возвращает HTML-код для отображения меню заданного типа. В отличии от метода CMain::GetMenuHtmlEx шаблон меню будет подключаться на каждый пункт меню. Нестатический метод.
Параметры
Параметр | Описание | С версии |
---|---|---|
type | Тип меню. Необязателен. По умолчанию "left". | |
MenuExt | Если значение - "true", то для формирования массива меню, помимо файлов Необязателен. По умолчанию - "false". | 3.2.5 |
template | Путь относительно корня к шаблону меню. Необязателен. По умолчанию - "false", что означает искать по алгоритму указанному на странице Построение и показ меню. | 3.3.7 |
InitDir | Каталог для которого будет строится меню. Необязателен. По умолчанию - "false", что означает - текущий каталог. | 3.3.21 |
Смотрите также
Примеры
Пример левого меню элементы которого выбираются из инфо-блока
Вывод меню в файле /bitrix/templates/demo/header.php
:
<? echo $APPLICATION->GetMenuHtml("left", true); ?>
Файл /.left.menu.php
:
<? // основной файл меню // данный файл может редактироваться в редакторе меню $aMenuLinks = Array( ); ?>
Файл /.left.menu_ext.php
:
<? // дополнительный файл меню // добавляет в основной массив меню разделы каталога телефонов if (CModule::IncludeModule("iblock")): $IBLOCK_TYPE = "catalog"; // тип инфо-блока $IBLOCK_ID = 21; // ID инфо-блока $CACHE_TIME = 3600; // кэшируем на 1 час $aMenuLinksNew = array(); // создаем объект для кэширования меню $CACHE_ID = __FILE__.$IBLOCK_ID; $obMenuCache = new CPHPCache; // если массив закэширован то if($obMenuCache->InitCache($CACHE_TIME, $CACHE_ID, "/")) { // берем данные из кэша $arVars = $obMenuCache->GetVars(); $aMenuLinksNew = $arVars["aMenuLinksNew"]; } else { // иначе собираем разделы $rsSections = GetIBlockSectionList($IBLOCK_ID, false, array("SORT" => "ASC", "ID" => "ASC"), false, array("ACTIVE"=>"Y")); while ($arSection = $rsSections->Fetch()) { $arrAddLinks = array(SITE_DIR."catalog/phone/element.php?SECTION_ID=".$arSection["ID"]); // пройдемся по элементам раздела if ($rsElements = GetIBlockElementListEx($IBLOCK_TYPE, false, false, array(), false, array("ACTIVE" => "Y", "IBLOCK_ID" => $IBLOCK_ID, "SECTION_ID" => $arSection["ID"]), array("ID", "IBLOCK_ID", "DETAIL_PAGE_URL"))) { while ($arElement = $rsElements->GetNext()) $arrAddLinks[] = $arElement["DETAIL_PAGE_URL"]; } $aMenuLinksNew[] = array( $arSection["NAME"], SITE_DIR."catalog/phone/section.php?SECTION_ID=".$arSection["ID"], $arrAddLinks ); } } // сохраняем данные в кэше if($obMenuCache->StartDataCache()) { $obMenuCache->EndDataCache(Array("aMenuLinksNew" => $aMenuLinksNew)); } // объединяем основной массив меню с дополнительным $aMenuLinks = array_merge($aMenuLinksNew, $aMenuLinks); endif; ?>
Шаблон меню /bitrix/templates/demo/left.menu_template.php
:
<? // This file is the template for one menu item iteration // Set item mark: selected folder, folder, page if ($ITEM_TYPE=="D") { if ($SELECTED) $strDir = "<td width='0%' bgcolor='#A0C4E0' valign='middle' align='center'><img height='13' src='/bitrix/templates/demo/images/left_folder_open.gif' width='17' border='0'></td>"; else $strDir = "<td width='0%' bgcolor='#CCDFEE' valign='middle' align='center'><img height='13' src='/bitrix/templates/demo/images/left_folder.gif' width='17' border='0'></td>"; } else { if ($SELECTED) { $strDir = "<td width='0%' bgcolor='#A0C4E0' valign='middle' align='center'><img height='13' src='/bitrix/templates/demo/images/left_bullet.gif' width='17' border='0'></td>"; $strDir_d = "<td width='0%' bgcolor='#A0C4E0' valign='middle' align='center'><img height='13' src='/bitrix/templates/demo/images/left_bullet_d.gif' width='17' border='0' alt='Закрытый раздел'></td>"; } else { $strDir = "<td width='0%' bgcolor='#CCDFEE' valign='middle' align='center'><img height='13' src='/bitrix/templates/demo/images/left_bullet.gif' width='17' border='0'></td>"; $strDir_d = "<td width='0%' bgcolor='#CCDFEE' valign='middle' align='center'><img height='13' src='/bitrix/templates/demo/images/left_bullet_d.gif' width='17' border='0' alt='Закрытый раздел'></td>"; } } // if $SELECTED then this item is current (active) item if ($SELECTED) $strtext = "leftmenuact"; else $strtext = "leftmenu"; //if $PARAMS["SEPARATOR"]=="Y" this item should be shown with different style applied if ($PARAMS["SEPARATOR"]=="Y") { $strstyle = " style='background-color: #D5ECE6; border-top: 1px solid #A6D0D7; border-bottom: 1px solid #A6D0D7; padding:8;'"; $strDir = "<img height='13' src='/bitrix/templates/demo/images/1.gif' width='17' border='0'>"; $strtext = "leftmenu"; } else $strstyle = " style='padding:8;'"; // Content of variable $sMenuProlog is typed just before all menu items iterations // Content of variable $sMenuEpilog is typed just after all menu items iterations $sMenuProlog = "<table border='0' cellpadding='0' cellspacing='0' width='100%'>"; $sMenuEpilog = '<tr><td colspan=2 background="/bitrix/templates/demo/images/l_menu_border.gif"><img src="/bitrix/templates/demo/images/1.gif" width="1" height="1"></td></tr></table>'; // if $PERMISSION > "D" then current user can access this page if ($PERMISSION > "D") { $sMenuBody = '<tr><td colspan=2 background="/bitrix/templates/demo/images/l_menu_border.gif"><img src="/bitrix/templates/demo/images/1.gif" width="1" height="1"></td></tr><tr>'.$strDir.'<td valign="top"'.$strstyle.' width="100%"><a href="'.$LINK.'" class="'.$strtext.'">'.$TEXT.'</a></td></tr>'; } else { $sMenuBody = '<td colspan=2 background="/bitrix/templates/demo/images/l_menu_border.gif"><img src="/bitrix/templates/demo/images/1.gif" width="1" height="1"></td></tr><tr>'.$strDir_d.'</td><td valign="top"'.$strstyle.' width="100%"><a href="'.$LINK.'" class='.$strtext.'>'.$TEXT.'</a></td></tr>'; } ?>
© «Битрикс», 2001-2024, «1С-Битрикс», 2024