- Модуль: disk
- Путь к файлу: ~/bitrix/modules/disk/lib/copy/integration/group.php
- Класс: BitrixDiskCopyIntegrationGroup
- Вызов: Group::copyFolders
private function copyFolders(
int $groupId,
int $copiedGroupId,
Folder $folder,
Folder $targetFolder,
array &$mapFolderIds
)
{
$mapFolderIds[$folder->getId()] = $targetFolder->getId();
$this->setFolderRights(
$groupId,
$copiedGroupId,
$folder,
$targetFolder
);
$children = $folder->getChildren(
$this->securityContext,
[
'select' => [
'*',
'HAS_SUBFOLDERS',
]
]
);
foreach ($children as $child)
{
if ($child instanceof Folder)
{
$newFolder = $targetFolder->addSubFolder(
[
'NAME' => $child->getName(),
'CREATED_BY' => $this->executiveUserId,
]
);
if ($newFolder)
{
$mapFolderIds[$child->getId()] = $newFolder->getId();
if ($child->getChildren($this->securityContext))
{
$this->copyFolders(
$groupId,
$copiedGroupId,
$child,
$newFolder,
$mapFolderIds
);
}
}
}
}
}