В 1С-Битрикс функционал настройки параметров для пользователей или администраторов сайта можно реализовать с помощью создания специальной страницы настроек. Это может быть полезно для кастомизации интерфейса, управления различными модулями и параметрами сайта.
В данной статье мы рассмотрим пошаговый процесс создания страницы настроек в административной части сайта на 1С-Битрикс с приведением примера кода.
1. Подготовка к созданию страницы настроек
Шаг 1. Создание файла настроек
Для начала вам нужно создать файл, который будет отвечать за отображение страницы настроек. Обычно такие файлы располагаются в папке /bitrix/admin/
. Создайте новый файл, например, my_settings_page.php
.
/bitrix/admin/my_settings_page.php
Шаг 2. Регистрация страницы в административном меню
Чтобы страница настроек была доступна через меню административной панели, ее нужно зарегистрировать в файле меню. Для этого создайте файл menu.php
в папке вашего модуля (или используйте уже существующий). Например, если это кастомный модуль, разместите файл по адресу:
/bitrix/modules/my_module/admin/menu.php
Добавьте туда следующий код:
<?php
IncludeModuleLangFile(__FILE__);$aMenu = array(
«parent_menu» => «global_menu_settings», // В какой раздел меню добавить (например, в «Настройки»)
«section» => «my_module_section», // Секция меню
«sort» => 100, // Порядок сортировки
«text» => «Мои настройки», // Название пункта меню
«title» => «Настройки модуля», // Всплывающая подсказка
«url» => «my_settings_page.php?lang=».LANGUAGE_ID, // Ссылка на страницу
«icon» => «util_menu_icon», // Иконка
«page_icon» => «util_page_icon», // Иконка для страницы
«items_id» => «menu_my_settings», // Идентификатор
«items» => array(), // Подменю
);return $aMenu;
Этот код создаст пункт меню в административной панели, который будет вести на страницу настроек.
Шаг 3. Подключение страницы настроек
Теперь нужно создать саму страницу настроек. Откройте файл my_settings_page.php
и добавьте туда следующий код:
<?php
// Подключаем пролог административной части
require_once $_SERVER[‘DOCUMENT_ROOT’] . ‘/bitrix/modules/main/include/prolog_admin_before.php’;// Проверка прав пользователя (например, доступ только администраторам)
if (!$USER->IsAdmin()) {
$APPLICATION->AuthForm(GetMessage(‘ACCESS_DENIED’));
}// Подключаем языковые файлы, если они есть
IncludeModuleLangFile(__FILE__);// Обрабатываем POST-запрос, если форма была отправлена
if ($_SERVER[‘REQUEST_METHOD’] == ‘POST’ && check_bitrix_sessid()) {
// Сохранение настроек
COption::SetOptionString(«my_module», «option_name», $_POST[‘option_name’]);
// Сообщение об успешном сохранении
CAdminMessage::ShowMessage(array(
«MESSAGE» => «Настройки сохранены»,
«TYPE» => «OK»
));
}// Получаем текущее значение настройки
$current_value = COption::GetOptionString(«my_module», «option_name», «»);// Заголовок страницы
$APPLICATION->SetTitle(«Настройки моего модуля»);// Подключаем эпилог административной части
require($_SERVER[‘DOCUMENT_ROOT’] . ‘/bitrix/modules/main/include/prolog_admin_after.php’);
?><!— HTML форма для настроек —>
<form method=»POST» action=»<?= $APPLICATION->GetCurPage() ?>?lang=<?= LANGUAGE_ID ?>»>
<?= bitrix_sessid_post() ?>
<table class=»adm-detail-content-table edit-table»>
<tr>
<td width=»40%»>Название настройки:</td>
<td width=»60%»><input type=»text» name=»option_name» value=»<?= htmlspecialcharsbx($current_value) ?>» size=»50″></td>
</tr>
</table>
<input type=»submit» name=»save» value=»Сохранить» class=»adm-btn-save»>
</form><?php
// Подключаем эпилог административной части
require($_SERVER[‘DOCUMENT_ROOT’] . ‘/bitrix/modules/main/include/epilog_admin.php’);
?>
Пояснение к коду:
- Проверка прав пользователя: Мы проверяем, является ли пользователь администратором перед тем, как показывать ему страницу настроек.
- Обработка формы: Если форма была отправлена, проверяется наличие сессии с помощью функции
check_bitrix_sessid()
. Если проверка пройдена, сохраняется введенное значение с помощью функцииCOption::SetOptionString
. - Получение текущего значения: При загрузке страницы мы получаем сохраненное ранее значение настройки с помощью
COption::GetOptionString
. - HTML-форма: Простая форма с одним текстовым полем для ввода значения настройки.
- bitrix_sessid_post(): Генерация скрытого поля с идентификатором сессии для защиты от CSRF-атак.
Шаг 4. Добавление языковых файлов
Если вы хотите, чтобы ваша страница поддерживала многоязычность, добавьте языковые файлы в папку lang
. Например:
/bitrix/modules/my_module/lang/ru/admin/my_settings_page.php
В файле my_settings_page.php
на русском языке добавьте строки:
$MESS[‘ACCESS_DENIED’] = «Доступ запрещен»;
$MESS[‘MY_SETTINGS_TITLE’] = «Настройки моего модуля»;
Теперь ваша страница будет поддерживать мультиязычность.
2. Итог
Мы рассмотрели, как шаг за шагом создать страницу настроек для вашего модуля в административной части 1С-Битрикс. Важные моменты:
- Создание файла страницы настроек: Он размещается в папке
/bitrix/admin/
. - Регистрация страницы в меню: Через файл
menu.php
можно добавить ссылку на страницу в административное меню. - Обработка формы: С использованием стандартных функций 1С-Битрикс для работы с настройками и безопасности (например,
bitrix_sessid_post()
). - Поддержка мультиязычности: Можно добавить языковые файлы для отображения сообщений и заголовков на разных языках.
Пример можно легко адаптировать под нужды вашего проекта, добавив больше настроек, выпадающие списки, чекбоксы и другие элементы формы.