From 15c43e122adfc6473235061dc1a65465133e8ab1 Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Thu, 25 Jan 2024 14:01:06 +0100 Subject: [PATCH] wait #6681 @1 --- .../FluidbookPublication/CompositionOperation.php | 6 +++++- .../Operations/FluidbookPublication/PreviewOperation.php | 2 ++ app/Models/FluidbookPublication.php | 6 ++++++ resources/views/fields/fluidbook_composition.blade.php | 8 +++++++- 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/Admin/Operations/FluidbookPublication/CompositionOperation.php b/app/Http/Controllers/Admin/Operations/FluidbookPublication/CompositionOperation.php index cd36a77a1..6f3de05e2 100644 --- a/app/Http/Controllers/Admin/Operations/FluidbookPublication/CompositionOperation.php +++ b/app/Http/Controllers/Admin/Operations/FluidbookPublication/CompositionOperation.php @@ -25,7 +25,7 @@ trait CompositionOperation Route::match(['get'], $segment . '/docInfos/{doc_id}', $controller . '@docInfos'); Route::match(['get'], $segment . '/{fluidbook_id}/pdfarchive/{time}', $controller . '@pdfArchive'); Route::match(['get'], $segment . '/{fluidbook_id}/{type}/{page}.{ext}', $controller . '@getPageAsset') - ->whereIn('type', ['originalpdf', 'texts', 'index', 'layout']); + ->whereIn('type', ['originalpdf', 'texts', 'index', 'layout', 'links']); } protected function setupCompositionDefaults() @@ -43,6 +43,10 @@ trait CompositionOperation $doc = $fb->getDocument($page); return XSendFileController::sendfile($fb->protected_path('fluidbookpublication/docs/' . $doc->id . '/original.pdf'), 86400, ['Content-Disposition', 'attachment; filename="' . $doc->id . '.pdf"']); } + if ($type === 'links') { + $file = $fb->getLinksFile($page); + return XSendFileController::sendfile($file, headers: ['Content-type', 'text/plain']); + } $types = ['texts' => FluidbookDocument::TEXT_PLAIN, 'index' => FluidbookDocument::TEXT_INDEX, 'layout' => FluidbookDocument::TEXT_LAYOUT]; if (!isset($types[$type])) { abort(404, 'Text type not found'); diff --git a/app/Http/Controllers/Admin/Operations/FluidbookPublication/PreviewOperation.php b/app/Http/Controllers/Admin/Operations/FluidbookPublication/PreviewOperation.php index a48dead66..11d9813bc 100644 --- a/app/Http/Controllers/Admin/Operations/FluidbookPublication/PreviewOperation.php +++ b/app/Http/Controllers/Admin/Operations/FluidbookPublication/PreviewOperation.php @@ -11,6 +11,7 @@ use App\Models\FluidbookTheme; use Cubist\Backpack\Http\Controllers\Base\XSendFileController; use Cubist\Util\PHP; use Illuminate\Support\Facades\Auth; +use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Route; // __('!!Paramètres des fluidbooks') @@ -129,6 +130,7 @@ trait PreviewOperation $dest = $fluidbook->getFinalPath($theme, $isScorm); if ($path === 'index.html') { $fluidbook->incrementPreviewVisit(); + Log::debug('Compile fluidbook ' . $fluidbook->id . '//' . $path); $compiler = new Compiler($fluidbook, $isScorm, theme: $theme); $compiler->handle(); } diff --git a/app/Models/FluidbookPublication.php b/app/Models/FluidbookPublication.php index 2d82741f7..c8f4507ba 100644 --- a/app/Models/FluidbookPublication.php +++ b/app/Models/FluidbookPublication.php @@ -409,6 +409,12 @@ class FluidbookPublication extends ToolboxStatusModel return self::$_docs[$documentID]; } + public function getLinksFile($page){ + $compo = $this->getComposition()[$page]; + $document=self::_getDocument($compo[0]); + return $document->path('links').'p'.$compo[1].'.csv'; + } + public function getTextFile($page, $type = FluidbookDocument::TEXT_PLAIN, $mode = null) { $compo = $this->getComposition()[$page]; diff --git a/resources/views/fields/fluidbook_composition.blade.php b/resources/views/fields/fluidbook_composition.blade.php index 7f5d037ff..6ceff6016 100644 --- a/resources/views/fields/fluidbook_composition.blade.php +++ b/resources/views/fields/fluidbook_composition.blade.php @@ -490,7 +490,13 @@ callback: function (key, opt) { window.open('/fluidbook-publication/' + {{$entry->id}} + '/layout/' + ($(opt.$trigger[0]).index() + 1) + '.txt'); }, - } + }, + seelinks: { + name: "{{__('Liens détectés dans le PDF')}}", + callback: function (key, opt) { + window.open('/fluidbook-publication/' + {{$entry->id}} + '/links/' + ($(opt.$trigger[0]).index() + 1) + '.csv'); + }, + }, } } }; -- 2.39.5