]> _ Git - fluidbook-toolbox.git/commitdiff
wait #7611 @2
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Thu, 26 Jun 2025 09:19:39 +0000 (11:19 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Thu, 26 Jun 2025 09:19:39 +0000 (11:19 +0200)
app/Models/ELearningPackage.php

index 5e4042aff72c93f0fe6c15499659ce18198c8a91..4a86e329a0372a4617c7c087478b7f73c26e970b 100644 (file)
@@ -8,6 +8,7 @@ use App\Http\Controllers\Admin\Operations\ChangeownerOperation;
 use App\Http\Controllers\Admin\Operations\ELearningPackage\ImportOperation;
 use App\Http\Controllers\Admin\Operations\ELearningPackage\PreviewOperation;
 use App\Http\Controllers\Admin\Operations\ELearningPackage\DownloadOperation;
+use App\Jobs\FluidbookPackage;
 use App\Models\Base\ToolboxDownloadable;
 use App\Models\Base\ToolboxModel;
 use App\Models\Traits\CheckHash;
@@ -19,6 +20,7 @@ use Cubist\Backpack\Magic\Fields\Text;
 use Cubist\Backpack\Magic\Fields\Textarea;
 use Cubist\Scorm\Manifest;
 use Cubist\Scorm\Version;
+use Cubist\Util\CommandLine\Rsync;
 use Cubist\Util\Files\Files;
 use Cubist\Util\Files\VirtualDirectory;
 use Cubist\Util\Zip;
@@ -173,16 +175,21 @@ class ELearningPackage extends ToolboxModel
         $tmp = Files::tmpdir();
         $vdir->addTemp($tmp);
 
+        $book = FluidbookPublication::withoutGlobalScopes()->find($id);
 
+        $packager = Packager::package($id, 'scorm', false, true);
+        $packager->handle();
+        if ($packager->getFinalPath()) {
+            $rsync = new Rsync($packager->getFinalPath(), $tmp);
+            $rsync->execute();
 
-        $workshop = new WorkshopV2($user);
-        $workshop->installBook($id, $tmp, [], 'scorm');
-        if (file_exists($tmp . '/imsmanifest.xml')) {
-            unlink($tmp . '/imsmanifest.xml');
+
+            if (file_exists($tmp . '/imsmanifest.xml')) {
+                unlink($tmp . '/imsmanifest.xml');
+            }
+            $vdir->copyDirectory($tmp, $basePath);
         }
-        $vdir->copyDirectory($tmp, $basePath);
-        $meta = $workshop->getMetadata($id);
-        return $meta->title;
+        return $book->title;
     }
 
     protected function _compileQuiz($id, $quiz_file, $vdir, $basePath)
@@ -202,7 +209,7 @@ class ELearningPackage extends ToolboxModel
         if (null === $quiz) {
             return null;
         }
-        $quiz->compile($tmp, true);
+        $quiz->compile($tmp, null, true);
         if (file_exists($tmp . '/imsmanifest.xml')) {
             unlink($tmp . '/imsmanifest.xml');
         }