Чтобы вывести кастомные настройки Option Bitrix в административную панель, вам потребуется выполнить несколько шагов.
Шаг 1: Создание файла опций
Сначала создайте файл с опциями в вашем модуле. Назовите этот файл, например, options.php. В этом файле вы можете определить свои собственные опции, указать их названия, значения по умолчанию и описания.
Пример файла options.php:
<?php return array( array( "custom_option", "Описание опции", "", array("text", 50), "" ), array( "another_custom_option", "Описание еще одной опции", "", array("text", 50), "" ), );
Шаг 2: Регистрация опций
Далее вам необходимо зарегистрировать опции в вашем модуле. Это можно сделать в методе модуля, который вызывается при установке модуля. В этом методе вы можете использовать функцию
::SetOptionString
, чтобы зарегистрировать опции.
Пример регистрации опций:
class mymodule extends CModule { function GetModuleRightList() { $arr = array( "reference_id" => array("D", "R", "W"), "reference" => array( Loc::getMessage("MODULE_RIGHTS_D"), Loc::getMessage("MODULE_RIGHTS_R"), Loc::getMessage("MODULE_RIGHTS_W"), ) ); COption::SetOptionString("mymodule", "custom_option", "default_value"); COption::SetOptionString("mymodule", "another_custom_option", "default_value"); return $arr; } }
Шаг 3: Вывод опций в админке
Теперь вам нужно вывести опции в административной панели. Для этого вы можете использовать хуки системы Bitrix, например, или
, которые вызываются при построении страницы настроек модулей.
Пример вывода опций в админке:
use BitrixMainEventManager; $eventManager = EventManager::getInstance(); $eventManager->addEventHandler("main", "OnModuleProps", "OnModulePropsHandler"); function OnModulePropsHandler($moduleId) { if ($moduleId === "mymodule") { $aTabs = []; $aTabs[] = array( "DIV" => "edit1", "TAB" => "Настройки", "ICON" => "", "TITLE" => "Настройки модуля", "OPTIONS" => array( array( "custom_option", "Описание опции", "", array("text", 50) ), array( "another_custom_option", "Описание еще одной опции", "", array("text", 50) ), ) ); $tabControl = new CAdminTabControl("tabControl", $aTabs); $tabControl->Begin(); ?> <form method="post" action="<?echo $APPLICATION->GetCurPage()?>?mid=<?=$moduleId?>&lang=<?=LANGUAGE_ID?>"> <?=bitrix_sessid_post()?> <? foreach ($aTabs as $aTab) { if ($aTab["OPTIONS"]) { $tabControl->BeginNextTab(); __AdmSettingsDrawList($moduleId, $aTab["OPTIONS"]); } } ?> <input type="submit" name="Update" value="<?=Loc::getMessage("MAIN_SAVE")?>"> <input type="reset" name="reset" value="<?=Loc::getMessage("MAIN_RESET")?>"> </form> <?php $tabControl->End(); } }
Теперь ваши кастомные настройки Option Bitrix будут отображаться в административной панели вкладки "Настройки" в виде полей формы. Пользователи с правами администратора смогут редактировать значения этих опций и сохранять изменения.