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