Документация для разработчиков

SetOptionString

bool COption::SetOptionString(
 string module_id,
 string name,
 string value = "",
 mixed desc = false,
 string site = ""
)

Устанавливает строковое значение параметра option_id для модуля module_id. Если указан site_id, параметр установится только для этого сайта и не будет влиять на аналогичный параметр другого сайта. Возвращает true, если операция прошла успешна, в противном случае - false. Статический метод.

В новом ярде D7 имеет аналог: \Bitrix\Main\Config\Option::set

Параметры

Параметр Описание С версииНе используется
module_id Идентификатор модуля. Длина не более 50 символов.
name Идентификатор параметра. Длина не более 50 символов.
value Значение параметра.
Необязательный. По умолчанию - "". Максимальная сохраняемая длина значения - 2000 символов.
desc Описание параметра.
Необязательный. По умолчанию - "false" (описание отсутствует).
14.0.0
site Идентификатор сайта, для которого устанавливается параметр. Необязательный. Если установлен false, то будет текущий сайт (с 14.0). 5.0.6

См. также

Примеры использования

<?
// установим значение для поля 
// "E-Mail администратора сайта (отправитель по умолчанию)" 
// из настроек главного модуля
COption::SetOptionString("main","email_from","admin@site.com");
?>


Пользовательские комментарии

Пользовательские комментарии не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.

Добавлять комментарии могут только зарегистрированные пользователи. Сообщения для просмотра появляются после модерации.
8
Антон Долганин
Категорически не рекомендуется использовать данный метод для хранения объемной информации (максимум - обычные переменные, фразы, маленькие массивы). Дело в том, что все значения переменных, всех модулей наполняют массив GLOBALS на каждом хите.

Злоупотребление данным методом может сказаться в конечном счете на производительности всей системы.  
0
no@idefa.ru
Есть проблема сохранения списка ключей для google/yandex карт

По умолчанию они хранятся в таблице b_option в поле с именем map_google_keys (map_yandex_keys) в качестве сериализованного массива. При сохранении в БД методом COption::SetOptionString значение переменной $value обрезается до 2000 знаков, что приводит к краху всех остальных ключей тоже. То есть ошибка появится примерно после добавления 18-го домена с ключем Google/Yandex. Исправить эту проблему поможет обработчик:

Код
AddEventHandler("main", "OnAfterSetOption_map_google_keys", Array("DAllHandlers", "OnAfterSetOption_map_google_keys"));

function OnAfterSetOption_map_google_keys($value) {

   global $DB;
   $DB->Query("UPD ATE b_option SET VALUE='".$DB->ForSql($value)."' WHERE NAME='map_google_keys'");
   
}



Роберт Басыров: комментарий от разработчиков - с Oracle этот код работать не будет
© «Битрикс», 2001-2018, «1С-Битрикс», 2018
Наверх