Модуль позволяет создать собственные настройки для сайта, которые позже можно использовать в скриптах сайта.
Основная специфика модуля в том, что имеется возможность указать гораздо больше настроек для параметра, чем это допускают штатные настройки параметров.
Помимо расширенных настроек для параметров, их также можно распределить по разделам для лучшего удобства работы с ними.
Главная задача, которую решили с помощью модуля - максимально ушли от использования констант и/или часто используемых переменных в коде.
Например, добавляем параметр режима работы магазина, прописываем получение параметра в нужном шаблоне сайта, а далее, при необходимости, администратор сможет самостоятельно, через админ раздел менять значение параметра. Без необходимости постоянно править код шаблона.
Основные возможности:
1. Размещение параметров по разделам меню.
2. Задать тип значения параметра.
3. Указать зависимость от языка, модуля, сайта, группы пользователя.
4. Запретить переписывать значение параметра в ходе отработки скриптов.
5. Логирование в Журнал событий действий связанных с параметрами.
6. При возврате значений модуль приводит значение параметра к указанному типу.
7. В случае возникновения ошибок в процессе получения значения, все ошибки будут залогированы в системный файл лога, обычно это __bx_log.log
8. Кеширование данных модуля производится штатными функциями платформы.
9. Время кеширования данных таблицы можно регулировать штатными средствами, с помощью файла /bitrix/.settings.php , через массив cache_flags.
Особенности:
1. Модуль устанавливается в глобальное меню - Расширения.
2. Все настройки можно выполнять только из-под пользователя с правами администратора.
3. Минимальная версия PHP >= 8.1 (согласно требованиям платформы).
Основные программные данные:
// Подключение модуля
BitrixMainLoader::includeModule('native.settings');
// Получение значения параметра с именем parameter-1.
// В случае отсутствия значения для параметра или невозможности отработки условий - будет возвращено N.
$value = NativeSettingsOption::get('parameter-1', 'N');
// На время отработки скрипта, если параметр не только для чтения - будет установлено значение Y
NativeSettingsOption::set('parameter-1', 'Y');
// Выборка данных по параметрам
NativeSettingsOption::getList(['select' => ['*'], 'filter' => []]);
// Список доступных полей параметра
NativeSettingsOptionTable::getMap();
// Добавление параметра
NativeSettingsOption::add($data);
// Обновление параметра
NativeSettingsOption::update($primary, $data);
// Удаление параметра
NativeSettingsOption::delete($primary);
// Типы значений параметров
NativeSettingsOption::getValueTypes();
// Константы типов значений параметров
NativeSettingsOption::VALUE_TYPE_STRING;
NativeSettingsOption::VALUE_TYPE_NUMBER;
NativeSettingsOption::VALUE_TYPE_ARRAY;
NativeSettingsOption::VALUE_TYPE_JSON;
NativeSettingsOption::VALUE_TYPE_DATE;
NativeSettingsOption::VALUE_TYPE_DATE_TIME;




