• Модуль: disk
  • Путь к файлу: ~/bitrix/modules/disk/lib/baseobject.php
  • Класс: BitrixDiskBaseObject
  • Вызов: BaseObject::recalculateDeletedTypeAfterRestore
protected function recalculateDeletedTypeAfterRestore($restoredBy)
{
	$fakeContext = Storage::getFakeSecurityContext();
	$parents = $this->getParents($fakeContext, ['filter' => ['MIXED_SHOW_DELETED' => true]], SORT_ASC);
	foreach ($parents as $parent)
	{
		if(!$parent instanceof Folder || !$parent->isDeleted())
		{
			continue;
		}

		/** @var $parent Folder */
		foreach ($parent->getChildren($fakeContext, array('filter' => array('!==DELETED_TYPE' => ObjectTable::DELETED_TYPE_NONE,))) as $childPotentialRoot)
		{
			if($childPotentialRoot->getId() == $this->getId())
			{
				continue;
			}
			if($childPotentialRoot instanceof Folder)
			{
				/** @var $childPotentialRoot Folder */
				$childPotentialRoot->markDeletedNonRecursiveInternal($childPotentialRoot->getDeletedBy());
			}
			elseif($childPotentialRoot instanceof File)
			{
				$childPotentialRoot->markDeletedInternal($childPotentialRoot->getDeletedBy());
			}
		}
	}

	foreach ($parents as $parent)
	{
		if (!$parent instanceof Folder || !$parent->isDeleted())
		{
			continue;
		}

		$parent->restoreNonRecursive($restoredBy);
	}
}