]> _ Git - fluidbook-toolbox.git/commitdiff
wip #4211 @1
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Wed, 18 May 2022 12:11:28 +0000 (14:11 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Wed, 18 May 2022 12:11:28 +0000 (14:11 +0200)
app/Models/Traits/PublicationSettings.php
config/backpack/base.php

index 4f4bb6dd04e01e42ee23a577994cbe210a1b7eb9..d77df17aa24c501ec79824f7499f8452e7cd2e0f 100644 (file)
@@ -107,7 +107,7 @@ trait PublicationSettings
             'translatable' => false,
         ]);
         $this->addField('', FormSeparator::class);
-        $this->addField('email_title', LongText::class, $this->__('Titre de l\'email').' "'.$this->__('Envoyer à un ami').'"', [
+        $this->addField('email_title', LongText::class, $this->__('Titre de l\'email') . ' "' . $this->__('Envoyer à un ami') . '"', [
             'v2' => '{"type":"text","default":"","editable":true,"label":"\\u00a7!\\u00a7Titre de l\'email!\\u00a7! \\"\\u00a7!\\u00a7Envoyer \\u00e0 un ami!\\u00a7!\\"","hint":"\\u00a7!\\u00a7Laisser vide pour utiliser la valeur par d\\u00e9faut!\\u00a7!"}',
             'hint' => $this->__('Laisser vide pour utiliser la valeur par défaut'),
             'default' => '',
@@ -115,7 +115,7 @@ trait PublicationSettings
             'store_in' => 'settings',
             'translatable' => false,
         ]);
-        $this->addField('email_body', Textarea::class, $this->__('Corps de l\'email').' "'.$this->__('Envoyer à un ami').'"', [
+        $this->addField('email_body', Textarea::class, $this->__('Corps de l\'email') . ' "' . $this->__('Envoyer à un ami') . '"', [
             'v2' => '{"type":"textarea","default":"","editable":true,"label":"\\u00a7!\\u00a7Corps de l\'email!\\u00a7! \\"\\u00a7!\\u00a7Envoyer \\u00e0 un ami!\\u00a7!\\"","hint":"\\u00a7!\\u00a7Laisser vide pour utiliser la valeur par d\\u00e9faut!\\u00a7!"}',
             'hint' => $this->__('Laisser vide pour utiliser la valeur par défaut'),
             'default' => '',
@@ -173,7 +173,9 @@ trait PublicationSettings
             'v2' => '{"type":"freefile","default":"","editable":true,"label":"\\u00a7!\\u00a7Miniature affich\\u00e9e!\\u00a7!","fileFilter":{"name":"\\u00a7!\\u00a7Images!\\u00a7! (*.jpg, *.png)","extensions":"*.jpg;*.jpeg;*.png"}}',
             'default' => '',
             'accept' => [
-                0 => '',
+                0 => '*.jpg',
+                1 => '*.jpeg',
+                2 => '*.png',
             ],
             'fake' => true,
             'store_in' => 'settings',
@@ -309,7 +311,7 @@ trait PublicationSettings
             'v2' => '{"type":"freefile","default":"","editable":true,"label":"\\u00a7!\\u00a7Donn\\u00e9es SEO par page!\\u00a7!","grade":5,"fileFilter":{"name":"\\u00a7!\\u00a7Fichier Excel!\\u00a7! (.xlsx)","extensions":"*.xlsx"}}',
             'default' => '',
             'accept' => [
-                0 => '',
+                0 => '*.xlsx',
             ],
             'fake' => true,
             'store_in' => 'settings',
@@ -413,8 +415,8 @@ trait PublicationSettings
         ]);
         $this->addField('pagesBaseAngle', Integer::class, $this->__('Angle de base entre les pages'), [
             'v2' => '{"type":"integer","default":2,"editable":false,"label":"\\u00a7!\\u00a7Angle de base entre les pages!\\u00a7!","grade":3,"hint":"\\u00a7!\\u00a70 : Publication \\u00e0 plat!\\u00a7!\\n\\u00a7!\\u00a72 : Valeur par d\\u00e9faut!\\u00a7!"}',
-            'hint' => $this->__('0 : Publication à plat').'
-'.$this->__('2 : Valeur par défaut'),
+            'hint' => $this->__('0 : Publication à plat') . '
+' . $this->__('2 : Valeur par défaut'),
             'default' => 2,
             'fake' => true,
             'store_in' => 'settings',
@@ -620,7 +622,7 @@ trait PublicationSettings
             'store_in' => 'settings',
             'translatable' => false,
         ]);
-        $this->addField('navOrderH', Textarea::class, $this->__('Ordre des icônes dans la nav').' ('.$this->__('Si différente').')', [
+        $this->addField('navOrderH', Textarea::class, $this->__('Ordre des icônes dans la nav') . ' (' . $this->__('Si différente') . ')', [
             'v2' => '{"type":"textarea","default":"","editable":true,"label":"\\u00a7!\\u00a7Ordre des ic\\u00f4nes dans la nav!\\u00a7! (\\u00a7!\\u00a7Si diff\\u00e9rente!\\u00a7!)","grade":3}',
             'default' => '',
             'fake' => true,
@@ -656,7 +658,11 @@ trait PublicationSettings
             'v2' => '{"type":"freefile","default":"","editable":true,"label":"\\u00a7!\\u00a7Image pour navigation!\\u00a7!","fileFilter":{"name":"\\u00a7!\\u00a7Images!\\u00a7! (*.svg, *.jpg, *.png, *.gif)","extensions":"*.svg;*.jpg;*.png;*.gif"}}',
             'default' => '',
             'accept' => [
-                0 => '',
+                0 => '*.svg',
+                1 => '*.jpg',
+                2 => '*.jpeg',
+                3 => '*.png',
+                4 => '*.gif',
             ],
             'fake' => true,
             'store_in' => 'settings',
@@ -666,7 +672,11 @@ trait PublicationSettings
             'v2' => '{"type":"freefile","default":"","editable":true,"label":"\\u00a7!\\u00a7Image pour mobile!\\u00a7!","fileFilter":{"name":"\\u00a7!\\u00a7Images!\\u00a7! (*.svg, *.jpg, *.png, *.gif)","extensions":"*.svg;*.jpg;*.png;*.gif"}}',
             'default' => '',
             'accept' => [
-                0 => '',
+                0 => '*.svg',
+                1 => '*.jpg',
+                2 => '*.jpeg',
+                3 => '*.png',
+                4 => '*.gif',
             ],
             'fake' => true,
             'store_in' => 'settings',
@@ -687,11 +697,15 @@ trait PublicationSettings
             'translatable' => false,
         ]);
         $this->addField('', FormSeparator::class);
-        $this->addField('navExtraIcon1', FilesOrURL::class, $this->__('Icône supplémentaire').' 1', [
+        $this->addField('navExtraIcon1', FilesOrURL::class, $this->__('Icône supplémentaire') . ' 1', [
             'v2' => '{"type":"freefile","default":"","editable":true,"label":"\\u00a7!\\u00a7Ic\\u00f4ne suppl\\u00e9mentaire!\\u00a7! 1","fileFilter":{"name":"\\u00a7!\\u00a7Images!\\u00a7! (*.svg, *.jpg, *.png, *.gif)","extensions":"*.svg;*.jpg;*.png;*.gif"}}',
             'default' => '',
             'accept' => [
-                0 => '',
+                0 => '*.svg',
+                1 => '*.jpg',
+                2 => '*.jpeg',
+                3 => '*.png',
+                4 => '*.gif',
             ],
             'fake' => true,
             'store_in' => 'settings',
@@ -708,14 +722,14 @@ trait PublicationSettings
             'store_in' => 'settings',
             'translatable' => false,
         ]);
-        $this->addField('navExtraLink1', LongText::class, $this->__('URL').' 1', [
+        $this->addField('navExtraLink1', LongText::class, $this->__('URL') . ' 1', [
             'v2' => '{"type":"text","default":"","editable":true,"label":"\\u00a7!\\u00a7URL!\\u00a7! 1"}',
             'default' => '',
             'fake' => true,
             'store_in' => 'settings',
             'translatable' => false,
         ]);
-        $this->addField('navExtraVisibility1', SelectFromArray::class, $this->__('Visible').' 1', [
+        $this->addField('navExtraVisibility1', SelectFromArray::class, $this->__('Visible') . ' 1', [
             'v2' => '{"type":"combo","datas":{"\\u00a7!\\u00a7Navigation horizontale!\\u00a7!":"horizontal","\\u00a7!\\u00a7Navigation burger!\\u00a7!":"burger","\\u00a7!\\u00a7Navigations horizontale et burger!\\u00a7!":"both"},"default":"both","editable":true,"label":"\\u00a7!\\u00a7Visible!\\u00a7! 1"}',
             'options' => [
                 'horizontal' => $this->__('Navigation horizontale'),
@@ -728,11 +742,15 @@ trait PublicationSettings
             'translatable' => false,
         ]);
         $this->addField('', FormSeparator::class);
-        $this->addField('navExtraIcon2', FilesOrURL::class, $this->__('Icône supplémentaire').' 2', [
+        $this->addField('navExtraIcon2', FilesOrURL::class, $this->__('Icône supplémentaire') . ' 2', [
             'v2' => '{"type":"freefile","default":"","editable":true,"label":"\\u00a7!\\u00a7Ic\\u00f4ne suppl\\u00e9mentaire!\\u00a7! 2","fileFilter":{"name":"\\u00a7!\\u00a7Images!\\u00a7! (*.svg, *.jpg, *.png, *.gif)","extensions":"*.svg;*.jpg;*.png;*.gif"}}',
             'default' => '',
             'accept' => [
-                0 => '',
+                0 => '*.svg',
+                1 => '*.jpg',
+                2 => '*.jpeg',
+                3 => '*.png',
+                4 => '*.gif',
             ],
             'fake' => true,
             'store_in' => 'settings',
@@ -749,14 +767,14 @@ trait PublicationSettings
             'store_in' => 'settings',
             'translatable' => false,
         ]);
-        $this->addField('navExtraLink2', LongText::class, $this->__('URL').' 2', [
+        $this->addField('navExtraLink2', LongText::class, $this->__('URL') . ' 2', [
             'v2' => '{"type":"text","default":"","editable":true,"label":"\\u00a7!\\u00a7URL!\\u00a7! 2"}',
             'default' => '',
             'fake' => true,
             'store_in' => 'settings',
             'translatable' => false,
         ]);
-        $this->addField('navExtraVisibility2', SelectFromArray::class, $this->__('Visible').' 2', [
+        $this->addField('navExtraVisibility2', SelectFromArray::class, $this->__('Visible') . ' 2', [
             'v2' => '{"type":"combo","datas":{"\\u00a7!\\u00a7Navigation horizontale!\\u00a7!":"horizontal","\\u00a7!\\u00a7Navigation burger!\\u00a7!":"burger","\\u00a7!\\u00a7Navigations horizontale et burger!\\u00a7!":"both"},"default":"both","editable":true,"label":"\\u00a7!\\u00a7Visible!\\u00a7! 2"}',
             'options' => [
                 'horizontal' => $this->__('Navigation horizontale'),
@@ -769,11 +787,15 @@ trait PublicationSettings
             'translatable' => false,
         ]);
         $this->addField('', FormSeparator::class);
-        $this->addField('navExtraIcon3', FilesOrURL::class, $this->__('Icône supplémentaire').' 3', [
+        $this->addField('navExtraIcon3', FilesOrURL::class, $this->__('Icône supplémentaire') . ' 3', [
             'v2' => '{"type":"freefile","default":"","editable":true,"label":"\\u00a7!\\u00a7Ic\\u00f4ne suppl\\u00e9mentaire!\\u00a7! 3","fileFilter":{"name":"\\u00a7!\\u00a7Images!\\u00a7! (*.svg, *.jpg, *.png, *.gif)","extensions":"*.svg;*.jpg;*.png;*.gif"}}',
             'default' => '',
             'accept' => [
-                0 => '',
+                0 => '*.svg',
+                1 => '*.jpg',
+                2 => '*.jpeg',
+                3 => '*.png',
+                4 => '*.gif',
             ],
             'fake' => true,
             'store_in' => 'settings',
@@ -790,14 +812,14 @@ trait PublicationSettings
             'store_in' => 'settings',
             'translatable' => false,
         ]);
-        $this->addField('navExtraLink3', LongText::class, $this->__('URL').' 3', [
+        $this->addField('navExtraLink3', LongText::class, $this->__('URL') . ' 3', [
             'v2' => '{"type":"text","default":"","editable":true,"label":"\\u00a7!\\u00a7URL!\\u00a7! 3"}',
             'default' => '',
             'fake' => true,
             'store_in' => 'settings',
             'translatable' => false,
         ]);
-        $this->addField('navExtraVisibility3', SelectFromArray::class, $this->__('Visible').' 3', [
+        $this->addField('navExtraVisibility3', SelectFromArray::class, $this->__('Visible') . ' 3', [
             'v2' => '{"type":"combo","datas":{"\\u00a7!\\u00a7Navigation horizontale!\\u00a7!":"horizontal","\\u00a7!\\u00a7Navigation burger!\\u00a7!":"burger","\\u00a7!\\u00a7Navigations horizontale et burger!\\u00a7!":"both"},"default":"both","editable":true,"label":"\\u00a7!\\u00a7Visible!\\u00a7! 3"}',
             'options' => [
                 'horizontal' => $this->__('Navigation horizontale'),
@@ -810,11 +832,15 @@ trait PublicationSettings
             'translatable' => false,
         ]);
         $this->addField('', FormSeparator::class);
-        $this->addField('navExtraIcon4', FilesOrURL::class, $this->__('Icône supplémentaire').' 4', [
+        $this->addField('navExtraIcon4', FilesOrURL::class, $this->__('Icône supplémentaire') . ' 4', [
             'v2' => '{"type":"freefile","default":"","editable":true,"label":"\\u00a7!\\u00a7Ic\\u00f4ne suppl\\u00e9mentaire!\\u00a7! 4","fileFilter":{"name":"\\u00a7!\\u00a7Images!\\u00a7! (*.svg, *.jpg, *.png, *.gif)","extensions":"*.svg;*.jpg;*.png;*.gif"}}',
             'default' => '',
             'accept' => [
-                0 => '',
+                0 => '*.svg',
+                1 => '*.jpg',
+                2 => '*.jpeg',
+                3 => '*.png',
+                4 => '*.gif',
             ],
             'fake' => true,
             'store_in' => 'settings',
@@ -831,14 +857,14 @@ trait PublicationSettings
             'store_in' => 'settings',
             'translatable' => false,
         ]);
-        $this->addField('navExtraLink4', LongText::class, $this->__('URL').' 4', [
+        $this->addField('navExtraLink4', LongText::class, $this->__('URL') . ' 4', [
             'v2' => '{"type":"text","default":"","editable":true,"label":"\\u00a7!\\u00a7URL!\\u00a7! 4"}',
             'default' => '',
             'fake' => true,
             'store_in' => 'settings',
             'translatable' => false,
         ]);
-        $this->addField('navExtraVisibility4', SelectFromArray::class, $this->__('Visible').' 4', [
+        $this->addField('navExtraVisibility4', SelectFromArray::class, $this->__('Visible') . ' 4', [
             'v2' => '{"type":"combo","datas":{"\\u00a7!\\u00a7Navigation horizontale!\\u00a7!":"horizontal","\\u00a7!\\u00a7Navigation burger!\\u00a7!":"burger","\\u00a7!\\u00a7Navigations horizontale et burger!\\u00a7!":"both"},"default":"both","editable":true,"label":"\\u00a7!\\u00a7Visible!\\u00a7! 4"}',
             'options' => [
                 'horizontal' => $this->__('Navigation horizontale'),
@@ -851,11 +877,15 @@ trait PublicationSettings
             'translatable' => false,
         ]);
         $this->addField('', FormSeparator::class);
-        $this->addField('navExtraIcon5', FilesOrURL::class, $this->__('Icône supplémentaire').' 5', [
+        $this->addField('navExtraIcon5', FilesOrURL::class, $this->__('Icône supplémentaire') . ' 5', [
             'v2' => '{"type":"freefile","default":"","editable":true,"label":"\\u00a7!\\u00a7Ic\\u00f4ne suppl\\u00e9mentaire!\\u00a7! 5","fileFilter":{"name":"\\u00a7!\\u00a7Images!\\u00a7! (*.svg, *.jpg, *.png, *.gif)","extensions":"*.svg;*.jpg;*.png;*.gif"}}',
             'default' => '',
             'accept' => [
-                0 => '',
+                0 => '*.svg',
+                1 => '*.jpg',
+                2 => '*.jpeg',
+                3 => '*.png',
+                4 => '*.gif',
             ],
             'fake' => true,
             'store_in' => 'settings',
@@ -872,14 +902,14 @@ trait PublicationSettings
             'store_in' => 'settings',
             'translatable' => false,
         ]);
-        $this->addField('navExtraLink5', LongText::class, $this->__('URL').' 5', [
+        $this->addField('navExtraLink5', LongText::class, $this->__('URL') . ' 5', [
             'v2' => '{"type":"text","default":"","editable":true,"label":"\\u00a7!\\u00a7URL!\\u00a7! 5"}',
             'default' => '',
             'fake' => true,
             'store_in' => 'settings',
             'translatable' => false,
         ]);
-        $this->addField('navExtraVisibility5', SelectFromArray::class, $this->__('Visible').' 5', [
+        $this->addField('navExtraVisibility5', SelectFromArray::class, $this->__('Visible') . ' 5', [
             'v2' => '{"type":"combo","datas":{"\\u00a7!\\u00a7Navigation horizontale!\\u00a7!":"horizontal","\\u00a7!\\u00a7Navigation burger!\\u00a7!":"burger","\\u00a7!\\u00a7Navigations horizontale et burger!\\u00a7!":"both"},"default":"both","editable":true,"label":"\\u00a7!\\u00a7Visible!\\u00a7! 5"}',
             'options' => [
                 'horizontal' => $this->__('Navigation horizontale'),
@@ -965,7 +995,7 @@ trait PublicationSettings
             'store_in' => 'settings',
             'translatable' => false,
         ]);
-        $this->addField('bookmark_email_title', LongText::class, $this->__('Titre de l\'email').' "'.$this->__('Envoyer à un ami').'"', [
+        $this->addField('bookmark_email_title', LongText::class, $this->__('Titre de l\'email') . ' "' . $this->__('Envoyer à un ami') . '"', [
             'v2' => '{"type":"text","default":"","editable":true,"label":"\\u00a7!\\u00a7Titre de l\'email!\\u00a7! \\"\\u00a7!\\u00a7Envoyer \\u00e0 un ami!\\u00a7!\\"","hint":"\\u00a7!\\u00a7Laisser vide pour utiliser la valeur par d\\u00e9faut!\\u00a7!"}',
             'hint' => $this->__('Laisser vide pour utiliser la valeur par défaut'),
             'default' => '',
@@ -973,7 +1003,7 @@ trait PublicationSettings
             'store_in' => 'settings',
             'translatable' => false,
         ]);
-        $this->addField('bookmark_email_body', Textarea::class, $this->__('Corps de l\'email').' "'.$this->__('Envoyer à un ami').'"', [
+        $this->addField('bookmark_email_body', Textarea::class, $this->__('Corps de l\'email') . ' "' . $this->__('Envoyer à un ami') . '"', [
             'v2' => '{"type":"textarea","default":"","editable":true,"label":"\\u00a7!\\u00a7Corps de l\'email!\\u00a7! \\"\\u00a7!\\u00a7Envoyer \\u00e0 un ami!\\u00a7!\\"","hint":"\\u00a7!\\u00a7Laisser vide pour utiliser la valeur par d\\u00e9faut!\\u00a7!"}',
             'hint' => $this->__('Laisser vide pour utiliser la valeur par défaut'),
             'default' => '',
@@ -1099,7 +1129,7 @@ trait PublicationSettings
             'v2' => '{"type":"freefile","default":"","editable":true,"label":"\\u00a7!\\u00a7PDF utilis\\u00e9 pour g\\u00e9n\\u00e9rer les miniatures!\\u00a7!","grade":1,"fileFilter":{"name":"\\u00a7!\\u00a7Document PDF!\\u00a7! (*.pdf)","extensions":"*.pdf"}}',
             'default' => '',
             'accept' => [
-                0 => '',
+                0 => '*.pdf',
             ],
             'fake' => true,
             'store_in' => 'settings',
@@ -1264,7 +1294,8 @@ trait PublicationSettings
             'v2' => '{"type":"freefile","default":"","editable":false,"label":"\\u00a7!\\u00a7Ambiance sonore!\\u00a7!","grade":3,"fileFilter":{"name":"\\u00a7!\\u00a7Fichier sonore!\\u00a7! (*.mp3, *.wav)","extensions":"*.mp3;*.wav"}}',
             'default' => '',
             'accept' => [
-                0 => '',
+                0 => '*.mp3',
+                0 => '*.wav',
             ],
             'fake' => true,
             'store_in' => 'settings',
@@ -1298,7 +1329,7 @@ trait PublicationSettings
             'v2' => '{"type":"freefile","default":"","editable":true,"label":"\\u00a7!\\u00a7PDF de remplacement!\\u00a7!","grade":3,"fileFilter":{"name":"\\u00a7!\\u00a7Document PDF!\\u00a7! (*.pdf)","extensions":"*.pdf"}}',
             'default' => '',
             'accept' => [
-                0 => '',
+                0 => '*.pdf',
             ],
             'fake' => true,
             'store_in' => 'settings',
@@ -1386,7 +1417,11 @@ trait PublicationSettings
             'v2' => '{"type":"freefile","default":"","editable":true,"label":"\\u00a7!\\u00a7Image pour le slider!\\u00a7!","grade":3,"fileFilter":{"name":"\\u00a7!\\u00a7Images!\\u00a7! (*.svg, *.jpg, *.png, *.gif)","extensions":"*.svg;*.jpg;*.png;*.gif"}}',
             'default' => '',
             'accept' => [
-                0 => '',
+                0 => '*.svg',
+                1 => '*.jpg',
+                2 => '*.jpeg',
+                3 => '*.png',
+                4 => '*.gif',
             ],
             'fake' => true,
             'store_in' => 'settings',
@@ -1616,7 +1651,7 @@ trait PublicationSettings
             'hint' => $this->__('Laisser vide pour utiliser le sommaire classique'),
             'default' => '',
             'accept' => [
-                0 => '',
+                0 => '*.zip',
             ],
             'fake' => true,
             'store_in' => 'settings',
@@ -1635,12 +1670,13 @@ trait PublicationSettings
             'translatable' => false,
         ]);
         $this->addField('section_tabs', FormSection::class, $this->__('Onglets'));
-        $this->addField('tabsHTML5', FilesOrURL::class, $this->__('Fichier d\'onglets').' (SVG, ZIP)', [
+        $this->addField('tabsHTML5', FilesOrURL::class, $this->__('Fichier d\'onglets') . ' (SVG, ZIP)', [
             'v2' => '{"type":"freefile","default":"","editable":true,"label":"\\u00a7!\\u00a7Fichier d\'onglets!\\u00a7! (SVG, ZIP)","grade":3,"hint":"\\u00a7!\\u00a7Charger un zip rendra les options ci-dessous inop\\u00e9rantes!\\u00a7!","fileFilter":{"name":"\\u00a7!\\u00a7Fichier onglets!\\u00a7! (*.svg, *.zip)","extensions":"*.svg;*.zip"}}',
             'hint' => $this->__('Charger un zip rendra les options ci-dessous inopérantes'),
             'default' => '',
             'accept' => [
-                0 => '',
+                0 => '*.zip',
+                1 => '*.svg',
             ],
             'fake' => true,
             'store_in' => 'settings',
@@ -1887,7 +1923,7 @@ trait PublicationSettings
             'v2' => '{"type":"freefile","default":"","editable":true,"label":"\\u00a7!\\u00a7Feuille de style des popups de texte!\\u00a7!","fileFilter":{"name":"\\u00a7!\\u00a7Feuille de style!\\u00a7! (.css)","extensions":"*.css"}}',
             'default' => '',
             'accept' => [
-                0 => '',
+                0 => '*.css',
             ],
             'fake' => true,
             'store_in' => 'settings',
@@ -1961,7 +1997,7 @@ trait PublicationSettings
         $this->addField('inlineSlideshowLibrary', SelectFromArray::class, $this->__('Librarie utilisée pour les slideshow intégrés aux pages'), [
             'v2' => '{"type":"combo","datas":{"Simple (\\u00a7!\\u00a7d\\u00e9faut!\\u00a7!)":"dummy","Vacheron":"vacheron"},"default":"dummy","editable":true,"grade":3,"label":"\\u00a7!\\u00a7Librarie utilis\\u00e9e pour les slideshow int\\u00e9gr\\u00e9s aux pages!\\u00a7!"}',
             'options' => [
-                'dummy' => 'Simple ('.$this->__('défaut').')',
+                'dummy' => 'Simple (' . $this->__('défaut') . ')',
                 'vacheron' => 'Vacheron',
             ],
             'default' => 'dummy',
@@ -1972,7 +2008,7 @@ trait PublicationSettings
         $this->addField('popupSlideshowLibrary', SelectFromArray::class, $this->__('Librarie utilisée pour les slideshow popup'), [
             'v2' => '{"type":"combo","datas":{"Splide (\\u00a7!\\u00a7d\\u00e9faut!\\u00a7!)":"splide","Vacheron":"vacheron"},"default":"splide","editable":true,"grade":3,"label":"\\u00a7!\\u00a7Librarie utilis\\u00e9e pour les slideshow popup!\\u00a7!"}',
             'options' => [
-                'splide' => 'Splide ('.$this->__('défaut').')',
+                'splide' => 'Splide (' . $this->__('défaut') . ')',
                 'vacheron' => 'Vacheron',
             ],
             'default' => 'splide',
@@ -2040,7 +2076,11 @@ trait PublicationSettings
             'v2' => '{"type":"freefile","default":"","editable":true,"label":"\\u00a7!\\u00a7Image pour le bouton \\"Big Play\\"!\\u00a7!","grade":3,"fileFilter":{"name":"\\u00a7!\\u00a7Images!\\u00a7! (*.svg, *.jpg, *.png, *.gif)","extensions":"*.svg;*.jpg;*.png;*.gif"}}',
             'default' => '',
             'accept' => [
-                0 => '',
+                0 => '*.svg',
+                1 => '*.jpg',
+                2 => '*.jpeg',
+                3 => '*.png',
+                4 => '*.gif',
             ],
             'fake' => true,
             'store_in' => 'settings',
@@ -2080,8 +2120,10 @@ trait PublicationSettings
             'hint' => $this->__('Fichier contenant les références produits'),
             'default' => '',
             'accept' => [
-                0 => '',
+                0 => '*.xml',
+                1 => '*.xlsx',
             ],
+            'destination'=>'commerce',
             'fake' => true,
             'store_in' => 'settings',
             'translatable' => false,
@@ -2099,21 +2141,21 @@ trait PublicationSettings
             'translatable' => false,
         ]);
         $this->addField('', FormSeparator::class);
-        $this->addField('product_zoom_label_1', LongText::class, $this->__('Label du bouton').' 1', [
+        $this->addField('product_zoom_label_1', LongText::class, $this->__('Label du bouton') . ' 1', [
             'v2' => '{"type":"text","label":"\\u00a7!\\u00a7Label du bouton!\\u00a7! 1","default":"","editable":true,"grade":3}',
             'default' => '',
             'fake' => true,
             'store_in' => 'settings',
             'translatable' => false,
         ]);
-        $this->addField('product_zoom_tooltip_1', LongText::class, $this->__('Label de l\'infobulle').' 1', [
+        $this->addField('product_zoom_tooltip_1', LongText::class, $this->__('Label de l\'infobulle') . ' 1', [
             'v2' => '{"type":"text","label":"\\u00a7!\\u00a7Label de l\'infobulle!\\u00a7! 1","default":"","editable":true,"grade":3}',
             'default' => '',
             'fake' => true,
             'store_in' => 'settings',
             'translatable' => false,
         ]);
-        $this->addField('product_zoom_icon_1', SelectFromArray::class, $this->__('Icône du bouton').' 1', [
+        $this->addField('product_zoom_icon_1', SelectFromArray::class, $this->__('Icône du bouton') . ' 1', [
             'v2' => '{"type":"combo","datas":{"\\u00a7!\\u00a7Aucune!\\u00a7!":"none","\\u00a7!\\u00a7Partage!\\u00a7!":"nav-share","\\u00a7!\\u00a7Ecran!\\u00a7!":"icon-site","\\u00a7!\\u00a7T\\u00e9l\\u00e9charger!\\u00a7!":"nav-download","PDF":"icon-pdf","Video":"icon-video","\\u00a7!\\u00a7Lien!\\u00a7!":"icon-link","\\u00a7!\\u00a7Code!\\u00a7!":"icon-code","\\u00a7!\\u00a7QR code!\\u00a7!":"icon-qr","\\u00a7!\\u00a7Article!\\u00a7!":"icon-article","\\u00a7!\\u00a7Panier (sac)!\\u00a7!":"nav-basket","\\u00a7!\\u00a7Panier (caddie)!\\u00a7!":"nav-cart-caddie","\\u00a7!\\u00a7Panier (wishlist)!\\u00a7!":"nav-cart-wishlist","\\u00a7!\\u00a7360\\u00b0!\\u00a7!":"icon-360","\\u00a7!\\u00a7Photo!\\u00a7!":"icon-photo"},"label":"\\u00a7!\\u00a7Ic\\u00f4ne du bouton!\\u00a7! 1","default":"click","editable":true,"grade":3}',
             'options' => [
                 'none' => $this->__('Aucune'),
@@ -2137,7 +2179,7 @@ trait PublicationSettings
             'store_in' => 'settings',
             'translatable' => false,
         ]);
-        $this->addField('product_zoom_action_1', SelectFromArray::class, $this->__('Action du bouton').' 1', [
+        $this->addField('product_zoom_action_1', SelectFromArray::class, $this->__('Action du bouton') . ' 1', [
             'v2' => '{"type":"combo","datas":{"\\u00a7!\\u00a7D\\u00e9sactiver!\\u00a7!":"disabled","\\u00a7!\\u00a7Ouvrir un lien!\\u00a7!":"link","\\u00a7!\\u00a7Ouvrir en iframe!\\u00a7!":"iframe","\\u00a7!\\u00a7Copier un contenu!\\u00a7!":"copy","\\u00a7!\\u00a7Web Vid\\u00e9o!\\u00a7!":"video","\\u00a7!\\u00a7Vid\\u00e9o!\\u00a7!":"videofile","\\u00a7!\\u00a7Vid\\u00e9o (boucle, sans contr\\u00f4le)!\\u00a7!":"videogif","\\u00a7!\\u00a7Voir une image!\\u00a7!":"image","\\u00a7!\\u00a7Ajouter au panier!\\u00a7!":"addtocart"},"label":"\\u00a7!\\u00a7Action du bouton!\\u00a7! 1","default":"disabled","editable":true,"grade":3}',
             'options' => [
                 'disabled' => $this->__('Désactiver'),
@@ -2156,21 +2198,21 @@ trait PublicationSettings
             'translatable' => false,
         ]);
         $this->addField('', FormSeparator::class);
-        $this->addField('product_zoom_label_2', LongText::class, $this->__('Label du bouton').' 2', [
+        $this->addField('product_zoom_label_2', LongText::class, $this->__('Label du bouton') . ' 2', [
             'v2' => '{"type":"text","label":"\\u00a7!\\u00a7Label du bouton!\\u00a7! 2","default":"","editable":true,"grade":3}',
             'default' => '',
             'fake' => true,
             'store_in' => 'settings',
             'translatable' => false,
         ]);
-        $this->addField('product_zoom_tooltip_2', LongText::class, $this->__('Label de l\'infobulle').' 2', [
+        $this->addField('product_zoom_tooltip_2', LongText::class, $this->__('Label de l\'infobulle') . ' 2', [
             'v2' => '{"type":"text","label":"\\u00a7!\\u00a7Label de l\'infobulle!\\u00a7! 2","default":"","editable":true,"grade":3}',
             'default' => '',
             'fake' => true,
             'store_in' => 'settings',
             'translatable' => false,
         ]);
-        $this->addField('product_zoom_icon_2', SelectFromArray::class, $this->__('Icône du bouton').' 2', [
+        $this->addField('product_zoom_icon_2', SelectFromArray::class, $this->__('Icône du bouton') . ' 2', [
             'v2' => '{"type":"combo","datas":{"\\u00a7!\\u00a7Aucune!\\u00a7!":"none","\\u00a7!\\u00a7Partage!\\u00a7!":"nav-share","\\u00a7!\\u00a7Ecran!\\u00a7!":"icon-site","\\u00a7!\\u00a7T\\u00e9l\\u00e9charger!\\u00a7!":"nav-download","PDF":"icon-pdf","Video":"icon-video","\\u00a7!\\u00a7Lien!\\u00a7!":"icon-link","\\u00a7!\\u00a7Code!\\u00a7!":"icon-code","\\u00a7!\\u00a7QR code!\\u00a7!":"icon-qr","\\u00a7!\\u00a7Article!\\u00a7!":"icon-article","\\u00a7!\\u00a7Panier (sac)!\\u00a7!":"nav-basket","\\u00a7!\\u00a7Panier (caddie)!\\u00a7!":"nav-cart-caddie","\\u00a7!\\u00a7Panier (wishlist)!\\u00a7!":"nav-cart-wishlist","\\u00a7!\\u00a7360\\u00b0!\\u00a7!":"icon-360","\\u00a7!\\u00a7Photo!\\u00a7!":"icon-photo"},"label":"\\u00a7!\\u00a7Ic\\u00f4ne du bouton!\\u00a7! 2","default":"click","editable":true,"grade":3}',
             'options' => [
                 'none' => $this->__('Aucune'),
@@ -2194,7 +2236,7 @@ trait PublicationSettings
             'store_in' => 'settings',
             'translatable' => false,
         ]);
-        $this->addField('product_zoom_action_2', SelectFromArray::class, $this->__('Action du bouton').' 2', [
+        $this->addField('product_zoom_action_2', SelectFromArray::class, $this->__('Action du bouton') . ' 2', [
             'v2' => '{"type":"combo","datas":{"\\u00a7!\\u00a7D\\u00e9sactiver!\\u00a7!":"disabled","\\u00a7!\\u00a7Ouvrir un lien!\\u00a7!":"link","\\u00a7!\\u00a7Ouvrir en iframe!\\u00a7!":"iframe","\\u00a7!\\u00a7Copier un contenu!\\u00a7!":"copy","\\u00a7!\\u00a7Web Vid\\u00e9o!\\u00a7!":"video","\\u00a7!\\u00a7Vid\\u00e9o!\\u00a7!":"videofile","\\u00a7!\\u00a7Vid\\u00e9o (boucle, sans contr\\u00f4le)!\\u00a7!":"videogif","\\u00a7!\\u00a7Voir une image!\\u00a7!":"image","\\u00a7!\\u00a7Ajouter au panier!\\u00a7!":"addtocart"},"label":"\\u00a7!\\u00a7Action du bouton!\\u00a7! 2","default":"disabled","editable":true,"grade":3}',
             'options' => [
                 'disabled' => $this->__('Désactiver'),
@@ -2213,21 +2255,21 @@ trait PublicationSettings
             'translatable' => false,
         ]);
         $this->addField('', FormSeparator::class);
-        $this->addField('product_zoom_label_3', LongText::class, $this->__('Label du bouton').' 3', [
+        $this->addField('product_zoom_label_3', LongText::class, $this->__('Label du bouton') . ' 3', [
             'v2' => '{"type":"text","label":"\\u00a7!\\u00a7Label du bouton!\\u00a7! 3","default":"","editable":true,"grade":3}',
             'default' => '',
             'fake' => true,
             'store_in' => 'settings',
             'translatable' => false,
         ]);
-        $this->addField('product_zoom_tooltip_3', LongText::class, $this->__('Label de l\'infobulle').' 3', [
+        $this->addField('product_zoom_tooltip_3', LongText::class, $this->__('Label de l\'infobulle') . ' 3', [
             'v2' => '{"type":"text","label":"\\u00a7!\\u00a7Label de l\'infobulle!\\u00a7! 3","default":"","editable":true,"grade":3}',
             'default' => '',
             'fake' => true,
             'store_in' => 'settings',
             'translatable' => false,
         ]);
-        $this->addField('product_zoom_icon_3', SelectFromArray::class, $this->__('Icône du bouton').' 3', [
+        $this->addField('product_zoom_icon_3', SelectFromArray::class, $this->__('Icône du bouton') . ' 3', [
             'v2' => '{"type":"combo","datas":{"\\u00a7!\\u00a7Aucune!\\u00a7!":"none","\\u00a7!\\u00a7Partage!\\u00a7!":"nav-share","\\u00a7!\\u00a7Ecran!\\u00a7!":"icon-site","\\u00a7!\\u00a7T\\u00e9l\\u00e9charger!\\u00a7!":"nav-download","PDF":"icon-pdf","Video":"icon-video","\\u00a7!\\u00a7Lien!\\u00a7!":"icon-link","\\u00a7!\\u00a7Code!\\u00a7!":"icon-code","\\u00a7!\\u00a7QR code!\\u00a7!":"icon-qr","\\u00a7!\\u00a7Article!\\u00a7!":"icon-article","\\u00a7!\\u00a7Panier (sac)!\\u00a7!":"nav-basket","\\u00a7!\\u00a7Panier (caddie)!\\u00a7!":"nav-cart-caddie","\\u00a7!\\u00a7Panier (wishlist)!\\u00a7!":"nav-cart-wishlist","\\u00a7!\\u00a7360\\u00b0!\\u00a7!":"icon-360","\\u00a7!\\u00a7Photo!\\u00a7!":"icon-photo"},"label":"\\u00a7!\\u00a7Ic\\u00f4ne du bouton!\\u00a7! 3","default":"click","editable":true,"grade":3}',
             'options' => [
                 'none' => $this->__('Aucune'),
@@ -2251,7 +2293,7 @@ trait PublicationSettings
             'store_in' => 'settings',
             'translatable' => false,
         ]);
-        $this->addField('product_zoom_action_3', SelectFromArray::class, $this->__('Action du bouton').' 3', [
+        $this->addField('product_zoom_action_3', SelectFromArray::class, $this->__('Action du bouton') . ' 3', [
             'v2' => '{"type":"combo","datas":{"\\u00a7!\\u00a7D\\u00e9sactiver!\\u00a7!":"disabled","\\u00a7!\\u00a7Ouvrir un lien!\\u00a7!":"link","\\u00a7!\\u00a7Ouvrir en iframe!\\u00a7!":"iframe","\\u00a7!\\u00a7Copier un contenu!\\u00a7!":"copy","\\u00a7!\\u00a7Web Vid\\u00e9o!\\u00a7!":"video","\\u00a7!\\u00a7Vid\\u00e9o!\\u00a7!":"videofile","\\u00a7!\\u00a7Vid\\u00e9o (boucle, sans contr\\u00f4le)!\\u00a7!":"videogif","\\u00a7!\\u00a7Voir une image!\\u00a7!":"image","\\u00a7!\\u00a7Ajouter au panier!\\u00a7!":"addtocart"},"label":"\\u00a7!\\u00a7Action du bouton!\\u00a7! 3","default":"disabled","editable":true,"grade":3}',
             'options' => [
                 'disabled' => $this->__('Désactiver'),
@@ -2288,14 +2330,14 @@ trait PublicationSettings
             'store_in' => 'settings',
             'translatable' => false,
         ]);
-        $this->addField('product_email_title', LongText::class, $this->__('Titre de l\'email').' "'.$this->__('Envoyer à un ami').'"', [
+        $this->addField('product_email_title', LongText::class, $this->__('Titre de l\'email') . ' "' . $this->__('Envoyer à un ami') . '"', [
             'v2' => '{"type":"text","default":"","editable":true,"label":"\\u00a7!\\u00a7Titre de l\'email!\\u00a7! \\"\\u00a7!\\u00a7Envoyer \\u00e0 un ami!\\u00a7!\\""}',
             'default' => '',
             'fake' => true,
             'store_in' => 'settings',
             'translatable' => false,
         ]);
-        $this->addField('product_email_body', Textarea::class, $this->__('Corps de l\'email').' "'.$this->__('Envoyer à un ami').'"', [
+        $this->addField('product_email_body', Textarea::class, $this->__('Corps de l\'email') . ' "' . $this->__('Envoyer à un ami') . '"', [
             'v2' => '{"type":"textarea","default":"","editable":true,"label":"\\u00a7!\\u00a7Corps de l\'email!\\u00a7! \\"\\u00a7!\\u00a7Envoyer \\u00e0 un ami!\\u00a7!\\""}',
             'default' => '',
             'fake' => true,
@@ -2315,7 +2357,7 @@ trait PublicationSettings
             'v2' => '{"type":"freefile","default":"","editable":true,"label":"\\u00a7!\\u00a7Contenus textuels pour l\'audiodescription ou les lecteurs d\'\\u00e9cran!\\u00a7!","fileFilter":{"name":"\\u00a7!\\u00a7Fichier Excel!\\u00a7! (.xlsx)","extensions":"*.xlsx"}}',
             'default' => '',
             'accept' => [
-                0 => '',
+                0 => '*.xlsx',
             ],
             'fake' => true,
             'store_in' => 'settings',
@@ -2341,7 +2383,9 @@ trait PublicationSettings
             'v2' => '{"type":"freefile","default":"","editable":true,"label":"\\u00a7!\\u00a7Image!\\u00a7!","grade":3,"fileFilter":{"name":"\\u00a7!\\u00a7Images!\\u00a7! (*.jpg, *.png)","extensions":"*.jpg;*.jpeg;*.png"}}',
             'default' => '',
             'accept' => [
-                0 => '',
+                0 => '*.jpg',
+                1 => '*.jpeg',
+                2 => '*.png',
             ],
             'fake' => true,
             'store_in' => 'settings',
@@ -2385,7 +2429,7 @@ trait PublicationSettings
             'v2' => '{"type":"freefile","default":"","editable":true,"label":"Articles","grade":3,"fileFilter":{"name":"\\u00a7!\\u00a7Liste d\'articles!\\u00a7! (*.xml)","extensions":"*.xml"}}',
             'default' => '',
             'accept' => [
-                0 => '',
+                0 => '*.xml',
             ],
             'fake' => true,
             'store_in' => 'settings',
@@ -2446,7 +2490,9 @@ trait PublicationSettings
             'v2' => '{"type":"freefile","default":"","editable":true,"label":"\\u00a7!\\u00a7Archives!\\u00a7!","grade":3,"fileFilter":{"name":"\\u00a7!\\u00a7Images!\\u00a7! (*.jpg, *.png)","extensions":"*.jpg;*.jpeg;*.png"}}',
             'default' => '',
             'accept' => [
-                0 => '',
+                0 => '*.jpg',
+                1 => '*.jpeg',
+                2 => '*.png',
             ],
             'fake' => true,
             'store_in' => 'settings',
@@ -2561,8 +2607,10 @@ trait PublicationSettings
             'hint' => $this->__('Fichier contenant les références produits'),
             'default' => '',
             'accept' => [
-                0 => '',
+                0 => '*.xml',
+                0 => '*.xlsx',
             ],
+            'destination'=>'commerce',
             'fake' => true,
             'store_in' => 'settings',
             'translatable' => false,
@@ -2570,6 +2618,7 @@ trait PublicationSettings
         $this->addField('basketImages', FilesOrURL::class, $this->__('Images des produits'), [
             'v2' => '{"type":"freefile","default":"","editable":true,"label":"\\u00a7!\\u00a7Images des produits!\\u00a7!","grade":3,"multiple":true,"dir":"commerce"}',
             'default' => '',
+            'destination'=>'commerce',
             'fake' => true,
             'store_in' => 'settings',
             'translatable' => false,
@@ -2579,8 +2628,11 @@ trait PublicationSettings
             'v2' => '{"type":"freefile","default":"","editable":true,"label":"\\u00a7!\\u00a7Header panier!\\u00a7!","grade":3,"fileFilter":{"name":"\\u00a7!\\u00a7Images!\\u00a7! (*.jpg, *.png)","extensions":"*.jpg;*.jpeg;*.png"},"dir":"commerce"}',
             'default' => '',
             'accept' => [
-                0 => '',
+                0 => '*.jpg',
+                1 => '*.jpeg',
+                2 => '*.png',
             ],
+            'destination'=>'commerce',
             'fake' => true,
             'store_in' => 'settings',
             'translatable' => false,
@@ -2589,8 +2641,11 @@ trait PublicationSettings
             'v2' => '{"type":"freefile","default":"","editable":true,"label":"\\u00a7!\\u00a7Header panier (mobile)!\\u00a7!","grade":3,"fileFilter":{"name":"\\u00a7!\\u00a7Images!\\u00a7! (*.jpg, *.png)","extensions":"*.jpg;*.jpeg;*.png"},"dir":"commerce"}',
             'default' => '',
             'accept' => [
-                0 => '',
+                0 => '*.jpg',
+                1 => '*.jpeg',
+                2 => '*.png',
             ],
+            'destination'=>'commerce',
             'fake' => true,
             'store_in' => 'settings',
             'translatable' => false,
@@ -2621,7 +2676,7 @@ trait PublicationSettings
         $this->addField('', FormSeparator::class);
         $this->addField('offlineWindowsInstallPath', LongText::class, $this->__('Chemin d\'installation par défaut'), [
             'v2' => '{"type":"text","default":"","editable":true,"label":"\\u00a7!\\u00a7Chemin d\'installation par d\\u00e9faut!\\u00a7!","hint":"\\u00a7!\\u00a7Par d\\u00e9faut!\\u00a7!: %LOCALAPPDATA%\\/%title%"}',
-            'hint' => $this->__('Par défaut').': %LOCALAPPDATA%/%title%',
+            'hint' => $this->__('Par défaut') . ': %LOCALAPPDATA%/%title%',
             'default' => '',
             'fake' => true,
             'store_in' => 'settings',
@@ -2629,7 +2684,7 @@ trait PublicationSettings
         ]);
         $this->addField('offlineWindowsProfilePath', LongText::class, $this->__('Répertoire de stockage du profile'), [
             'v2' => '{"type":"text","default":"","editable":true,"label":"\\u00a7!\\u00a7R\\u00e9pertoire de stockage du profile!\\u00a7!","hint":"\\u00a7!\\u00a7Par d\\u00e9faut!\\u00a7!: %LOCALAPPDATA%\\/%title%"}',
-            'hint' => $this->__('Par défaut').': %LOCALAPPDATA%/%title%',
+            'hint' => $this->__('Par défaut') . ': %LOCALAPPDATA%/%title%',
             'default' => '',
             'fake' => true,
             'store_in' => 'settings',
@@ -2669,7 +2724,7 @@ trait PublicationSettings
         $this->addField('section_phonegap', FormSection::class, $this->__('Applications mobile'));
         $this->addField('phonegapId', LongText::class, $this->__('Identifiant de l\'identifiant'), [
             'v2' => '{"type":"text","default":"com.fluidbook.phonegap.$id","editable":true,"label":"\\u00a7!\\u00a7Identifiant de l\'identifiant!\\u00a7!","grade":5,"hint":"\\u00a7!\\u00a7De la forme!\\u00a7! com.fluidbook.phonegap.xxxxx"}',
-            'hint' => $this->__('De la forme').' com.fluidbook.phonegap.xxxxx',
+            'hint' => $this->__('De la forme') . ' com.fluidbook.phonegap.xxxxx',
             'default' => 'com.fluidbook.phonegap.$id',
             'fake' => true,
             'store_in' => 'settings',
@@ -2677,7 +2732,7 @@ trait PublicationSettings
         ]);
         $this->addField('phonegapVersion', LongText::class, $this->__('Version de l\'application'), [
             'v2' => '{"type":"text","default":"1.0.0","editable":true,"label":"\\u00a7!\\u00a7Version de l\'application!\\u00a7!","grade":5,"hint":"\\u00a7!\\u00a7De la forme!\\u00a7! 1.2.3"}',
-            'hint' => $this->__('De la forme').' 1.2.3',
+            'hint' => $this->__('De la forme') . ' 1.2.3',
             'default' => '1.0.0',
             'fake' => true,
             'store_in' => 'settings',
@@ -2722,7 +2777,7 @@ L,index',
             'v2' => '{"type":"freefile","label":"S\\u00e9curisation par mot de passe c\\u00f4t\\u00e9 client","editable":true,"default":"","grade":3,"fileFilter":{"name":"\\u00a7!\\u00a7Fichier HTML!\\u00a7! (*.html)","extensions":"*.html"}}',
             'default' => '',
             'accept' => [
-                0 => '',
+                0 => '*.html',
             ],
             'fake' => true,
             'store_in' => 'settings',
@@ -2801,8 +2856,8 @@ L,index',
             'v2' => '{"type":"combo","default":"lang","editable":true,"label":"\\u00a7!\\u00a7Affichage!\\u00a7!","datas":{"\\u00a7!\\u00a7Langue!\\u00a7!":"lang","\\u00a7!\\u00a7Langue!\\u00a7! (\\u00a7!\\u00a7Pays!\\u00a7!)":"lang_country","\\u00a7!\\u00a7Pays!\\u00a7! (\\u00a7!\\u00a7Langue!\\u00a7!)":"country_lang"}}',
             'options' => [
                 'lang' => $this->__('Langue'),
-                'lang_country' => $this->__('Langue').' ('.$this->__('Pays').')',
-                'country_lang' => $this->__('Pays').' ('.$this->__('Langue').')',
+                'lang_country' => $this->__('Langue') . ' (' . $this->__('Pays') . ')',
+                'country_lang' => $this->__('Pays') . ' (' . $this->__('Langue') . ')',
             ],
             'default' => 'lang',
             'fake' => true,
@@ -2811,7 +2866,7 @@ L,index',
         ]);
         $this->addField('multilang', Textarea::class, $this->__('Langues'), [
             'v2' => '{"type":"textarea","default":"","editable":true,"label":"\\u00a7!\\u00a7Langues!\\u00a7!","hint":"\\u00a7!\\u00a7Code langue!\\u00a7!,\\u00a7!\\u00a7Code pays!\\u00a7!,\\u00a7!\\u00a7URL!\\u00a7!"}',
-            'hint' => $this->__('Code langue').','.$this->__('Code pays').','.$this->__('URL'),
+            'hint' => $this->__('Code langue') . ',' . $this->__('Code pays') . ',' . $this->__('URL'),
             'default' => '',
             'fake' => true,
             'store_in' => 'settings',
@@ -2994,7 +3049,7 @@ L,index',
             'translatable' => false,
         ]);
         $this->addField('', FormSeparator::class);
-        $this->addField('scorm_pass_on_complete', Checkbox::class, $this->__('Marquer le cours comme Pass lorsqu\'il est terminé').' ('.$this->__('SCORM 2004 seulement').')', [
+        $this->addField('scorm_pass_on_complete', Checkbox::class, $this->__('Marquer le cours comme Pass lorsqu\'il est terminé') . ' (' . $this->__('SCORM 2004 seulement') . ')', [
             'v2' => '{"type":"boolean","default":true,"editable":true,"label":"\\u00a7!\\u00a7Marquer le cours comme Pass lorsqu\'il est termin\\u00e9!\\u00a7! (\\u00a7!\\u00a7SCORM 2004 seulement!\\u00a7!)"}',
             'default' => true,
             'fake' => true,
@@ -3047,7 +3102,7 @@ L,index',
             'store_in' => 'settings',
             'translatable' => false,
         ]);
-        $this->addField('scorm_commit_immediately', Checkbox::class, $this->__('Envoyer les données immédiatement au LMS').' ('.$this->__('Peut provoquer des ralentissement sur certains LMS').')', [
+        $this->addField('scorm_commit_immediately', Checkbox::class, $this->__('Envoyer les données immédiatement au LMS') . ' (' . $this->__('Peut provoquer des ralentissement sur certains LMS') . ')', [
             'v2' => '{"type":"boolean","default":false,"editable":true,"label":"\\u00a7!\\u00a7Envoyer les donn\\u00e9es imm\\u00e9diatement au LMS!\\u00a7! (\\u00a7!\\u00a7Peut provoquer des ralentissement sur certains LMS!\\u00a7!)"}',
             'default' => false,
             'fake' => true,
index 45d847deda54914468d2e28ab67ef2e176285b94..b0dc32ae461a892fba35151f2e9076d4c99a92f1 100644 (file)
@@ -128,6 +128,7 @@ return [
         'packages/featherlight/featherlight.min.js',
         'packages/fluidbook/toolbox/js/bundle.js',
 
+        'https://cdnjs.cloudflare.com/ajax/libs/jquery.form/4.3.0/jquery.form.min.js',
 
         // examples (everything inside the bundle, loaded from CDN)
         // 'https://code.jquery.com/jquery-3.4.1.min.js',