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