- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/classes/general/menu.php
- Класс: CMenu
- Вызов: CMenu::GetMenuHtml
function GetMenuHtml()
{
/**
* @global CMain $APPLICATION
* @noinspection PhpUnusedLocalVariableInspection
*/
global $USER, $DB, $APPLICATION; // must be!
if(!$this->RecalcMenu())
return false;
// $arMENU - menu array copy
// $arMENU_LINK - reference to menu array
/** @noinspection PhpUnusedLocalVariableInspection */
$arMENU_LINK = $MENU_ITEMS = &$this->arMenu;
/** @noinspection PhpUnusedLocalVariableInspection */
$arMENU = $this->arMenu;
$result = "";
$sMenuPrologTmp = "";
$sMenuEpilog = "";
$n = count($this->arMenu);
for($i = 0; $i < $n; $i++)
{
$m = $this->arMenu[$i];
$sMenuBody = "";
$sMenuProlog = "";
$sMenuEpilog = "";
$ITEM_INDEX = 0;
extract($m, EXTR_OVERWRITE);
// $TEXT - item text
// $LINK - item link
// $SELECTED - is item highlighed
// $PERMISSION - linked page permission
// $ADDITIONAL_LINKS - additional links for highlighting
// $ITEM_TYPE - "D" - directory, "P" - page
// $ITEM_INDEX - item number
// $PARAMS - additional parameters
include($this->MenuTemplate);
if($ITEM_INDEX == 0)
$sMenuPrologTmp = $sMenuProlog;
$result .= $sMenuBody;
}
$result = $sMenuPrologTmp.$result.$sMenuEpilog;
$arIcons = array();
$bShowButtons = false;
$sMenuFile = $this->MenuDir.".".$this->type.".menu.php";
if($APPLICATION->GetShowIncludeAreas())
{
$menu_perm = $APPLICATION->GetFileAccessPermission($sMenuFile);
$templ_perm = $APPLICATION->GetFileAccessPermission($this->template);
if($menu_perm >= "W")
{
$arIcons[] = array(
"URL"=>"/bitrix/admin/fileman_menu_edit.php?lang=".LANGUAGE_ID."&site=".SITE_ID."&back_url=".urlencode($_SERVER["REQUEST_URI"])."&path=".urlencode($this->MenuDir)."&name=".$this->type,
"ICON"=>"menu-edit",
"TITLE"=>GetMessage("MAIN_MENU_EDIT")
);
}
if($templ_perm >= "W" && $USER->IsAdmin())
{
$arIcons[] = array(
"URL"=>"/bitrix/admin/fileman_file_edit.php?lang=".LANGUAGE_ID."&site=".SITE_ID."&back_url=".urlencode($_SERVER["REQUEST_URI"])."&full_src=Y&path=".urlencode($this->template),
"ICON"=>"menu-template",
"TITLE"=>GetMessage("MAIN_MENU_TEMPLATE_EDIT")
);
}
if(!empty($arIcons))
{
$result = $APPLICATION->IncludeStringBefore().$result;
$bShowButtons = true;
}
}
if($this->debug)
$result .= $this->debug->Output($sMenuFile, $sMenuFile);
if($bShowButtons)
$result .= $APPLICATION->IncludeStringAfter($arIcons);
return $result;
}