• Модуль: 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;
}