diff --git a/core/class/template.class.php b/core/class/template.class.php index a0f64982..151d4cce 100644 --- a/core/class/template.class.php +++ b/core/class/template.class.php @@ -1,6 +1,6 @@ '; // Label @@ -447,7 +447,7 @@ class template { $lang = 'fr'; } } - return ' '', 'name' => $nameId, 'selected' => '', - 'fonts' => false + 'fonts' => [] ], $attributes); + // Stocker les fontes et remettre à zéro le tableau des fontes transmis pour éviter une erreur de sprintAttributes + if (empty($attributes['fonts']) === false) { + $fonts = $attributes['fonts']; + $attributes['fonts'] = []; + } // Sauvegarde des données en cas d'erreur if($attributes['before'] AND array_key_exists($attributes['id'], common::$inputBefore)) { $attributes['selected'] = common::$inputBefore[$attributes['id']]; @@ -626,7 +631,7 @@ class template { 'help' => $attributes['help'] ]); } - // Notice + // Notice $notice = ''; if(array_key_exists($attributes['id'], common::$inputNotices)) { $notice = common::$inputNotices[$attributes['id']]; @@ -638,12 +643,14 @@ class template { helper::sprintAttributes($attributes) ); foreach($options as $value => $text) { - $html .= $attributes['fonts'] === true ? sprintf( + // Select des liste de fontes + $html .= isset($fonts) ? sprintf( '', $value, $attributes['selected'] == $value ? ' selected' : '', // Double == pour ignorer le type de variable car $_POST change les types en string - $text, + $fonts[$value], $text + // Select standard ) : sprintf( '', $value, diff --git a/core/module/theme/theme.php b/core/module/theme/theme.php index edaff96c..3ce02316 100644 --- a/core/module/theme/theme.php +++ b/core/module/theme/theme.php @@ -232,7 +232,8 @@ class theme extends common { // Variable pour construire la liste des pages du site public static $pagesList = []; // Variable pour construire la liste des fontes installées - public static $fontsList = []; + public static $fontsNames= []; + public static $fonts = []; // Variable pour détailler les fontes installées public static $fontsDetail = []; @@ -1126,7 +1127,11 @@ class theme extends common { // Retourne un tableau simple des fonts installées idfont avec le nom // Cette fonction est utile aux sélecteurs de fonts dans les formulaires. public function enumFonts() { - // Récupère la liste des fontes installées + /** + * Récupère la liste des fontes installées et construit deux tableaux + * id - nom + * id - font-family - resource + */ $f ['files'] = $this->getData(['fonts', 'files']); $f ['imported'] = $this->getData(['fonts', 'imported']); $f ['websafe'] = self::$fontsWebSafe; @@ -1134,12 +1139,14 @@ class theme extends common { foreach(['websafe', 'imported', 'files'] as $type) { if (is_array($f[$type])) { foreach ($f[$type] as $fontId => $fontValue ) { - $fonts [$fontId] = $fontValue['name']; + self::$fonts['name'][$fontId] = $fontValue['name']; + self::$fonts['family'][$fontId] = $fontValue['font-family']; } } } - ksort($fonts); - self::$fontsList = $fonts; + // Liste des fontes pour les sélecteurs + ksort(self::$fonts['name']); + ksort(self::$fonts['family']); } } diff --git a/core/module/theme/view/admin/admin.php b/core/module/theme/view/admin/admin.php index 8dcfaf98..38b37dd4 100644 --- a/core/module/theme/view/admin/admin.php +++ b/core/module/theme/view/admin/admin.php @@ -128,10 +128,10 @@

Mise en forme du texte

- 'Police du texte', 'selected' => $this->getData(['admin', 'fontText']), - 'fonts' => true + 'fonts' => $module::$fonts['family'] ]); ?>
@@ -141,10 +141,10 @@ ]); ?>
- 'Police des titres', 'selected' => $this->getData(['admin', 'fontTitle']), - 'fonts' => true + 'fonts' => $module::$fonts['family'] ]); ?>
diff --git a/core/module/theme/view/footer/footer.php b/core/module/theme/view/footer/footer.php index f5e3af4a..fad814cc 100644 --- a/core/module/theme/view/footer/footer.php +++ b/core/module/theme/view/footer/footer.php @@ -171,10 +171,10 @@

Mise en forme du texte

- 'Fonte', 'selected' => $this->getData(['theme', 'footer', 'font']), - 'fonts' => true + 'fonts' => $module::$fonts['family'] ]); ?>
diff --git a/core/module/theme/view/header/header.php b/core/module/theme/view/header/header.php index a0f86b11..04de81ed 100644 --- a/core/module/theme/view/header/header.php +++ b/core/module/theme/view/header/header.php @@ -106,10 +106,10 @@ ]); ?>
- 'Fonte', 'selected' => $this->getData(['theme', 'header', 'font']), - 'fonts' => true + 'fonts' => $module::$fonts['family'] ]); ?>
diff --git a/core/module/theme/view/menu/menu.php b/core/module/theme/view/menu/menu.php index 161813f2..ba81757f 100644 --- a/core/module/theme/view/menu/menu.php +++ b/core/module/theme/view/menu/menu.php @@ -183,10 +183,10 @@

Mise en forme du texte

- 'Fonte', 'selected' => $this->getData(['theme', 'menu', 'font']), - 'fonts' => true + 'fonts' => $module::$fonts['family'] ]); ?>
diff --git a/core/module/theme/view/site/site.js.php b/core/module/theme/view/site/site.js.php index c9b01d34..a0ff31eb 100644 --- a/core/module/theme/view/site/site.js.php +++ b/core/module/theme/view/site/site.js.php @@ -11,7 +11,32 @@ * @link http://zwiicms.fr/ */ + $( document ).ready(function() { + /** + * Chargement des fontes installées pour l'aperçu dans les sélecteurs + */ + var fontsFile = getData(['fonts', 'files']) ); ?>; + var fontsImported = getData(['fonts', 'imported']) ); ?>; + var fonts = ; + + // Concaténation + if (fontsImported.length != 0 ) { + fonts = $.merge(fonts, fontsImported); + } + if (fontsFile.length != 0 ) { + fonts = $.merge(fonts, fontsFile); + } + // Fonte WebSa + $.each(fonts, function(key, value) { + console.log( "The key is" + key); + $.each(value, function(i, f) { + console.log(f); + }); + + }); + + }); /** * Aperçu en direct @@ -28,20 +53,19 @@ $("input, select").on("change",function() { $("#themeSiteMarginWrapper").show(); } + /** * Aperçu dans la boîte */ - // Import des polices de caractères + // Import des polices de caractères pour l'aperçu en temps réel var titleFont = $("#themeTitleFont :selected").val(); var titleFontText = $("#themeTitleFont :selected").text(); var textFont = $("#themeTextFont :selected").val(); var textFontText = $("#themeTextFont :selected").text(); - var css = "@import url('https://fonts.cdnfonts.com/css/" + titleFont + "');"; - var css = "@import url('https://fonts.cdnfonts.com/css/" + textFont + "');"; // Couleurs des boutons var colors = core.colorVariants($("#themeButtonBackgroundColor").val()); - css += ".button.buttonSubmitPreview{background-color:" + colors.normal + ";}"; + var css = ".button.buttonSubmitPreview{background-color:" + colors.normal + ";}"; css += ".button.buttonSubmitPreview:hover{background-color:" + colors.darken + "}"; css += ".button.buttonSubmitPreview{color:" + colors.text + ";}"; @@ -113,5 +137,4 @@ $("input, select").on("change",function() { .attr("id", "themePreview") .text(css) .appendTo("head"); - }).trigger("change"); diff --git a/core/module/theme/view/site/site.php b/core/module/theme/view/site/site.php index 4157c3d4..a6e42200 100644 --- a/core/module/theme/view/site/site.php +++ b/core/module/theme/view/site/site.php @@ -141,7 +141,8 @@
-

Bloc

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

+

Bloc

+

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Lorem ipsum dolor sit amet.

@@ -158,10 +159,11 @@

Mise en forme du texte

- 'Fonte', 'selected' => $this->getData(['theme', 'text', 'font']), - 'fonts' => true + 'fonts' => $module::$fonts['family'] ]); ?>
@@ -179,10 +181,10 @@

Mise en forme des titres

- 'Fonte', 'selected' => $this->getData(['theme', 'title', 'font']), - 'fonts' => true + 'fonts' => $module::$fonts['family'] ]); ?>