Битрикс является модульной системой, и в зависимости от редакции может содержать различный набор модулей для работы. Каждый модуль имеет свой набор параметров, некоторые из них хранятся в базе данных. Управление параметрами модулей осуществляется в административном интерфейсе, в настройках соответствующего модуля.
Кроме всего этого, воздействовать на параметры модулей можно посредством API битрикса. Для работы с параметрами модулей, хранимых в базе данных, существует класс COption. Данный класс содержит набор методов, для взаимодействия с параметрами модулей. К примеру, мы можем получить некоторые параметры либо изменить их.
Давайте попробуем получить/задать некоторые параметры, хранимые в базе. Для примера мы возьмем пару настроек, из параметров отображения captcha.
В административной части сайта параметры капчи находятся тут:
Настройки > Настройки продукта > CAPTCHA
Мы же попробуем воздействовать на параметры из кода. Итак, допустим известны два параметра, которые мне нужно получить:
CAPTCHA_arTextColor_1 — Нижняя граница случайного цвета шрифта;
CAPTCHA_arTextColor_2 — Верхняя граница случайного цвета шрифта;
Так как значения этих параметров имеет строковый тип, запрос будет осуществляться с помощью метода GetOptionString. Посмотрим, как с методом обращаться.
Синтаксис:
string COption::GetOptionString( string module_id, string name, mixed def = false, string site = false, bool ExactSite=false )
Метод возвращает строковое значение параметра option_id, принадлежащего модулю module_id.
Если не установлен параметр site_id, то делается попытка найти числовой параметр option_id, принадлежащий модулю module_id для текущего сайта. Если такого параметра нет, возвращается параметр, общий для всех сайтов.
module_id — Идентификатор модуля.
name — Идентификатор параметра.
def — Значение по умолчанию. Если default_value не задан, то значение для default_value будет браться из массива с именем ${module_id.»_default_option»} заданного в файле /bitrix/modules/module_id/default_option.php.
site (с версии 5.0.6)- Идентификатор сайта, для которого будут возвращены параметры. Необязательный. По умолчанию — false (для текущего сайта или если не установлены, то общие для всех сайтов).
ExactSite (с версии 10.0.11) – Необязательный параметр, по умолчанию «false».
COption::GetOptionString("main", "CAPTCHA_arTextColor_1", "000000"); COption::GetOptionString("main", "CAPTCHA_arTextColor_2", "646464");
Всё довольно просто, теперь давайте попробуем задать значения этих параметров с помощью метода SetOptionString.
Синтаксис:
bool COption::SetOptionString( string module_id, string name, string value = "", mixed desc = false, string site = "" )
Метод устанавливает строковое значение параметра option_id для модуля module_id. Если указан site_id, параметр установится только для этого сайта, и не будет влиять на аналогичный параметр другого сайта. Возвращает true, если операция прошла успешно, в противном случае — false.
module_id — Идентификатор модуля. Длина не более 50 символов.
name — Идентификатор параметра. Длина не более 50 символов.
value — Значение параметра. Необязательный. По умолчанию — «». Максимальная сохраняемая длина значения — 2000 символов.
desc — Описание параметра. Необязательный. По умолчанию — «false» (описание отсутствует). Начиная с версии 14.0.0 не используется.
site — Идентификатор сайта, для которого устанавливается параметр. Необязательный. Если установлен false, то будет текущий сайт (с версии 14.0).
COption::SetOptionString("main", "CAPTCHA_arTextColor_1", "cccccc"); COption::SetOptionString("main", "CAPTCHA_arTextColor_2", "cccccc");
На этом пока всё. Более подробно о методах класса вы можете посмотреть информацию в документации по работе API битрикса.