• Модуль: clouds
  • Путь к файлу: ~/bitrix/modules/clouds/classes/general/storage_bucket.php
  • Класс: CCloudStorageBucket
  • Вызов: CCloudStorageBucket::Update
function Update($arFields)
{
	global $DB, $CACHE_MANAGER;

	if($this->_ID <= 0)
		return false;

	$this->service = CCloudStorage::GetServiceByID($this->SERVICE_ID);
	if(!is_object($this->service))
		return false;

	unset($arFields["FILE_COUNT"]);
	unset($arFields["SERVICE_ID"]);
	unset($arFields["LOCATION"]);
	unset($arFields["BUCKET"]);

	if(!$this->CheckFields($arFields, $this->_ID))
		return false;

	if(array_key_exists("FILE_RULES", $arFields))
	{
		if(is_array($arFields["FILE_RULES"]))
			$arFields["FILE_RULES"] = serialize($arFields["FILE_RULES"]);
		else
			$arFields["FILE_RULES"] = false;
	}

	if(array_key_exists("SETTINGS", $arFields))
	{
		if(!$this->CheckSettings($arFields["SETTINGS"]))
			return false;
		$arFields["SETTINGS"] = serialize($arFields["SETTINGS"]);
	}

	$strUpdate = $DB->PrepareUpdate("b_clouds_file_bucket", $arFields);
	if($strUpdate <> '')
	{
		$strSql = "
			UPDATE b_clouds_file_bucket SET
			".$strUpdate."
			WHERE ID = ".$this->_ID."
		";
		if(!is_object($DB->Query($strSql)))
			return false;
	}

	self::$arBuckets = null;
	$this->arBucket = null;
	if(CACHED_b_clouds_file_bucket !== false)
		$CACHE_MANAGER->CleanDir("b_clouds_file_bucket");

	return $this->_ID;
}