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