369  /  380
Справочник

Административное меню

Просмотров: 41868
Дата последнего изменения: 16.11.2023
Роберт Басыров
Сложность урока:
2 уровень - несложные понятия и действия, но не расслабляйтесь.
1
2
3
4
5
Недоступно в лицензиях:
Ограничений нет

Меню административной части выводится стандартной функцией CMain::GetMenuHtmlEx.

Меню формируется на основе перебора всех файлов /bitrix/modules/ID модуля/admin/menu.php. В каждом таком файле содержится определение массива $aModuleMenuLinks, содержащего пункты меню соответствующего модуля. Все эти массивы затем будут объединены в стандартный массив $arMenuSections, содержащий информацию о всех пунктах меню.

Образец структуры меню на примере \bitrix\modules\main\admin\menu.php

$aMenu[] = array(
	"parent_menu" => "global_menu_settings",
	"sort" => 1800,
	"text" => GetMessage("MAIN_MENU_TOOLS"),
	"title" => GetMessage("MAIN_MENU_TOOLS_TITLE"),
	"url" => "tools_index.php?lang=".LANGUAGE_ID,
	"icon" => "util_menu_icon",
	"page_icon" => "util_page_icon",
	"items_id" => "menu_util",
	"items" => array(
		array(
			"text" => GetMessage("MAIN_MENU_SITE_CHECKER"),
			"url" => "site_checker.php?lang=".LANGUAGE_ID,
			"more_url" => array(),
			"title" => GetMessage("MAIN_MENU_SITE_CHECKER_ALT"),
		),
	array(
		"text" => GetMessage("MAIN_MENU_FILE_CHECKER"),
		"url" => "file_checker.php?lang=".LANGUAGE_ID,
		"more_url" => array(),
		"title" => GetMessage("MAIN_MENU_FILE_CHECKER_ALT"),
		),
	array(
		"text" => GetMessage("MAIN_MENU_PHPINFO"),
		"url" => "phpinfo.php?test_var1=AAA&test_var2=BBB",
		"more_url" => array("phpinfo.php"),
		"title" => GetMessage("MAIN_MENU_PHPINFO_ALT"),
		),
	array(
		"text" => GetMessage("MAIN_MENU_SQL"),
		"url" => "sql.php?lang=".LANGUAGE_ID."&del_query=Y",
		"more_url" => array("sql.php"),
		"title" => GetMessage("MAIN_MENU_SQL_ALT"),
		),
	array(
		"text" => GetMessage("MAIN_MENU_PHP"),
		"url" => "php_command_line.php?lang=".LANGUAGE_ID."",
		"more_url" => array("php_command_line.php"),
		"title" => GetMessage("MAIN_MENU_PHP_ALT"),
		),
	array(
		"text" => GetMessage("MAIN_MENU_AGENT"),
		"url" => "agent_list.php?lang=".LANGUAGE_ID,
		"more_url" => array("agent_list.php", "agent_edit.php"),
		"title" => GetMessage("MAIN_MENU_AGENT_ALT"),
		),
	array(
		"text" => GetMessage("MAIN_MENU_DUMP"),
		"url" => "dump.php?lang=".LANGUAGE_ID,
		"more_url" => array("dump.php", "restore_export.php"),
		"title" => GetMessage("MAIN_MENU_DUMP_ALT"),
		),
(strtoupper($DBType) == "MYSQL"?
	Array(
		"text" => GetMessage("MAIN_MENU_REPAIR_DB"),
		"url" => "repair_db.php?lang=".LANGUAGE_ID,
		"more_url" => array(),
		"title" => GetMessage("MAIN_MENU_REPAIR_DB_ALT"),
		)
:null
),
($USER->CanDoOperation('view_event_log')?
	Array(
		"text" => GetMessage("MAIN_MENU_EVENT_LOG"),
		"url" => "event_log.php?lang=".LANGUAGE_ID,
		"more_url" => array(),
		"title" => GetMessage("MAIN_MENU_EVENT_LOG_ALT"),
		)
:null
		),
	),
);

Пункты административного меню можно добавлять с помощью события OnBuildGlobalMenu.

Если вы пишите свой модуль можете использовать /bitrix/modules/ID_модуля/admin/menu.php для добавления пунктов административного меню.

Старый способ формирования меню

36
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии