Иногда стандартного функционала админки не хватает.
Требуется создать страницу для кастомного отчета, дашборда или инструмента управления.
Битрикс позволяет легко интегрировать свои страницы в административный интерфейс.
Задача: Создадим простую страницу /bitrix/admin/my_custom_page.php, которая будет доступна только администраторам и выводить некий отчет.
Шаг 1: Создание файла и подключение пролога
Создайте файл my_custom_page.php в папке /bitrix/admin/.
Первое, что нужно сделать в любом административном скрипте, — подключить пролог и проверить права доступа.
// /bitrix/admin/my_custom_page.php
// 1. Подключаем служебную часть пролога
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");
// 2. Подключаем языковой файл (опционально, но рекомендуется)
use Bitrix\Main\Localization\Loc;
Loc::loadMessages(__FILE__);
// 3. Проверяем права доступа
// Допустим, нужен полный доступ к главному модулю
if($APPLICATION->GetGroupRight("main") < "R") {
$APPLICATION->AuthForm(Loc::getMessage("ACCESS_DENIED"));
}
// 4. Подключаем визуальную часть пролога (шапку админки)
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");
// 5. Здесь будет наш контент
// 6. Подключаем эпилог (подвал админки)
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php");
- prolog_admin_before.php: Инициализирует ядро, сессию, авторизацию. Обязателен.
- Проверка прав: $APPLICATION->GetGroupRight(«main») возвращает букву права для текущего пользователя на модуль main. R — чтение, W — запись. Если прав не хватает, показываем форму авторизации.
- prolog_admin_after.php: Отрисовывает верхнюю часть админ-панели (меню, заголовок).
- epilog_admin.php: Отрисовывает подвал. Обязателен.
Шаг 2: Добавление в меню (опционально)
Чтобы на вашу страницу можно было легко попасть, ее нужно добавить в меню.
- Создайте файл my_module.php (название по ID вашего модуля) в папке /bitrix/admin/menu.php. Если у вас нет своего модуля, можно добавить в global_menu.php или любой другой.
- Опишите пункт меню.
// /bitrix/admin/menu.php/my_module.php
use Bitrix\Main\Localization\Loc;
Loc::loadMessages(__FILE__);
// Если у пользователя есть права на чтение главного модуля
if ($APPLICATION->GetGroupRight("main") >= "R") {
$aMenu = [
"parent_menu" => "global_menu_services", // Привязываем к разделу "Сервисы"
"sort" => 500,
"text" => "Мой кастомный отчет",
"title" => "Страница с моим кастомным отчетом",
"url" => "my_custom_page.php?lang=".LANGUAGE_ID,
"icon" => "fileman_sticker_icon", // Иконка
"items_id" => "menu_my_report",
];
return $aMenu;
}
return false;
Шаг 3: Вывод контента и использование вкладок
Для сложного интерфейса удобно использовать вкладки CAdminTabControl.
// ... после prolog_admin_after.php ...
// Устанавливаем заголовок страницы
$APPLICATION->SetTitle("Мой кастомный отчет");
// Создаем объект для вкладок
$aTabs = [
["DIV" => "edit1", "TAB" => "Основной отчет", "ICON"=>"main_user_edit", "TITLE"=>"Основной отчет по данным"],
["DIV" => "edit2", "TAB" => "Настройки", "ICON"=>"main_user_edit", "TITLE"=>"Настройки отчета"],
];
$tabControl = new CAdminTabControl("tabControl", $aTabs);
// Начинаем отрисовку вкладок
$tabControl->Begin();
?>
<form method="POST" action="<?=$APPLICATION->GetCurPage()?>" name="post_form">
<?=bitrix_sessid_post()?>
<? // Первая вкладка ?>
<? $tabControl->BeginNextTab(); ?>
<tr>
<td width="40%">Данные отчета:</td>
<td width="60%">Здесь могла бы быть ваша таблица с данными...</td>
</tr>
<? // Вторая вкладка ?>
<? $tabControl->BeginNextTab(); ?>
<tr>
<td width="40%">Параметр 1:</td>
<td width="60%"><input type="text" name="param1" value=""></td>
</tr>
<?
// Панель с кнопками
$tabControl->Buttons();
?>
<input type="submit" name="Save" value="Сохранить настройки" class="adm-btn-save">
<?
// Завершаем отрисовку вкладок
$tabControl->End();
?>
</form>
<?
// ... перед epilog_admin.php ...
Вывод:
Создание собственных административных страниц — это мощный способ расширения стандартного функционала Битрикс.
Следуя четкой структуре (пролог -> проверка прав -> контент -> эпилог) и используя стандартные классы вроде CAdminTabControl, вы можете создавать интерфейсы, которые выглядят и работают как «родные» страницы системы.
кастомная админка Битрикс, страница в админке, prolog_admin_before, prolog_admin_after, CAdminTabControl, административный интерфейс.