From a77600a39f3d80209d112d5ca7bf5bfe812ec52e Mon Sep 17 00:00:00 2001 From: soufiane Date: Mon, 26 Jun 2023 17:56:40 +0200 Subject: [PATCH] wip #6606 @7:00 --- .../Services/SocialImageOperation.php | 2 +- app/Jobs/GenerateSecondPagePreview.php | 34 ++++ app/Models/FluidbookTheme.php | 1 + public/images/icons/icon-bookmark.svg | 3 + public/images/icons/icon-download.svg | 3 + public/images/icons/icon-fullscreen.svg | 3 + public/images/icons/icon-help.svg | 3 + public/images/icons/icon-index.svg | 3 + public/images/icons/icon-menu.svg | 3 + public/images/icons/icon-note.svg | 7 + public/images/icons/icon-print.svg | 3 + public/images/icons/icon-search.svg | 3 + public/images/icons/icon-share-blue.svg | 3 + public/images/icons/icon-sound.svg | 3 + .../fluidbook/toolbox/css/delivery.css | 57 +++++++ .../fluidbook/toolbox/css/delivery.css.map | 2 +- .../fluidbook/toolbox/css/delivery.less | 64 ++++++++ .../theme_preview/secondpage_preview.js | 45 ++++++ .../fluidbook_publication/delivery.blade.php | 152 ++++++++++++------ 19 files changed, 342 insertions(+), 52 deletions(-) create mode 100644 app/Jobs/GenerateSecondPagePreview.php create mode 100644 public/images/icons/icon-bookmark.svg create mode 100644 public/images/icons/icon-download.svg create mode 100644 public/images/icons/icon-fullscreen.svg create mode 100644 public/images/icons/icon-help.svg create mode 100644 public/images/icons/icon-index.svg create mode 100644 public/images/icons/icon-menu.svg create mode 100644 public/images/icons/icon-note.svg create mode 100644 public/images/icons/icon-print.svg create mode 100644 public/images/icons/icon-search.svg create mode 100644 public/images/icons/icon-share-blue.svg create mode 100644 public/images/icons/icon-sound.svg create mode 100644 resources/fluidbooktheme/theme_preview/secondpage_preview.js diff --git a/app/Http/Controllers/Admin/Operations/FluidbookPublication/Services/SocialImageOperation.php b/app/Http/Controllers/Admin/Operations/FluidbookPublication/Services/SocialImageOperation.php index c1ca93b57..bc5e6aa92 100644 --- a/app/Http/Controllers/Admin/Operations/FluidbookPublication/Services/SocialImageOperation.php +++ b/app/Http/Controllers/Admin/Operations/FluidbookPublication/Services/SocialImageOperation.php @@ -16,7 +16,7 @@ trait SocialImageOperation protected function setupSocialimageRoutes($segment, $routeName, $controller) { foreach (['services', 's'] as $segment) { - Route::match(['get'], $segment . '/socialimage/{cid?}/{time?}', $controller . '@socialImage')->withoutMiddleware([CheckIfAdmin::class]); + Route::match(['get'], $segment . '/socialimage/{cid?}/{time?}', $controller . '@socialImage')->withoutMiddleware([CheckIfAdmin::class])->name('social_image'); Route::match(['get'], $segment . '/socialimage', $controller . '@ws2SocialImage')->withoutMiddleware([CheckIfAdmin::class]); Route::match(['get'], $segment . '/facebook_thumbnail', $controller . '@ws2SocialImage')->withoutMiddleware([CheckIfAdmin::class]); } diff --git a/app/Jobs/GenerateSecondPagePreview.php b/app/Jobs/GenerateSecondPagePreview.php new file mode 100644 index 000000000..2e6785f54 --- /dev/null +++ b/app/Jobs/GenerateSecondPagePreview.php @@ -0,0 +1,34 @@ +width = $width; + } + + /** + * Execute the job. + */ + public function handle(): void + { + $cl = new CommandLine('node'); + $cl->setArg(null, resource_path('fluidbooktheme/theme_preview/secondpage_preview.js')); + $cl->setArg('width', $this->width); + $cl->setArg('height', 1080); + $cl->setArg('delay', 2); + $cl->setArg('scale', 1); + $cl->setArg('dest', self::getPreviewPath($this->theme->getIdValue())); + $cl->setArg('page', 2); + $url = $this->theme->getPreviewURL(['shortLoading' => 1, 'transition' => 1, 'puppeteer' => 1]); + $cl->setArg('url', $url); + $cl->execute(); + } +} diff --git a/app/Models/FluidbookTheme.php b/app/Models/FluidbookTheme.php index fba9f2629..fe9ae4d35 100644 --- a/app/Models/FluidbookTheme.php +++ b/app/Models/FluidbookTheme.php @@ -6,6 +6,7 @@ namespace App\Models; use App\Fields\FluidbookFont; use App\Fields\FluidbookThemeImage; use App\Http\Controllers\Admin\Operations\ChangeownerOperation; +use App\Jobs\GenerateSecondPagePreview; use App\Jobs\GenerateThemePreview; use App\Jobs\UpdateWS2ThemeTable; use App\Models\Base\ToolboxSettingsModel; diff --git a/public/images/icons/icon-bookmark.svg b/public/images/icons/icon-bookmark.svg new file mode 100644 index 000000000..c94e55e08 --- /dev/null +++ b/public/images/icons/icon-bookmark.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/images/icons/icon-download.svg b/public/images/icons/icon-download.svg new file mode 100644 index 000000000..43e5c8580 --- /dev/null +++ b/public/images/icons/icon-download.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/images/icons/icon-fullscreen.svg b/public/images/icons/icon-fullscreen.svg new file mode 100644 index 000000000..b068eddc2 --- /dev/null +++ b/public/images/icons/icon-fullscreen.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/images/icons/icon-help.svg b/public/images/icons/icon-help.svg new file mode 100644 index 000000000..ea1ece6b6 --- /dev/null +++ b/public/images/icons/icon-help.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/images/icons/icon-index.svg b/public/images/icons/icon-index.svg new file mode 100644 index 000000000..d09b1b579 --- /dev/null +++ b/public/images/icons/icon-index.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/images/icons/icon-menu.svg b/public/images/icons/icon-menu.svg new file mode 100644 index 000000000..a3ef6c0ac --- /dev/null +++ b/public/images/icons/icon-menu.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/images/icons/icon-note.svg b/public/images/icons/icon-note.svg new file mode 100644 index 000000000..a3dc687bb --- /dev/null +++ b/public/images/icons/icon-note.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/images/icons/icon-print.svg b/public/images/icons/icon-print.svg new file mode 100644 index 000000000..9e4678e01 --- /dev/null +++ b/public/images/icons/icon-print.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/images/icons/icon-search.svg b/public/images/icons/icon-search.svg new file mode 100644 index 000000000..df3a5fd54 --- /dev/null +++ b/public/images/icons/icon-search.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/images/icons/icon-share-blue.svg b/public/images/icons/icon-share-blue.svg new file mode 100644 index 000000000..4f915789c --- /dev/null +++ b/public/images/icons/icon-share-blue.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/images/icons/icon-sound.svg b/public/images/icons/icon-sound.svg new file mode 100644 index 000000000..b237cd456 --- /dev/null +++ b/public/images/icons/icon-sound.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/packages/fluidbook/toolbox/css/delivery.css b/public/packages/fluidbook/toolbox/css/delivery.css index ad4b513f7..68740d239 100644 --- a/public/packages/fluidbook/toolbox/css/delivery.css +++ b/public/packages/fluidbook/toolbox/css/delivery.css @@ -8,6 +8,18 @@ body { .icon-m img { margin-right: 8px; } +.d-grid { + display: grid; +} +.d-grid.feature-grid { + grid-template-columns: 80px repeat(auto-fill, 80px); +} +.gap-8 { + gap: 8px; +} +.fw-semibold { + font-weight: 600; +} .delivery-anchor { margin-bottom: 55px; } @@ -57,6 +69,51 @@ body { margin-bottom: 30px; text-align: center; } +.delivery-feature { + background-color: rgba(70, 127, 207, 0.1); + width: 80px; + height: 72px; + border-radius: 4px; +} +.delivery-feature.disabled-feature { + background-color: #F0F3F9; +} +.delivery-feature.disabled-feature svg { + fill: rgba(27, 42, 78, 0.2); +} +.delivery-feature.disabled-feature .title { + color: rgba(27, 42, 78, 0.2); +} +.delivery-feature svg { + width: 100%; + height: 51%; + fill: #467FCF; + position: relative; + top: 8px; +} +.delivery-feature .title { + margin: auto 0 6px; + font-size: 12px; + color: #467FCF; +} +.delivery-social-image { + height: 195px; + overflow: hidden; + position: relative; +} +.delivery-social-image img { + width: 100%; + height: 100%; + position: absolute; + object-fit: contain; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); +} +.delivery-preview-mini iframe { + width: 100%; + border: 0; +} .featherlight-close { top: 30px; right: 30px; diff --git a/public/packages/fluidbook/toolbox/css/delivery.css.map b/public/packages/fluidbook/toolbox/css/delivery.css.map index 5e5df240c..2bd4f01ba 100644 --- a/public/packages/fluidbook/toolbox/css/delivery.css.map +++ b/public/packages/fluidbook/toolbox/css/delivery.css.map @@ -1 +1 @@ -{"version":3,"sources":["delivery.less"],"names":[],"mappings":"AAAA;AAAK;EACD,uBAAA;;AAGJ;EACI,qBAAA;;AAGJ,OAAQ;EACJ,iBAAA;;AAIA,SAAC;EACG,mBAAA;;AADJ,SAAC,OAEG,GAAE,IAAI;EACF,cAAc,kBAAd;;AAHR,SAAC,OAKG,GAAE;EACE,YAAA;EACA,oBAAA;;AAPR,SAAC,OASG;EACI,OAAO,WAAP;;AAGR,SAAC;EACG,mBAAA;;AADJ,SAAC,SAEG;EACI,yCAAA;EACA,aAAA;EACA,aAAA;EACA,uBAAA;EACA,mBAAA;EACA,sBAAA;;AARR,SAAC,SAUG;EACI,eAAA;;AAXR,SAAC,SAaG;EACI,kBAAA;;AAGR,SAAC;EACG,gBAAA;EACA,WAAA;EACA,iBAAA;EACA,gBAAA;EACA,SAAA;EACA,wBAAA;EACA,aAAA;;AACA,SARH,aAQI;EACG,cAAA;;AATR,SAAC,aAWG;EACI,aAAA;EACA,kBAAkB,WAAlB;EACA,kBAAA;EACA,mBAAA;EACA,kBAAA;;AAKZ;EACI,SAAA;EACA,WAAA;EACA,WAAA;EACA,YAAA;EACA,qBAAA;EACA,kBAAA;;AAGJ;EACI,aAAa,eAAe,6BAA5B;EACA,aAAa,cAAe,2BAA5B;EACA,YAAY,eAAe,6BAA3B;EACA,WAAW,YAAe,uBAA1B;EACA,WAAW,cAAe,2BAA1B;EACA,WAAW,YAAe,uBAA1B;EACA,YAAY,YAAe,uBAA3B;EACA,aAAa,YAAe,uBAA5B;EACA,aAAa,YAAe,uBAA5B;EACA,aAAa,eAAe,6BAA5B;;EAGA,iBAAiB,eAAe,8BAAhC;EACA,gBAAgB,cAAe,gCAA/B;EACA,cAAc,eAAe,4BAA7B;EACA,aAAa,YAAe,6BAA5B;EACA,aAAa,cAAe,2BAA5B;EACA,cAAc,YAAe,yBAA7B;EACA,gBAAgB,YAAe,yBAA/B;EACA,iBAAiB,YAAe,yBAAhC;;EAGA,eAAe,YAAe,gCAA9B","file":"delivery.css"} \ No newline at end of file +{"version":3,"sources":["delivery.less"],"names":[],"mappings":"AAAA;AAAK;EACD,uBAAA;;AAGJ;EACI,qBAAA;;AAGJ,OAAQ;EACJ,iBAAA;;AAGJ;EACI,aAAA;;AACA,OAAC;EACG,4BAA4B,uBAA5B;;AAIR;EACI,QAAA;;AAGJ;EACI,gBAAA;;AAIA,SAAC;EACG,mBAAA;;AADJ,SAAC,OAEG,GAAE,IAAI;EACF,cAAc,kBAAd;;AAHR,SAAC,OAKG,GAAE;EACE,YAAA;EACA,oBAAA;;AAPR,SAAC,OASG;EACI,OAAO,WAAP;;AAGR,SAAC;EACG,mBAAA;;AADJ,SAAC,SAEG;EACI,yCAAA;EACA,aAAA;EACA,aAAA;EACA,uBAAA;EACA,mBAAA;EACA,sBAAA;;AARR,SAAC,SAUG;EACI,eAAA;;AAXR,SAAC,SAaG;EACI,kBAAA;;AAGR,SAAC;EACG,gBAAA;EACA,WAAA;EACA,iBAAA;EACA,gBAAA;EACA,SAAA;EACA,wBAAA;EACA,aAAA;;AACA,SARH,aAQI;EACG,cAAA;;AATR,SAAC,aAWG;EACI,aAAA;EACA,kBAAkB,WAAlB;EACA,kBAAA;EACA,mBAAA;EACA,kBAAA;;AAGR,SAAC;EACG,yCAAA;EACA,WAAA;EACA,YAAA;EACA,kBAAA;;AACA,SALH,QAKI;EACG,yBAAA;;AADJ,SALH,QAKI,iBAEG;EACI,2BAAA;;AAHR,SALH,QAKI,iBAKG;EACI,4BAAA;;AAXZ,SAAC,QAcG;EACI,WAAA;EACA,WAAA;EACA,aAAA;EACA,kBAAA;EACA,QAAA;;AAnBR,SAAC,QAqBG;EACI,kBAAA;EACA,eAAA;EACA,cAAA;;AAIR,SAAC;EACG,aAAA;EACA,gBAAA;EACA,kBAAA;;AAHJ,SAAC,aAIG;EACI,WAAA;EACA,YAAA;EACA,kBAAA;EACA,mBAAA;EACA,SAAA;EACA,QAAA;EACA,WAAW,qBAAX;;AAIR,SAAC,aACG;EACI,WAAA;EACA,SAAA;;AAKZ;EACI,SAAA;EACA,WAAA;EACA,WAAA;EACA,YAAA;EACA,qBAAA;EACA,kBAAA;;AAGJ;EACI,aAAa,eAAe,6BAA5B;EACA,aAAa,cAAe,2BAA5B;EACA,YAAY,eAAe,6BAA3B;EACA,WAAW,YAAe,uBAA1B;EACA,WAAW,cAAe,2BAA1B;EACA,WAAW,YAAe,uBAA1B;EACA,YAAY,YAAe,uBAA3B;EACA,aAAa,YAAe,uBAA5B;EACA,aAAa,YAAe,uBAA5B;EACA,aAAa,eAAe,6BAA5B;;EAGA,iBAAiB,eAAe,8BAAhC;EACA,gBAAgB,cAAe,gCAA/B;EACA,cAAc,eAAe,4BAA7B;EACA,aAAa,YAAe,6BAA5B;EACA,aAAa,cAAe,2BAA5B;EACA,cAAc,YAAe,yBAA7B;EACA,gBAAgB,YAAe,yBAA/B;EACA,iBAAiB,YAAe,yBAAhC;;EAGA,eAAe,YAAe,gCAA9B","file":"delivery.css"} \ No newline at end of file diff --git a/public/packages/fluidbook/toolbox/css/delivery.less b/public/packages/fluidbook/toolbox/css/delivery.less index 031e7d7e4..95dfa995e 100644 --- a/public/packages/fluidbook/toolbox/css/delivery.less +++ b/public/packages/fluidbook/toolbox/css/delivery.less @@ -10,6 +10,21 @@ html,body { margin-right: 8px; } +.d-grid { + display: grid; + &.feature-grid { + grid-template-columns: 80px repeat(auto-fill, 80px); + } +} + +.gap-8 { + gap: 8px; +} + +.fw-semibold { + font-weight: 600; +} + .delivery { &-anchor { margin-bottom: 55px; @@ -60,6 +75,55 @@ html,body { text-align: center; } } + &-feature { + background-color: rgba(70,127,207,.1); + width: 80px; + height: 72px; + border-radius: 4px; + &.disabled-feature { + background-color: #F0F3F9; + svg { + fill: rgba(27, 42, 78, .2); + } + .title { + color: rgba(27, 42, 78, .2); + } + } + svg { + width: 100%; + height: 51%; + fill: #467FCF; + position: relative; + top: 8px; + } + .title { + margin: auto 0 6px; + font-size: 12px; + color: #467FCF; + } + } + + &-social-image { + height: 195px; + overflow: hidden; + position: relative; + img { + width: 100%; + height: 100%; + position: absolute; + object-fit: contain; + left: 50%; + top: 50%; + transform: translate(-50%,-50%); + } + } + + &-preview-mini { + iframe { + width: 100%; + border: 0; + } + } } .featherlight-close { diff --git a/resources/fluidbooktheme/theme_preview/secondpage_preview.js b/resources/fluidbooktheme/theme_preview/secondpage_preview.js new file mode 100644 index 000000000..5cfc362b5 --- /dev/null +++ b/resources/fluidbooktheme/theme_preview/secondpage_preview.js @@ -0,0 +1,45 @@ +const puppeteer = require('puppeteer'); +const commandLineArgs = require('command-line-args'); +const optionDefinitions = [ + {name: 'url', type: String}, + {name: 'dest', type: String}, + {name: 'delay', type: Number, defaultOption: 10}, + {name: 'scale', type: Number, defaultOption: 1}, + {name: 'width', type: Number, defaultOption: 1920}, + {name: 'height', type: Number, defaultOption: 1080}, + {name: 'page', type: Number, defaultOption: 2} +]; + +(async () => { + const options = commandLineArgs(optionDefinitions); + const browser = await puppeteer.launch({ + headless: true, + args: [ + "--disable-setuid-sandbox", + "--no-sandbox", + ], + executablePath: 'google-chrome-stable', + }); + + const page = await browser.newPage(); + page.on('console', async (msg) => { + const msgArgs = msg.args(); + for (let i = 0; i < msgArgs.length; ++i) { + console.log(await msgArgs[i].jsonValue()); + } + }); + await page.setViewport({ + width: options.width / options.scale, height: options.height / options.scale, deviceScaleFactor: options.scale, + }); + + await page.goto(options.url, {waitUntil: 'networkidle2'}); + await page.screenshot({path: options.dest, type: 'jpeg', quality: 95}); + await new Promise(r => setTimeout(r, 1000 * (options.delay + 3))); + await page.evaluate(() => console.log(document.body.innerHTML)); + // Move to page 2 + await page.evaluate(() => window.fluidbook.setCurrentPage(2)); + // Wait 1s and take a screenshot + await new Promise(r => setTimeout(r, 2000)); + + await browser.close(); +})(); diff --git a/resources/views/fluidbook_publication/delivery.blade.php b/resources/views/fluidbook_publication/delivery.blade.php index 776e18d01..35814bbf3 100644 --- a/resources/views/fluidbook_publication/delivery.blade.php +++ b/resources/views/fluidbook_publication/delivery.blade.php @@ -9,8 +9,10 @@ $qrCodeMobile = QrCode::size(311)->color(27, 42, 78)->generate($fluidbook->getPreviewURL()); $fluidbookMobileFirstId = $fluidbook->mobilefirstFluidbookId; - $previewMobileFirstUrl = App\Models\FluidbookPublication::find($fluidbookMobileFirstId)->getPreviewURL(); - $qrCodeMobileFirst = QrCode::size(311)->color(27, 42, 78)->generate($previewMobileFirstUrl); + if($fluidbookMobileFirstId){ + $previewMobileFirstUrl = App\Models\FluidbookPublication::find($fluidbookMobileFirstId)->getPreviewURL(); + $qrCodeMobileFirst = QrCode::size(311)->color(27, 42, 78)->generate($previewMobileFirstUrl); + } $totalPages = $fluidbook->getPagesNumber(); $settings = [ @@ -27,18 +29,37 @@ ]; $features = [ - 'index' => $fluidbook->index, - 'print' => $fluidbook->print, - 'chapters' => $fluidbook->chapters, - 'share' => $fluidbook->share, - 'bookmarks' => $fluidbook->bookmarks, - 'download' => $fluidbook->pdf, - 'sound' => $fluidbook->soundTheme, - 'search' => $fluidbook->search, - 'help' => $fluidbook->help, - 'notes' => $fluidbook->notes, - 'fullscreen' => $fluidbook->fullscreen, + 'index' => ["value" => $fluidbook->index,"text" => __('Index'),"svg" => "nav-index"], + 'print' => ["value" => $fluidbook->print,"text" => __('Imprimer'),"svg" => "nav-print"], + 'chapters' => ["value" => $fluidbook->chapters,"text" => __('Sommaire'),"svg" => "nav-chapters"], + 'share' => ["value" => $fluidbook->share,"text" => __('Partager'),"svg" => "nav-share"], + 'bookmark' => ["value" => $fluidbook->bookmarks,"text" => __('Marques-pages'),"svg" => "nav-bookmarks"], + 'pdf' => ["value" => $fluidbook->pdf,"text" => __('Télécharger'),"svg" => "nav-download"], + 'sound' => ["value" => $fluidbook->soundTheme,"text" => __('Son'),"svg" => "nav-sound-on"], + 'search' => ["value" => $fluidbook->search,"text" => __('Son'),"svg" => "nav-search"], + 'help' => ["value" => $fluidbook->help,"text" => __('Aide'),"svg" => "nav-help"], + 'notes' => ["value" => $fluidbook->notes,"text" => __('Notes'),"svg" => "nav-notes"], + 'fullscreen' => ["value" => $fluidbook->fullscreen,"text" => __('Plein écran'),"svg" => "nav-fullscreen"], ]; + + $orders = explode(',',$fluidbook->navOrder); + $orders = array_map(function($n) { return trim($n); }, $orders); + $orders = array_flip($orders); + $orders = array_intersect_key($orders,$features); + + $featuresSorted = array_merge($orders, $features); + + $enabledFeatures = array_filter($featuresSorted, function($n){ return $n['value'] !== "0" && !empty($n['value']); }); + $disabledFeatures = array_filter($featuresSorted, function($n){ return $n['value'] !== "1" && empty($n['value']); }); + + $icons = App\Models\FluidbookIconset::get('icons')->toArray(); + + $statUrl = str_replace('preview','stats',$fluidbook->getPreviewUrl()); + $cid = $fluidbook->cid; + + $socialImage = route('social_image',['cid' => $cid]); + if($fluidbook->facebook_image) + $socialImage = $fluidbook->facebook_image; @endphp @section('after_styles') @@ -46,6 +67,9 @@ @endsection @section('content') +
+ {!! $icons[0]["icons"] !!} +
@@ -83,23 +107,25 @@

Version Desktop

- Voir + Voir

Version Mobile

- Voir + Voir
@include('fluidbook_publication.qrcode_popup', ['id' => 'scanBoxMobile', 'text' => 'Mobile', 'qrcode' => $qrCodeMobile])
-
-

Version Mobile-first

-
- Voir + @if($fluidbookMobileFirstId) +
+

Version Mobile-first

+
+ Voir +
+ @include('fluidbook_publication.qrcode_popup', ['id' => 'scanBoxMobileFirst', 'text' => 'Mobile-first', 'qrcode' => $qrCodeMobileFirst])
- @include('fluidbook_publication.qrcode_popup', ['id' => 'scanBoxMobileFirst', 'text' => 'Mobile-first', 'qrcode' => $qrCodeMobileFirst]) -
+ @endif
@@ -125,14 +151,40 @@
@endif
+ @if($enabledFeatures || $disabledFeatures)
-
-

Principales fonctionnalités activées

-
-
-

Principales fonctionnalités désactivées

-
+ @if($enabledFeatures) +
+

Principales fonctionnalités activées

+
+ @foreach($enabledFeatures as $enabledFeature) +
+ + + +

{{ $enabledFeature['text'] }}

+
+ @endforeach +
+
+ @endif + @if($disabledFeatures) +
+

Principales fonctionnalités désactivées

+
+ @foreach($disabledFeatures as $disabledFeature) +
+ + + +

{{ $disabledFeature['text'] }}

+
+ @endforeach +
+
+ @endif
+ @endif

Vous souhaitez modifier un paramètre ou une fonctionnalité ? Contactez votre chef de projet @@ -140,7 +192,7 @@

- @if($fluidbook->statusText) + @if($fluidbook->status)
@@ -151,19 +203,22 @@
-

Images pour réseaux sociaux

-
-
-

Facebook

+

Image pour réseaux sociaux

-
-

Twitter

+
+
-
-

Linkedin

+
+

Tester le rendu en cliquant sur ce lien

+
-
+ +
-

Mini Fluidbook animé

-
-
-
-
+

Mini Fluidbook animé

+
@@ -204,7 +256,7 @@

Avec notre module de statistiques intégré, vous savez combien de personnes ont vu votre Fluidbook, quelles pages les ont le plus intéressé, quels mots-clés ils ont cherché, etc...

- Voir les statistiques + Voir les statistiques
@@ -232,19 +284,19 @@

Une question sur votre Fluidbook ?

Vous avez remarqué une erreur ou vous souhaitez changer un paramètre ?

- Contacter votre chef de projet + Contacter votre chef de projet
- @if($fluidbook->statusText) + @if($fluidbook->status)

Publiez votre Fluidbook

L’adresse d’hébergement a déjà été configurée, vous pouvez mettre votre Fluidbook directement en ligne en cliquant ci-dessous :

- Installer sur le serveur d’hébergement + Installer sur le serveur d’hébergement
-- 2.39.5