Расширенные настройки продукта

Описание

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

Главная задача, которую решили с помощью модуля — максимально ушли от использования констант и/или часто используемых переменных в коде.

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

Основные возможности:

1. Размещение параметров по разделам меню.
2. Задать тип значения параметра.
3. Указать зависимость от языка, модуля, сайта, группы пользователя.
4. Запретить переписывать значение параметра в ходе отработки скриптов.
5. Логирование в Журнал событий действий связанных с параметрами.
6. При возврате значений модуль приводит значение параметра к указанному типу.
7. В случае возникновения ошибок в процессе получения значения, все ошибки будут залогированы в системный файл лога, обычно это __bx_log.log
8. Кеширование данных модуля производится штатными функциями платформы.
9. Время кеширования данных таблицы можно регулировать штатными средствами, с помощью файла /bitrix/.settings.php , через массив cache_flags.

Особенности:
1. Модуль устанавливается в глобальное меню — Расширения.
2. Все настройки можно выполнять только из-под пользователя с правами администратора.
3. Минимальная версия PHP >= 7.4 (согласно [URL=https://www.1c-bitrix.ru/products/cms/requirements.php]требованиям[/URL] платформы).

Основные программные данные:

[QUOTE]// Подключение модуля
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;[/QUOTE]

Детали

Разработчик