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

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

Средний рейтинг
Еще нет оценок

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

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

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

Задача: Создадим простую страницу /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

Гибкая выборка в D7 ORM: Мастер-класс по классу QueryГибкая выборка в D7 ORM: Мастер-класс по классу Query

Средний рейтинг Еще нет оценок Хотя статический метод ::getList() удобен для простых выборок, его возможности ограничены, когда условия запроса нужно формировать динамически. Для таких задач в D7 ORM существует специальный класс-конструктор — \Bitrix\Main\Entity\Query.

Настройки модулей: COption и современный \Bitrix\Main\Config\OptionНастройки модулей: COption и современный \Bitrix\Main\Config\Option

Средний рейтинг Еще нет оценок Настройки модулей (те, что задаются в административной панели) хранятся в базе данных в таблице b_option. Для программного доступа к этим настройкам в Битрикс есть два API:

Создание своего модуля в Битрикс: Структура, install/index.php и version.phpСоздание своего модуля в Битрикс: Структура, install/index.php и version.php

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