204  /  331

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

Просмотров: 5650 (Статистика ведётся с 06.02.2017)

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

Шаблон меню хранится в файле /bitrix/modules/main/interface/.left.menu_template.php

Основным файлом собирающим пункты меню является /bitrix/modules/main/interface/.left.menu.php. В нем происходит перебор всех файлов /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
      ),
   ),
);

Если вы не пишете свой модуль и возникла необходимость добавить произвольный пункт в административное меню, то необходимо в файле /bitrix/admin/.left.menu.php, инициализировать массив $aMenuLinks соответствующими значениями.

Пример файла /bitrix/admin/.left.menu.php добавляющего произвольный пункт меню:

<?
// добавим пункт меню "Импорт техники" в раздел "Информ. блоки"
$aMenuLinks = Array(
    Array(
        "Импорт техники", 
        "/bitrix/admin/equipment_import.php?lang=ru", 
        Array(), 
        Array(
            "ALT" => "Импорт техники из dbf файлов", 
            "SECTION_ID" => "iblock",
            "SORT" => "100"
        )
    )
);
?>

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

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

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

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

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