• Модуль: disk
  • Путь к файлу: ~/bitrix/modules/disk/lib/bitrix24disk/legacy/diskstorage.php
  • Класс: BitrixDiskBitrix24DiskLegacyDiskStorage
  • Вызов: DiskStorage::addDirectory
public function addDirectory($name, $parentDirectoryId, array $data = array())
{
	if(!$parentDirectoryId)
	{
		$folder = $this->storage->getRootObject();
	}
	else
	{
		$folder = Folder::loadById($parentDirectoryId);
	}

	if(!$folder)
	{
		$this->errorCollection->add(array(new Error("Could not find folder " . __METHOD__ . "  by  {$name}, {$parentDirectoryId}", 189146)));
		return array();
	}

	if(!$folder->canAdd($this->storage->getSecurityContext($this->userId)))
	{
		throw new AccessDeniedException;
	}

	$folderData = array(
		'NAME' => $name,
		'CREATED_BY' => $this->getUser()->getId(),
	);
	if(!empty($data['originalTimestamp']))
	{
		$folderData['UPDATE_TIME'] = DateTime::createFromTimestamp($this->convertFromExternalVersion($data['originalTimestamp']));
	}

	if(isset($data['code']) && $data['code'] === 'saved_files')
	{
		$sub = $this->storage->getFolderForSavedFiles();
	}
	else
	{
		$sub = $folder->addSubFolder($folderData);
	}

	if($sub)
	{
		$this->loadTree();
		return $this->formatFolderToResponse($sub);
	}
	$this->errorCollection->add(array(new Error("Could not " . __METHOD__ . " , addSubFolder by name {$name}, parentId {$folder->getId()}", 199147)));
	$this->errorCollection->add($folder->getErrors());

	/** @var Folder $folder */
	$parentId = $folder->getRealObject()->getId();
	$folder = Folder::load(array('=NAME' => $name, 'PARENT_ID' => $parentId));
	if($folder)
	{
		$this->loadTree();
		return $this->formatFolderToResponse($folder);
	}
	$this->errorCollection->add(array(new Error("Could not " . __METHOD__ . " , load Folder by name {$name}, parentId {$parentId}", 11147)));
	return array();
}