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