diff --git a/lib/models/Courseware/BlockTypes/BlockType.php b/lib/models/Courseware/BlockTypes/BlockType.php index 50bcc4254f18ff75ab282f23bc1bb2810c78a523..88f07b13f4c6d2673270e576980a09c927c38c7c 100644 --- a/lib/models/Courseware/BlockTypes/BlockType.php +++ b/lib/models/Courseware/BlockTypes/BlockType.php @@ -332,7 +332,13 @@ abstract class BlockType { static $file_map = []; - if ($this->block->container->structural_element->range_id === $rangeId) { + $file_ref = \FileRef::find($fileId); + + if (!$file_ref) { + return ''; + } + + if ($file_ref->getRangeCourseId() === $rangeId) { return $fileId; } @@ -341,16 +347,15 @@ abstract class BlockType } $user = \User::findCurrent(); - if ($file_ref = \FileRef::find($fileId)) { - $copiedFile = \FileManager::copyFile( - $file_ref->getFiletype(), - $this->getDestinationFolder($user, $rangeId), - $user - ); + $destinationFolder = $this->getDestinationFolder($user, $rangeId); + $copiedFile = \FileManager::copyFile( + $file_ref->getFiletype(), + $destinationFolder, + $user + ); - if (is_object($copiedFile)) { - return $file_map[$fileId] = $copiedFile->id; - } + if (is_object($copiedFile)) { + return $file_map[$fileId] = $copiedFile->id; } return ''; @@ -368,7 +373,13 @@ abstract class BlockType { static $folder_map = []; - if ($this->block->container->structural_element->range_id === $rangeId) { + $sourceFolder = \Folder::find($folderId); + + if (!$sourceFolder) { + return ''; + } + + if ($sourceFolder->getRangeCourseId() === $rangeId) { return $folderId; } @@ -378,16 +389,14 @@ abstract class BlockType $user = \User::findCurrent(); $destinationFolder = $this->getDestinationFolder($user, $rangeId); - if ($sourceFolder = \Folder::find($folderId)) { - $copiedFolder = \FileManager::copyFolder( - $sourceFolder->getTypedFolder(), - $destinationFolder, - $user - ); + $copiedFolder = \FileManager::copyFolder( + $sourceFolder->getTypedFolder(), + $destinationFolder, + $user + ); - if (is_object($copiedFolder)) { - return $folder_map[$folderId] = $copiedFolder->id; - } + if (is_object($copiedFolder)) { + return $folder_map[$folderId] = $copiedFolder->id; } return '';