protected static function _getFluidbookAndTheme($id, $hash, &$fluidbook, &$theme)
{
$ee = explode('-', $id);
- if (count($ee) === 1) {
- $forceThemeData = request('theme', false);
- if ($forceThemeData) {
- $theme = FluidbookTheme::fromArray(json_decode($forceThemeData, true));
- }
- } else {
+ $forceThemeData = request('theme', false);
+ if ($forceThemeData) {
+ $theme = FluidbookTheme::fromArray(json_decode($forceThemeData, true));
+ } else if (count($ee) == 2) {
$theme = FluidbookTheme::find($ee[1]);
$id = $ee[0];
}
if ($collection) {
$path = $this->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;
}
/**
namespace App\Models;
+use App\Fields\FluidbookThemeImage;
use App\Jobs\GenerateThemePreview;
use App\Jobs\UpdateWS2ThemeTable;
use App\Models\Base\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,
]);
]);
$this->addField([
'name' => 'backgroundImage',
- 'name_as_collection' => true,
- 'type' => 'Images',
+ 'type' => FluidbookThemeImage::class,
'label' => __('Image de fond'),
'translatable' => false,
]);
$this->addField([
'name' => 'menuImage',
- 'name_as_collection' => true,
- 'type' => 'Images',
+ 'type' => FluidbookThemeImage::class,
'label' => __('Image de fond'),
'translatable' => false,
]);
]);
$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,
]);
$this->addField([
'name' => 'logo',
- 'name_as_collection' => true,
- 'type' => 'Images',
+ 'type' => FluidbookThemeImage::class,
'label' => __('Logo'),
'translatable' => false,
]);
]);
$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,
]);
$this->addField([
'name' => 'logoLoader',
- 'name_as_collection' => true,
- 'type' => 'Images',
+ 'type' => FluidbookThemeImage::class,
'label' => __('Logo affiché au chargement'),
'translatable' => false,
]);