Наш модуль - это простое и эффективное решение для генерации страниц настроек ваших модулей в Битрикс. Он поддерживает несколько табов и группировку свойств, что делает процесс настройки более удобным и легким.
Модуль предоставляет альтернативу классу CModuleOptions, который многие разработчики используют для генерации настроек своих модулей. Он также использует библиотеку интерфейсов 1С-Битрикс, что обеспечивает максимальную совместимость и надежность.
Данный модель сделан как альтернатива установки через composer. Весь используемый в модуле код выложен на github, что позволяет проверить его на безопасность, или добавить правки при необходимости.
В файле настроек вашего модуля подключаете текущий модуль и вызываете с нужными параметрами:
Bitrix\Main\Loader::includeModule("mpm.options"); Gelion\BitrixOptions\Form::generate("youmodule.id", $options); |
Важно
Минимально необходимая версия 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, ]); |
Зарегистрированные типы опций, при совпадении названий будут перебивать стандартные.