From 3ed705b1e2ae374b500d4225d26102eb8d937780 Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Tue, 30 Aug 2022 19:44:47 +0200 Subject: [PATCH] wip #4216 @1 --- app/Fields/FluidbookThemeImage.php | 12 ++++++++++ .../FluidbookPublication/PreviewOperation.php | 10 ++++---- app/Jobs/FluidbookCompiler.php | 16 ++++++++++--- app/Models/FluidbookTheme.php | 23 ++++++++----------- 4 files changed, 38 insertions(+), 23 deletions(-) create mode 100644 app/Fields/FluidbookThemeImage.php diff --git a/app/Fields/FluidbookThemeImage.php b/app/Fields/FluidbookThemeImage.php new file mode 100644 index 000000000..a726fac3a --- /dev/null +++ b/app/Fields/FluidbookThemeImage.php @@ -0,0 +1,12 @@ +theme->getFirstMediaPath($collection); if (!$path || !file_exists($path)) { - return false; + $res = false; + } else { + $res = new SplFileInfo($path); } - return new SplFileInfo($path); + } else { + $res = false; } - return false; + if (null !== $this->config) { + if ($res instanceof SplFileInfo) { + $this->config->set($key, $res->getFilename()); + } else { + $this->config->set($key, ''); + } + } + return $res; } /** diff --git a/app/Models/FluidbookTheme.php b/app/Models/FluidbookTheme.php index 838c72e95..536817cac 100644 --- a/app/Models/FluidbookTheme.php +++ b/app/Models/FluidbookTheme.php @@ -3,6 +3,7 @@ namespace App\Models; +use App\Fields\FluidbookThemeImage; use App\Jobs\GenerateThemePreview; use App\Jobs\UpdateWS2ThemeTable; use App\Models\Base\ToolboxSettingsModel; @@ -225,8 +226,8 @@ class FluidbookTheme extends ToolboxSettingsModel $this->addField([ 'name' => 'symbols', - 'name_as_collection' => true, - 'type' => 'Images', + 'type' => FluidbookThemeImage::class, + 'accept' => '.svg', 'label' => __('Remplacer des icônes (symboles svg)'), 'translatable' => false, ]); @@ -417,8 +418,7 @@ class FluidbookTheme extends ToolboxSettingsModel ]); $this->addField([ 'name' => 'backgroundImage', - 'name_as_collection' => true, - 'type' => 'Images', + 'type' => FluidbookThemeImage::class, 'label' => __('Image de fond'), 'translatable' => false, ]); @@ -495,8 +495,7 @@ class FluidbookTheme extends ToolboxSettingsModel $this->addField([ 'name' => 'menuImage', - 'name_as_collection' => true, - 'type' => 'Images', + 'type' => FluidbookThemeImage::class, 'label' => __('Image de fond'), 'translatable' => false, ]); @@ -510,8 +509,7 @@ class FluidbookTheme extends ToolboxSettingsModel ]); $this->addField([ 'name' => 'afterSearch', - 'name_as_collection' => true, - 'type' => 'Images', + 'type' => FluidbookThemeImage::class, 'label' => __('Image supplémentaire'), 'hint' => __('Image disposée à droite des icônes'), 'translatable' => false, @@ -523,8 +521,7 @@ class FluidbookTheme extends ToolboxSettingsModel ]); $this->addField([ 'name' => 'logo', - 'name_as_collection' => true, - 'type' => 'Images', + 'type' => FluidbookThemeImage::class, 'label' => __('Logo'), 'translatable' => false, ]); @@ -540,8 +537,7 @@ class FluidbookTheme extends ToolboxSettingsModel ]); $this->addField([ 'name' => 'favicon', - 'name_as_collection' => true, - 'type' => 'Images', + 'type' => FluidbookThemeImage::class, 'label' => __('Icone (pour favicon et CD-ROM)'), 'hint' => __('Image PNG de 256x256'), 'translatable' => false, @@ -580,8 +576,7 @@ class FluidbookTheme extends ToolboxSettingsModel ]); $this->addField([ 'name' => 'logoLoader', - 'name_as_collection' => true, - 'type' => 'Images', + 'type' => FluidbookThemeImage::class, 'label' => __('Logo affiché au chargement'), 'translatable' => false, ]); -- 2.39.5