Добавление кастомного пункта меню в админку 1с-Битрикс


Приведенный ниже php-код позволяет добавить новый произвольный пункт в левое меню административного интерфейса 1с-Битрикс.

Добавление кастомного пункта меню в админку 1с-Битрикс

Код необходимо добавить в файл init.php:

use Bitrix\Main\EventManager;
$eventManager = EventManager::getInstance();

$eventManager->addEventHandlerCompatible('main', 'OnBuildGlobalMenu', function (&$aGlobalMenu, &$moduleMenu) {

    $section1 = 'menu_system'; // идентификатор раздела первого уровня, в который добавляемся
    $section2 = 'menu_module_settings'; // раздел второго уровня, в который добавляемся
    $title = 'Название пункта';
    $url = '#'; // ссылка, на которую будет вести новый пункт меню

    foreach ($moduleMenu as $firstLevelMenuIndex => $firstLevelMenu) {
        if ($firstLevelMenu['parent_menu'] == 'global_menu_settings' && $firstLevelMenu['items_id'] == $section1) {
            if (is_array($firstLevelMenu['items'])) {
                foreach ($firstLevelMenu['items'] as $secondLevelMenuIndex => $secondLevelMenu) {
                    if ($secondLevelMenu['items_id'] == $section2) {
                        $moduleMenu[$firstLevelMenuIndex]['items'][$secondLevelMenuIndex]['items'][] = array(
                            'text' => $title,
                            'url' => $url,
                            'title' => $title
                        );
                    }
                }
            }
        }
    }
});

Проверялось на 1с-Битрикс: Управление сайтом 20.0.1650. (версия модуля интернет-магазин 20.0.687).