From: Vincent Vanwaelscappel Date: Fri, 15 Oct 2021 10:40:06 +0000 (+0200) Subject: wip #4793 @1 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=0adb4c5e928bf5259f83fffceb3a4fe0dc7321de;p=fluidbook_tools.git wip #4793 @1 --- diff --git a/src/Compiler/Compiler.php b/src/Compiler/Compiler.php index c35f8dd..1f3ec23 100644 --- a/src/Compiler/Compiler.php +++ b/src/Compiler/Compiler.php @@ -5,7 +5,6 @@ namespace Fluidbook\Tools\Compiler; use Cubist\Util\Files\Files; use Cubist\Util\Files\VirtualDirectory; use Cubist\Util\PHP; -use Cubist\Util\Zip; use Exception; use Fluidbook\Tools\Jobs\ProcessFile; use Fluidbook\Tools\Jobs\ProcessPage; @@ -20,7 +19,6 @@ use Illuminate\Queue\Jobs\SyncJob; use Illuminate\Queue\SerializesModels; use JsonException; use stdClass; -use ZipStream\File; class Compiler implements ShouldQueue, ShouldBeUnique { @@ -55,7 +53,7 @@ class Compiler implements ShouldQueue, ShouldBeUnique /** * @var string */ - public $wdir; + public $wdir = ''; /** * @var string @@ -166,8 +164,11 @@ class Compiler implements ShouldQueue, ShouldBeUnique { start_measure('Compile fluidbook'); - $this->wdir = resource_path('fluidbook/working/'); - Files::mkdir($this->wdir); + if ($this->wdir === '') { + $this->wdir = resource_path('fluidbook/working/'); + Files::mkdir($this->wdir); + } + $this->vdir = new VirtualDirectory($this->out); if ($this->stub !== '') { $this->vdir->copyDirectory($this->stub, '/'); @@ -269,24 +270,6 @@ class Compiler implements ShouldQueue, ShouldBeUnique } } - public function unzipFile($file, $moveAssets = false, $baseDir = null) - { - $fdir = is_null($baseDir) ? 'data/links/' . str_replace('.', '_', $file) : $baseDir; - - $tmp = Files::tmpdir(); - $dir = $tmp . '/' . $fdir; - Files::mkdir($dir); - - Zip::extract($this->wdir . '/' . $file, $dir); - - if ($moveAssets) { - `mv $dir/Assets/* $dir`; - rmdir($dir . '/Assets'); - } - - return array('dir' => $dir, 'fdir' => $fdir); - } - protected function compilePageNumbers() { diff --git a/src/Compiler/Links.php b/src/Compiler/Links.php index 8b15790..7a0e7d0 100644 --- a/src/Compiler/Links.php +++ b/src/Compiler/Links.php @@ -3,6 +3,9 @@ namespace Fluidbook\Tools\Compiler; use Cubist\Util\ArrayUtil; +use Cubist\Util\Files\Files; +use Cubist\Util\Zip; +use Exception; use Fluidbook\Tools\Links\ContentLink; use Fluidbook\Tools\Links\Link; use Nette\Utils\Image; @@ -431,11 +434,39 @@ trait Links foreach ($source as $so) { $s = $this->wdir . $so; - //dd($s,$so,$dest); if (file_exists($s)) { $d = $dest . '/' . $so; $this->simpleCopyLinkFile($s, $d, false); } } } + + /** + * @throws Exception + */ + public function unzipFile($file, $moveAssets = false, $baseDir = null) + { + $fdir = is_null($baseDir) ? 'data/links/' . str_replace('.', '_', Files::getFilename($file)) : $baseDir; + + $dir = $this->wdir . $fdir; + Files::mkdir($dir); + + if (!file_exists($file) && file_exists($this->wdir . '/' . $file)) { + $file = $this->wdir . '/' . $file; + } + + if (!file_exists($file)) { + throw new Exception('Zip file ' . $file . ' does not exist'); + } + + + Zip::extract($file, $dir); + + if ($moveAssets) { + `mv $dir/Assets/* $dir`; + rmdir($dir . '/Assets'); + } + + return array('dir' => $dir, 'fdir' => $fdir); + } } diff --git a/src/Links/SlideshowLink.php b/src/Links/SlideshowLink.php index 32c6ece..5b3b9b8 100644 --- a/src/Links/SlideshowLink.php +++ b/src/Links/SlideshowLink.php @@ -25,7 +25,7 @@ class SlideshowLink extends NormalLink $this->copyExternalDir($d['dir'], $d['fdir']); $this->path = $d['fdir']; - $this->path_absolute = $this->compiler->getVirtualDirectory()->path($d['fdir']); + $this->path_absolute = $d['dir']; return '#/slideshow/' . $this->uid; } @@ -163,9 +163,12 @@ class SlideshowLink extends NormalLink $res .= '