From 5775fadfa3e68e791bc1332885090bb20e199343 Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Tue, 22 Jul 2025 16:21:36 +0200 Subject: [PATCH] wip #7634 @0:20 --- .../MarkdownOperation.php | 17 +++------------ app/Models/FluidbookPublication.php | 21 ++++++++++++++++++- .../markdown_editor.blade.php | 14 +------------ 3 files changed, 24 insertions(+), 28 deletions(-) diff --git a/app/Http/Controllers/Admin/Operations/FluidbookPublication/MarkdownOperation.php b/app/Http/Controllers/Admin/Operations/FluidbookPublication/MarkdownOperation.php index 11af21df2..5eaf70624 100644 --- a/app/Http/Controllers/Admin/Operations/FluidbookPublication/MarkdownOperation.php +++ b/app/Http/Controllers/Admin/Operations/FluidbookPublication/MarkdownOperation.php @@ -23,20 +23,9 @@ trait MarkdownOperation } $token = Str::random(10); - $files = $this->getFilesById($id); + $fluidbook=FluidbookPublication::find($id); + $contents=$fluidbook->getAccessibleContents(); - return view('fluidbook_publication.markdown_editor', ['files' => $files, 'version' => 'stable', 'id' => $id, 'fluidbook' => FluidbookPublication::find($id), 'access' => "", 'token' => $token]); - } - - public function getFilesById($id) - { - //$p = $request->page;; - $files = Files::getRecursiveDirectoryIterator(public_path("/markdown_files/$id"), true); - - return $files; - - //if(!file_exists($path)) return false; - - //return file_get_contents(public_path("/markdown_files/$id/p$p.md")); + return view('fluidbook_publication.markdown_editor', ['contents' => $contents, 'version' => 'stable', 'id' => $id, 'fluidbook' => $fluidbook, 'access' => "", 'token' => $token]); } } diff --git a/app/Models/FluidbookPublication.php b/app/Models/FluidbookPublication.php index 37cf7896a..37c603a91 100644 --- a/app/Models/FluidbookPublication.php +++ b/app/Models/FluidbookPublication.php @@ -461,11 +461,30 @@ class FluidbookPublication extends ToolboxStatusModel return self::_getDocument($compo[0])->getHightlightFile($compo[1], $this->search_mode ?: 'standard', $this->ignoreSearchSeparators); } - public function getAccessibleFile($page,$format='md'){ + public function getAccessibleFile($page, $format = 'md') + { $compo = $this->getComposition()[$page]; return self::_getDocument($compo[0])->getMarkdown($compo[1]); } + public function getAccessibleContents($revision = 'latest') + { + $file = Files::mkdir($this->protected_path('fluidbookpublication/accessible/' . $this->id . '/')) . $revision . '.accessible.gz'; + if (!file_exists($file)) { + if ($revision === 'latest') { + $json = ['pages' => []]; + foreach ($this->getComposition() as $page => $d) { + $json['pages'][$page] = file_get_contents($this->getAccessibleFile($page)); + } + + file_put_contents($file, gzencode(json_encode($json))); + return $json; + } + } else { + return json_decode(gzdecode(file_get_contents($file)),true); + } + } + public function getPDFSplitSource($page) { if ($page > $this->getPagesNumber()) { diff --git a/resources/views/fluidbook_publication/markdown_editor.blade.php b/resources/views/fluidbook_publication/markdown_editor.blade.php index 05dc732af..0b482657c 100644 --- a/resources/views/fluidbook_publication/markdown_editor.blade.php +++ b/resources/views/fluidbook_publication/markdown_editor.blade.php @@ -3,13 +3,6 @@ $fbdata['settings']['pages']=$fbdata['pages']=$fluidbook->getPagesNumber(); $fbdata['settings']['imageFormat']=$fluidbook->getImageFormat(); $fbdata['page_dimensions']=[]; - - $collection = collect($files); - $filesdata = $collection->flatMap(function($item) { - $filename = $item->getFilename(); - return [$filename => file_get_contents($item)]; - } ); - $sorted = $filesdata->sortKeys(); @endphp @extends('layouts.markdowneditor') @@ -73,12 +66,7 @@ @push('markdown_scripts') -- 2.39.5