• Модуль: clouds
  • Путь к файлу: ~/bitrix/modules/clouds/classes/general/storage_bucket.php
  • Класс: CCloudStorageBucket
  • Вызов: CCloudStorageBucket::Add
function Add($arFields, $createBucket = true)
{
	global $DB, $APPLICATION, $CACHE_MANAGER;
	$strError = '';
	$this->_ID = 0;

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

	$arFields["FILE_COUNT"] = 0;
	if(is_array($arFields["FILE_RULES"]))
		$arFields["FILE_RULES"] = serialize($arFields["FILE_RULES"]);
	else
		$arFields["FILE_RULES"] = false;

	$this->arBucket = $arFields;
	if($this->Init())
	{

		if(!$this->CheckSettings($arFields["SETTINGS"]))
			return false;
		$this->arBucket["SETTINGS"] = $arFields["SETTINGS"];

		if ($createBucket)
			$creationResult = $this->CreateBucket();
		else
			$creationResult = true;

		if ($creationResult)
		{
			$arFields["SETTINGS"] = serialize($arFields["SETTINGS"]);
			$this->_ID = $DB->Add("b_clouds_file_bucket", $arFields);
			self::$arBuckets = null;
			$this->arBucket = null;
			if (CACHED_b_clouds_file_bucket !== false)
				$CACHE_MANAGER->CleanDir("b_clouds_file_bucket");
			return $this->_ID;
		}
		else
		{
			$e = $APPLICATION->GetException();
			if (is_object($e))
				$strError = GetMessage("CLO_STORAGE_CLOUD_ADD_ERROR", array("#error_msg#" => $e->GetString()));
			else
				$strError = GetMessage("CLO_STORAGE_CLOUD_ADD_ERROR", array("#error_msg#" => 'CSB42343'));
		}
	}
	else
	{
		$strError = GetMessage("CLO_STORAGE_CLOUD_ADD_ERROR", array("#error_msg#" => GetMessage("CLO_STORAGE_UNKNOWN_SERVICE")));
	}

	$APPLICATION->ResetException();
	$e = new CApplicationException($strError);
	$APPLICATION->ThrowException($e);
	return false;
}