- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/integration/diskmanager.php
- Класс: Bitrix\Crm\Integration\DiskManager
- Вызов: DiskManager::loadFolderModel
static function loadFolderModel($storage, $parent, $typeID, $xmlID, $name)
{
$parentIsStorage = ($parent === $storage);
$folderModel = Folder::load(
array(
'STORAGE_ID' => $storage->getId(),
'PARENT_ID' => $parentIsStorage ? $parent->getRootObjectId() : $parent->getId(),
'DELETED_TYPE' => ObjectTable::DELETED_TYPE_NONE,
'=XML_ID' => $xmlID,
)
);
if (!$folderModel)
{
$rights = array();
if ($typeID === StorageFileType::EmailAttachment)
{
$specificRights = Driver::getInstance()->getRightsManager()->getSpecificRights($storage->getRootObject());
foreach ($specificRights as $right)
{
unset($right['ID'], $right['DOMAIN'], $right['OBJECT_ID']);
$right['NEGATIVE'] = true;
$rights[] = $right;
}
}
$data = array(
'NAME' => $name,
'XML_ID' => $xmlID,
'CREATED_BY' => SystemUser::SYSTEM_USER_ID
);
if ($parentIsStorage)
{
$folderModel = $parent->addFolder($data, $rights, true);
}
else
{
$folderModel = $parent->addSubFolder($data, $rights, true);
}
}
return $folderModel;
}