From 2fbf20a6125d37bbbcf640c86e03659af7b47992 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Tempez?= Date: Sat, 5 Mar 2022 15:49:03 +0100 Subject: [PATCH] =?UTF-8?q?websafe=20Manque=20pr=C3=A9visualisation=20dans?= =?UTF-8?q?=20la=20liste=20de=20fontes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGES.md | 4 ++ README.md | 2 +- core/class/template.class.php | 2 +- core/core.php | 65 +++++++++++++++++++------ core/module/theme/theme.php | 6 ++- core/module/theme/view/site/site.js.php | 1 - 6 files changed, 60 insertions(+), 20 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 4f9f6e82..f72b5c41 100755 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,6 +1,10 @@ # Changelog +## Version 11.4.00 +### Amélioration : + - prise en charge des fontes Web Safe : Georgia, Times, Arial, Trebuchet, Lucida, Tahoma, Verdana, Courier et Monaco. + ## Version 11.3.04 ### Correction : - Duplication d'id dans le menu. diff --git a/README.md b/README.md index 9bdc898f..eb9e8330 100755 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# ZwiiCMS 11.3.04 +# ZwiiCMS 11.4.00 Zwii est un CMS sans base de données (flat-file) qui permet de créer et gérer facilement un site web sans aucune connaissance en programmation. diff --git a/core/class/template.class.php b/core/class/template.class.php index d246b719..b412e3ea 100644 --- a/core/class/template.class.php +++ b/core/class/template.class.php @@ -649,7 +649,7 @@ class template { '', $value, $attributes['selected'] == $value ? ' selected' : '', // Double == pour ignorer le type de variable car $_POST change les types en string - core::$fonts[$value], + $text, $text ) : sprintf( '', diff --git a/core/core.php b/core/core.php index dc38e1a5..08a9e3ae 100644 --- a/core/core.php +++ b/core/core.php @@ -185,37 +185,41 @@ class common { // Fontes public static $fonts = [ - 'abril-fatface' => 'Abril Fatface', 'arimo' => 'Arimo', 'arvo' => 'Arvo', - 'berkshire-swash' => 'Berkshire Swash', 'dancing-script' => 'Dancing Script', 'droid-sans-2' => 'Droid Sans', 'droid-serif-2' => 'Droid Serif', - 'fira-sans' => 'Fira Sans', - 'genera' => 'Genera', - 'inconsolata-2' => 'Inconsolata', 'indie-flower' => 'Indie Flower', - 'josefin-sans-std' => 'Josefin Sans', 'liberation-sans' => 'Liberation Sans', 'liberation-serif' => 'Liberation Serif', 'lobster-2' => 'Lobster', 'lora' => 'Lora', 'lato' => 'Lato', - 'montserrat-ace' => 'Montserrat Ace', 'old-standard-tt-3' => 'Old Standard TT', 'open-sans' => 'Open Sans', 'oswald-4' => 'Oswald', 'pt-mono' => 'PT Mono', 'pt-serif' => 'PT Serif', - 'raleway-5' => 'Raleway', 'rancho' => 'Rancho', 'roboto' => 'Roboto', - 'signika' => 'Signika', 'ubuntu' => 'Ubuntu', 'vollkorn' => 'Vollkorn' ]; + public static $fontsWebSafe = [ + 'georgia' => 'Georgia, DejaVu Serif, Norasi, serif;', + 'times' => 'Times, Times New Roman, Liberation Serif, FreeSerif, serif;', + 'arial' => 'Arial, Helvetica, Liberation Sans, FreeSans, sans-serif;', + 'trebuchet' => 'Trebuchet MS, Arial, Helvetica, sans-serif;', + 'lucida' => 'Lucida Sans, Lucida Grande, Lucida Sans Unicode, Luxi Sans, sans-serif;', + 'tahoma' => 'Tahoma, Geneva, Kalimati, sans-serif;', + 'verdana' => 'Verdana, DejaVu Sans, Bitstream Vera Sans, Geneva, sans-serif;', + 'impact' => 'Impact, Arial Black, sans-serif;', + 'courrier' => 'Courier, Courier New, FreeMono, Liberation Mono, monospace;', + 'monaco' => 'Monaco, DejaVu Sans Mono, Lucida Console, Andale Mono, monospace;' + ]; + /** * Constructeur commun */ @@ -2277,16 +2281,26 @@ class core extends common { } } + /** + * Traitement des polices de caractères + */ + + // Fusionne la liste des fontes avec les webSafe + foreach (self::$fontsWebSafe as $fontId => $fontValue) { + $fontName = explode (',', $fontValue); + self::$fonts [$fontId] = $fontName[0]; + } // Importe les polices personnalisées $fontsImported = $this->getData(['fonts', 'imported']); if (is_array($fontsImported) && !empty ($fontsImported) ) { - // Fusionner les fonts avec les fontes installées + // Fusionner avec les fontes installées self::$fonts = array_merge(self::$fonts, $fontsImported); - // Tri Alphabétique - asort(self::$fonts); + } + // Tri Alphabétique + asort(self::$fonts); // Crée le fichier de personnalisation avancée if(file_exists(self::DATA_DIR.'custom.css') === false) { @@ -2311,7 +2325,9 @@ class core extends common { /** * Import des polices de caractères - * A partir du CDN ou dans le dossier site/file/source/fonts + * A partir du CDN + * ou dans le dossier site/file/source/fonts + * ou pas du tout si fonte webSafe */ $fonts = [ $this->getData(['theme', 'text', 'font']), $this->getData(['theme', 'title', 'font']), @@ -2321,12 +2337,21 @@ class core extends common { ]; // Suppression des polices identiques $fonts = array_unique($fonts); - // Lire le fichier des fontes locales - $localFonts = $this->getData(['fonts', 'files']); + + /** + * Fontes Web Safe, ne sont pas chargées. + */ + foreach ($fonts as $fontId) { + if (array_key_exists($fontId, self::$fontsWebSafe) ) { + unset($fonts[$fontId]); + } + } /** * Chargement des polices en ligne dans un fichier séparé */ + // Lire le fichier des fontes locales + $localFonts = $this->getData(['fonts', 'files']); $fontFile = ''; foreach ($fonts as $fontId) { if (!array_key_exists($fontId, $localFonts) ) { @@ -2549,6 +2574,16 @@ class core extends common { ]; // Suppression des polices identiques $fonts = array_unique($fonts); + + /** + * Fontes Web Safe, ne sont pas chargées. + */ + foreach ($fonts as $fontId) { + if (array_key_exists($fontId, self::$fontsWebSafe) ) { + unset($fonts[$fontId]); + } + } + // Lire le fichier des fontes locales $localFonts = $this->getData(['fonts', 'files']); diff --git a/core/module/theme/theme.php b/core/module/theme/theme.php index 5f988d5d..19a209c1 100644 --- a/core/module/theme/theme.php +++ b/core/module/theme/theme.php @@ -574,11 +574,13 @@ class theme extends common { } } self::$fontsList [] = [ - $fontName, + '' . $fontName . '' , $fontId, $fontUsed[$fontId], //array_key_exists($fontId, $fonts['imported']) ? 'Importée' : '', - array_key_exists($fontId, $fonts['files']) ? $fonts['files'][$fontId] : 'CDN Fonts', + array_key_exists($fontId, $fonts['files']) ? + $fonts['files'][$fontId] : + (array_key_exists($fontId, self::$fontsWebSafe) ? 'WebSafe' : 'CDN Fonts'), array_key_exists($fontId, $fonts['imported']) || array_key_exists($fontId, $fonts['files']) ? template::button('themeFontDelete' . $fontId, [ 'class' => 'themeFontDelete buttonRed', diff --git a/core/module/theme/view/site/site.js.php b/core/module/theme/view/site/site.js.php index 3ff25012..c9b01d34 100644 --- a/core/module/theme/view/site/site.js.php +++ b/core/module/theme/view/site/site.js.php @@ -37,7 +37,6 @@ $("input, select").on("change",function() { var titleFontText = $("#themeTitleFont :selected").text(); var textFont = $("#themeTextFont :selected").val(); var textFontText = $("#themeTextFont :selected").text(); - console.log(textFontText); var css = "@import url('https://fonts.cdnfonts.com/css/" + titleFont + "');"; var css = "@import url('https://fonts.cdnfonts.com/css/" + textFont + "');"; // Couleurs des boutons