Блог Горошко Андрея 1C-Битрикс Создание кастомной страницы в административной панели Битрикс

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

Средний рейтинг
5 из 5 звезд. 1 голосов.

Иногда стандартного функционала админки не хватает.

Требуется создать страницу для кастомного отчета, дашборда или инструмента управления.

Битрикс позволяет легко интегрировать свои страницы в административный интерфейс.

Задача: Создадим простую страницу /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: Добавление в меню (опционально)

Чтобы на вашу страницу можно было легко попасть, ее нужно добавить в меню.

  1. Создайте файл my_module.php (название по ID вашего модуля) в папке /bitrix/admin/menu.php. Если у вас нет своего модуля, можно добавить в global_menu.php или любой другой.
  2. Опишите пункт меню.
// /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, административный интерфейс.

Мой рейтинг:

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

Related Post

Использование Bitrix\Main\ORM\Query\Query для построения сложных запросов к Highload-блокамИспользование Bitrix\Main\ORM\Query\Query для построения сложных запросов к Highload-блокам

Средний рейтинг Еще нет оценок Highload-блоки в Битрикс — это эффективный инструмент для работы с крупными объемами данных, значительно превосходящий стандартные инфоблоки по производительности, особенно в условиях высоких нагрузок. Они

1С-Битрикс основные функции вывода в шаблонах1С-Битрикс основные функции вывода в шаблонах

Средний рейтинг 5 из 5 звезд. 1 голосов. В 1С-Битрикс основные и часто используемые функции вывода в шаблонах это: Некоторые из этих функций могут быть полезны при работе с шаблонами сайта.

Чем отличается ядро D7 bitrix и bitrix старое ядроЧем отличается ядро D7 bitrix и bitrix старое ядро

Средний рейтинг Еще нет оценок D7 Bitrix — это новое ядро Битрикс, которое было создано для замены старого ядра. D7 Bitrix является новым ядром разработки, которое было введено в версии