The menu of administrative section is displayed by the standard function CMain::GetMenuHtmlEx.
The menu template is stored in the file:
/bitrix/modules/main/interface/.left.menu_template.php
The main file that builds the menu items is:
/bitrix/modules/main/interface/.left.menu.php
This file enumerates all files in /bitrix/modules/module ID/admin/menu.php. Each of these files contains the definition of array $aModuleMenuLinks which contains menu items of the corresponding module. All these arrays will be further combined into a standard array $arMenuSections containing the information of all menu items (see also Menu).
The array $aModuleMenuLinks structure:
Array
(
[0] => Array
(
[0] => menu item title
[1] => menu item link
[2] => Array
(
[0] => additional links for highlighting the menu item 1
[1] => additional links for highlighting the menu item 2
...
[N] => additional links for highlighting the menu item N
)
[3] => Array
(
[ALT] => menu item tooltip text
[SECTION_ID] => the unique ID of a menu section,
has the value of the module ID,
or one of the following:
FAVORITE - the Favorites section
GENERAL - the Users section
MAIN - the System Settings section
[SEPARATOR] => "Y" - menu item is a menu section title
[SORT] => menu section sort weight
relative to other menu section (only if SEPARATOR is "Y")
[ICON] => link to a small icon used
in a menu section title (only if SEPARATOR is "Y")
[BIG_ICON] => link to a large icon used
on the Desktop page (only if SEPARATOR is "Y")
[INDEX_PAGE] => link for the icon BIG_ICON (only if SEPARATOR is "Y")
)
)
[1] => Array( -//- )
[2] => Array( -//- )
...
[M] => Array( -//- )
)
The following is the example of file /bitrix/modules/support/admin/menu.php which builds the Techsupport module menu:
<?
// include language file
IncludeModuleLangFile(__FILE__);
// determine the current user permissions
$SUP_RIGHT = $APPLICATION->GetGroupRight("support");
// if access is allowed
if($SUP_RIGHT>"D")
{
// add menu items according to permissions
$aModuleMenuLinks[] = Array(
GetMessage("SUP_M_SUPPORT"),
"",
Array(),
Array(
"SEPARATOR" => "Y",
"SORT" => 1000,
"ICON" => "/bitrix/images/support/mnu_support.gif",
"BIG_ICON" => "/bitrix/images/support/support.gif",
"INDEX_PAGE" => "/bitrix/admin/ticket_desktop.php?lang=".
LANGUAGE_ID."&set_default=Y"
)
);
if ($SUP_RIGHT>="T")
{
$aModuleMenuLinks[] = Array(
GetMessage("SUP_M_REPORT_TABLE"),
"/bitrix/admin/ticket_desktop.php?lang=".
LANGUAGE_ID."&set_default=Y",
Array("/bitrix/admin/ticket_desktop.php"),
Array("ALT"=>GetMessage("SUP_M_REPORT_TABLE_ALT"))
);
}
$aModuleMenuLinks[] = Array(
GetMessage("SUP_M_TICKETS"),
"/bitrix/admin/ticket_list.php?lang=".
LANGUAGE_ID."&set_default=Y",
Array(
"/bitrix/admin/ticket_list.php",
"/bitrix/admin/ticket_edit.php",
"/bitrix/admin/ticket_message_edit.php"
),
Array("ALT"=>GetMessage("SUP_M_TICKETS_ALT"))
);
if ($SUP_RIGHT>="T")
{
$aModuleMenuLinks[] = Array(
GetMessage("SUP_M_REPORT_GRAPH"),
"/bitrix/admin/ticket_report_graph.php?lang=".
LANGUAGE_ID."&set_default=Y",
Array("/bitrix/admin/ticket_report_graph.php"),
Array("ALT"=>GetMessage("SUP_M_REPORT_GRAPH_ALT"))
);
}
if ($SUP_RIGHT>="V")
{
$aModuleMenuLinks[] = Array(
GetMessage("SUP_M_CATEGORY"),
"/bitrix/admin/ticket_dict_list.php?lang=".
LANGUAGE_ID."&find_type=C&set_filter=Y",
Array(
"/bitrix/admin/ticket_dict_edit.php?find_type=C",
"/bitrix/admin/ticket_dict_list.php?find_type=C"
)
);
}
}
?>
If you need to add an item to the administrative menu, even if you are not developing your own module, initialise the array $aMenuLinks with the corresponding values in the file /bitrix/admin/.left.menu.php.
The file /bitrix/admin/.left.menu.php adds an arbitrary menu item.
<?
// add menu item "Import equipment"
// to section "Information blocks"
$aMenuLinks = Array(
Array(
"Import equipment",
"/bitrix/admin/equipment_import.php?lang=ru",
Array(),
Array(
"ALT" => "Import equipment from DBF files",
"SECTION_ID" => "iblock",
"SORT" => "100"
)
)
);
?>
| © 2001-2005 Bitrix | Bitrix Site Manager - Content Management & Portal Solutions |