Как вывести кастомные настройки битрикс Option в админку?

Чтобы вывести кастомные настройки 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 будут отображаться в административной панели вкладки "Настройки" в виде полей формы. Пользователи с правами администратора смогут редактировать значения этих опций и сохранять изменения.