Настройки для разработчиков

1

Разработчик: .mpmstudio

Установлено: 100 - 499

Обновлено: 22.02.2023

Адаптирован под мобильные устройства

Совместим с редакциями Битрикс: «Старт» / «Стандарт» / «Малый бизнес» / «Бизнес» / «Интернет-магазин + CRM»

Наш модуль - это простое и эффективное решение для генерации страниц настроек ваших модулей в Битрикс. Он поддерживает несколько табов и группировку свойств, что делает процесс настройки более удобным и легким.

Модуль предоставляет альтернативу классу CModuleOptions, который многие разработчики используют для генерации настроек своих модулей. Он также использует библиотеку интерфейсов 1С-Битрикс, что обеспечивает максимальную совместимость и надежность.

Данный модель сделан как альтернатива установки через composer. Весь используемый в модуле код выложен на github, что позволяет проверить его на безопасность, или добавить правки при необходимости.

Краткая версия
В файле настроек вашего модуля подключаете текущий модуль и вызываете с нужными параметрами:
Bitrix\Main\Loader::includeModule("mpm.options");
Gelion\BitrixOptions\Form::generate("youmodule.id", $options);
Пример файла options.php с использованием модуля.

Важно
Минимально необходимая версия php для работы модуля соответствует требованиями bitrix.

Создание табов и групп
Пример массива "$options" для создания вкладки с группой опций:
$options = [
    [
        "DIV" => "settings",
        "TAB" => "Новая вкладка",
        "TITLE" => "Новая вкладка",
        "ICON" => "",
        "GROUPS" => [
            "GROUP_CODE" => [
                "TITLE" => "Название группы",
                "OPTIONS" => []
            ],
        ],
    ],
];
Создание опций
В массив "OPTIONS" группы передаётся массив нужных опций.

Строка
"PROP_ID" => [    "SORT" => 100,
    "TYPE" => "STRING",
    "FIELDS" => [
        "TITLE" => "Поле "Строка"",
        "DEFAULT" => "Значение по умолчанию",
        "NOTES" => "Это подсказка к полю "Строка"",
        "PLACEHOLDER" => "Это плейсхолдер к полю "Строка"",
        "TAG" => "Текст на теге",
        "READONLY" => false,
        "DISABLED" => false,
        "AUTOCOMPLETE" => false,
    ],
],
Число
"PROP_ID" => [
    "SORT" => 100,
    "TYPE" => "NUMBER",
    "FIELDS" => [
        "TITLE" => "Поле "Число"",
        "DEFAULT" => 42,
        "NOTES" => "Это подсказка к полю "Число"",
        "PLACEHOLDER" => "Это плейсхолдер к полю "Число"",
        "TAG" => "Текст на теге",
        "READONLY" => false,
        "DISABLED" => false,
        "AUTOCOMPLETE" => false,
        "STEP" => 1,
        "MIN" => 0,
        "MAX" => 100,
    ],
],

Текст
"PROP_ID" => [
    "SORT" => 100,
    "TYPE" => "TEXTAREA",
    "FIELDS" => [
        "TITLE" => "Поле "Текст"",
        "DEFAULT" => "Значение по умолчанию",
        "NOTES" => "Это подсказка к полю "Текст"",
        "PLACEHOLDER" => "Это плейсхолдер к полю "Текст"",
        "TAG" => "Текст на теге",
        "READONLY" => false,
        "DISABLED" => false,
        "AUTOCOMPLETE" => false,
        "COLS" => 5,
        "ROWS" => 10,
    ],
],

Чекбокс
"PROP_ID" => [
    "SORT" => 100,
    "TYPE" => "CHECKBOX",
    "FIELDS" => [
        "TITLE" => "Поле "Чекбокс"",
        "DEFAULT" => true,
        "NOTES" => "Это подсказка к полю "Чекбокс"",
    ],
],
Выбор цвета
"PROP_ID" => [
    "SORT" => 100,
    "TYPE" => "COLORPICKER",
    "FIELDS" => [
        "TITLE" => "Поле "Выбор цвета"",
        "NOTES" => "Это подсказка к полю "Выбор цвета"",
        "DEFAULT" => "#FFFFFF",
    ],
],



Выпадающий список
"PROP_ID" => [
    "SORT" => 100,
    "TYPE" => "DROPDOWN",
    "FIELDS" => [
        "TITLE" => "Поле "Список"",
        "DEFAULT" => "val-2",
        "NOTES" => "Это подсказка к полю "Список"",
        "TAG" => "Текст на теге",
        "OPTIONS" => [
            [
                "TITLE" => "Первое свойство",
                "VALUE" => "val-1",
            ],
            [
                "TITLE" => "Второе свойство",
                "VALUE" => "val-2",
            ],
        ],
    ],
],

Множественный список
"PROP_ID" => [
    "SORT" => 100,
    "TYPE" => "MULTISELECT",
    "FIELDS" => [
        "TITLE" => "Поле "множественный список"",
        "DEFAULT" => serialize(["val-1","val-2"]),
        "NOTES" => "Это подсказка к полю "множественный список"",
        "TAG" => "Текст на теге",
        "OPTIONS" => [
            [
                "TITLE" => "Первое свойство",
                "VALUE" => "val-1",
            ],
            [
                "TITLE" => "Второе свойство",
                "VALUE" => "val-2",
            ],
        ],
    ],
],

HTML-редактор
"PROP_ID" => [
    "SORT" => 100,
    "TYPE" => "HTMLEDITOR",
    "FIELDS" => [
        "TITLE" => "Поле "HTML-редактор"",
        "NOTES" => "Это подсказка к полю "HTML-редактор"",
    ],
    "PARAMS" => [
        "WIDTH" => "100%",
        "HEIGHT" => "500",
        "PHP" => false,
        "TASKBAR" => false,
    ]
],

Условия
"PROP_ID" => [
    "SORT" => 100,
    "TYPE" => "CONDITIONS",
    "FIELDS" => [
        "TITLE" => "Поле "Условия"",
        "NOTES" => "Это подсказка к полю "Условия"",
    ],
],

Модификаторы опций
Также можно передать дополнительные параметры, влияющие на отображение формы на странице. Более подробно о принимаемых параметрах и их значениях можно узнать в документации Bitrix.
"PROP_ID" => [
    "FIELDS" => [],
    "PARAMS" => [
        "DISPLAY" => "block",
        "WIDTH" => "wd",
        "HEIGHT" => "md",
        "COLOR" => "default",
        "TAGCOLOR" => "default",
        "MODIFICATOR" => false,
    ],
],

Свои типы опций
Чтобы создать свой тип опции нужно создать свой класс, унаследовавшись от класса Gelion\BitrixOptions\TypeBase и с интерфейсом Gelion\BitrixOptions\TypeInterface. Затем, где-нибудь перед вызовом генератора зарегистрировать сопоставление названий типов, и классов, которые должны быть инициализированы.
Gelion\BitrixOptions\Form::typesRegister([
    "CUSTOM_TYPE" => MyCustomOptionType::class,
]);

Зарегистрированные типы опций, при совпадении названий будут перебивать стандартные.