Создание страницы в админке

Создание страницы в админке

282
17.06.2018
07.08.2018

Иногда бывает нужно создать страницу в админ-панели. При этом нет необходимости создавать для страницы целый модуль.

Я обычно делаю так: в php_interface/include/ создаю файл, в котором размещаю весь функционал.

Дальше - в папке /bitrix/admin/ создаем файл с аналогичным названием, в нем - инклюдим наш файл с функционалом.

Осталось дело за малым - вывести ссылку на данный файл в меню. А в этом нам поможет обработчик события "OnBuildGlobalMenu":

AddEventHandler("main", "OnBuildGlobalMenu", "ModifiAdminMenu");
function ModifiAdminMenu(&$adminMenu, &$moduleMenu){
      $moduleMenu[] = array(
         "parent_menu" => "global_menu_services", // в раздел "Сервис"
         "section" => "ваше название",
         "sort"        => 100,                    // сортировка пункта меню - поднимем повыше
         "url"         => "имя страницы.php?lang=".LANG,  // ссылка на пункте меню - тут как раз и пишите адрес вашего файла, созданного в /bitrix/admin/
         "text"        => 'Текст пункта меню',
         "title"       => 'Всплывашка для пункта меню',
         "icon"        => "form_menu_icon", // малая иконка
         "page_icon"   => "form_page_icon", // большая иконка
         "items_id"    => "menu_ваше название",  // идентификатор ветви
         "items"       => array()          // остальные уровни меню

            );
}

Ну и если вы все же делаете свой модуль, то файл со скриптом-обработчиком вы разместить уже у себя в модуле, проинклюдите уже его. А вот чтобы добавить страницу в меню для модуля, нужно при разработке собственного модуля разместить файл /bitrix/modules/НАЗВАНИЕ_МОДУЛЯ/admin/menu.php с таким примерно содержанием:

$aMenu = array(    

'parent_menu' => 'global_menu_store',
    'sort' => 150,
    'text' => GetMessage('YOURMODULE_MENU'),
    'title' => GetMessage('YOURMODULE_MENUTITLE'),
    'icon' => 'sale_menu_icon_statisti',
    'page_icon' => 'sale_menu_icon_statisti',
    'items_id' => 'some_id',
    'items' => array(
        array(
            'text' => GetMessage('YOURMODULE_MENU_1'),
            'title' => GetMessage('YOURMODULE_MENU_1'),
            'url' => 'somepage.php?lang='.LANGUAGE_ID,
        ),        
    )
);

return (!empty($aMenu) ? $aMenu : false);

Более подробно о работе с доп. меню можно почитать в официально документации и тут



Благодарю за внимание! Делитесь вашими замечаниями в комментариях ниже.


P.S. Обращайтесь ко мне за приобретением лицензий и продлений на 1C-Битрикс "Управление сайтом", лицензий на облачную и коробочную версии Битрикс 24 а также за приобретением и внедрением готовых решений на базе 1С-Битрикс от партнеров. За более подробной информацией свяжитесь со мной любым удобным для вас способом


Комментарии

Еще никто не комментировал данную публикацию. Будьте первыми!

Добавить комментарий

captcha

Возврат к списку