- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/classes/general/user_options.php
- Класс: CUserOptions
- Вызов: CUserOptions::SetOption
static function SetOption($category, $name, $value, $bCommon = false, $user_id = false)
{
global $DB, $USER, $CACHE_MANAGER;
if($bCommon == true)
{
$user_id = 0;
}
elseif($user_id === false)
{
if(!is_object($USER))
{
return false;
}
$user_id = $USER->GetID();
}
$category = strtolower($category);
$user_id = intval($user_id);
$arFields = array(
"USER_ID" => $user_id,
"CATEGORY" => $category,
"NAME" => $name,
"VALUE" => serialize($value),
"COMMON" => ($bCommon ? "Y" : "N"),
);
$arUpdateFields = array(
"VALUE" => $arFields["VALUE"],
"COMMON" => $arFields["COMMON"],
);
$helper = BitrixMainApplication::getConnection()->getSqlHelper();
$sql = $helper->prepareMerge("b_user_option", array("USER_ID", "CATEGORY", "NAME"), $arFields, $arUpdateFields);
if(!$DB->Query(current($sql)))
{
return false;
}
if($bCommon)
{
$CACHE_MANAGER->cleanDir("user_option");
self::$cache = array();
}
else
{
$CACHE_MANAGER->clean("user_option:".$user_id.":".$category, "user_option");
unset(self::$cache[$user_id][$category]);
}
return true;
}