• Модуль: 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;
}