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

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");
?>


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

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

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

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
0
Екатерина Апарова
Сообщение не промодерировано, возможны ошибки и неточности.
Поле Description Не работает. Из метода не передается дальше. А хотелось бы, чтобы работало.


[COLOR=#bcbec4][FONT=JetBrains Mono, monospace]
Код
public static function SetOptionString($module_id, $name, $value="", $desc=false, $site="")
{
    \Bitrix\Main\Config\Option::set($module_id, $name, $value, $site);
    return true;
}
[/FONT][/COLOR]
0
Андрей Рабой
Сообщение не промодерировано, возможны ошибки и неточности.
Получить Ключ API для Yandex Карт из настроек "Управление структурой" можно так
Код
COption::GetOptionString('fileman', 'yandex_map_api_key')
9
Антон Долганин
Категорически не рекомендуется использовать данный метод для хранения объемной информации (максимум - обычные переменные, фразы, маленькие массивы). Дело в том, что все значения переменных, всех модулей наполняют массив GLOBALS на каждом хите.

Злоупотребление данным методом может сказаться в конечном счете на производительности всей системы.  
1
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-2024, «1С-Битрикс», 2024
Наверх