From e4b84b024fb57f1abe0bdff4a2820872a5b251ad Mon Sep 17 00:00:00 2001 From: fredtempez Date: Wed, 20 Apr 2022 16:38:54 +0200 Subject: [PATCH 01/15] =?UTF-8?q?Supprime=20la=20propri=C3=A9t=C3=A9=20fon?= =?UTF-8?q?ts=20du=20template=20select?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/class/template.class.php | 11 ++--------- core/module/theme/theme.php | 5 +++-- core/module/theme/view/admin/admin.php | 6 ++---- core/module/theme/view/footer/footer.php | 3 +-- core/module/theme/view/header/header.php | 3 +-- core/module/theme/view/menu/menu.php | 3 +-- core/module/theme/view/site/site.php | 6 ++---- 7 files changed, 12 insertions(+), 25 deletions(-) diff --git a/core/class/template.class.php b/core/class/template.class.php index a0f64982..7f623221 100644 --- a/core/class/template.class.php +++ b/core/class/template.class.php @@ -611,8 +611,7 @@ class template { 'id' => $nameId, 'label' => '', 'name' => $nameId, - 'selected' => '', - 'fonts' => false + 'selected' => '' ], $attributes); // Sauvegarde des données en cas d'erreur if($attributes['before'] AND array_key_exists($attributes['id'], common::$inputBefore)) { @@ -638,13 +637,7 @@ class template { helper::sprintAttributes($attributes) ); foreach($options as $value => $text) { - $html .= $attributes['fonts'] === true ? sprintf( - '', - $value, - $attributes['selected'] == $value ? ' selected' : '', // Double == pour ignorer le type de variable car $_POST change les types en string - $text, - $text - ) : sprintf( + $html .= sprintf( '', $value, $attributes['selected'] == $value ? ' selected' : '', // Double == pour ignorer le type de variable car $_POST change les types en string diff --git a/core/module/theme/theme.php b/core/module/theme/theme.php index edaff96c..71c2c557 100644 --- a/core/module/theme/theme.php +++ b/core/module/theme/theme.php @@ -571,7 +571,6 @@ class theme extends common { ]; // Récupérer le détail des fontes installées - //$f = $this->getFonts(); $f ['files'] = $this->getData(['fonts', 'files']); $f ['imported'] = $this->getData(['fonts', 'imported']); $f ['websafe'] = self::$fontsWebSafe; @@ -1125,7 +1124,8 @@ 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() { + // Génère une feuille de style pour l'aperçu des sélecteurs + private function enumFonts() { // Récupère la liste des fontes installées $f ['files'] = $this->getData(['fonts', 'files']); $f ['imported'] = $this->getData(['fonts', 'imported']); @@ -1140,6 +1140,7 @@ class theme extends common { } ksort($fonts); self::$fontsList = $fonts; + } } diff --git a/core/module/theme/view/admin/admin.php b/core/module/theme/view/admin/admin.php index 8dcfaf98..b03ebf50 100644 --- a/core/module/theme/view/admin/admin.php +++ b/core/module/theme/view/admin/admin.php @@ -130,8 +130,7 @@
'Police du texte', - 'selected' => $this->getData(['admin', 'fontText']), - 'fonts' => true + 'selected' => $this->getData(['admin', 'fontText']) ]); ?>
@@ -143,8 +142,7 @@
'Police des titres', - 'selected' => $this->getData(['admin', 'fontTitle']), - 'fonts' => true + 'selected' => $this->getData(['admin', 'fontTitle']) ]); ?>
diff --git a/core/module/theme/view/footer/footer.php b/core/module/theme/view/footer/footer.php index f5e3af4a..104dd092 100644 --- a/core/module/theme/view/footer/footer.php +++ b/core/module/theme/view/footer/footer.php @@ -173,8 +173,7 @@
'Fonte', - 'selected' => $this->getData(['theme', 'footer', 'font']), - 'fonts' => true + 'selected' => $this->getData(['theme', 'footer', 'font']) ]); ?>
diff --git a/core/module/theme/view/header/header.php b/core/module/theme/view/header/header.php index a0f86b11..ae2c82bc 100644 --- a/core/module/theme/view/header/header.php +++ b/core/module/theme/view/header/header.php @@ -108,8 +108,7 @@
'Fonte', - 'selected' => $this->getData(['theme', 'header', 'font']), - 'fonts' => true + 'selected' => $this->getData(['theme', 'header', 'font']) ]); ?>
diff --git a/core/module/theme/view/menu/menu.php b/core/module/theme/view/menu/menu.php index 161813f2..f11c7a96 100644 --- a/core/module/theme/view/menu/menu.php +++ b/core/module/theme/view/menu/menu.php @@ -185,8 +185,7 @@
'Fonte', - 'selected' => $this->getData(['theme', 'menu', 'font']), - 'fonts' => true + 'selected' => $this->getData(['theme', 'menu', 'font']) ]); ?>
diff --git a/core/module/theme/view/site/site.php b/core/module/theme/view/site/site.php index 4157c3d4..f9e46d91 100644 --- a/core/module/theme/view/site/site.php +++ b/core/module/theme/view/site/site.php @@ -160,8 +160,7 @@
'Fonte', - 'selected' => $this->getData(['theme', 'text', 'font']), - 'fonts' => true + 'selected' => $this->getData(['theme', 'text', 'font']) ]); ?>
@@ -181,8 +180,7 @@
'Fonte', - 'selected' => $this->getData(['theme', 'title', 'font']), - 'fonts' => true + 'selected' => $this->getData(['theme', 'title', 'font']) ]); ?>
From 3177faf3f7cbef844d741a420b435dceda762d3b Mon Sep 17 00:00:00 2001 From: fredtempez Date: Wed, 20 Apr 2022 17:03:54 +0200 Subject: [PATCH 02/15] =?UTF-8?q?Revert=20"Supprime=20la=20propri=C3=A9t?= =?UTF-8?q?=C3=A9=20fonts=20du=20template=20select"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit e4b84b024fb57f1abe0bdff4a2820872a5b251ad. --- core/class/template.class.php | 11 +++++++++-- core/module/theme/theme.php | 5 ++--- core/module/theme/view/admin/admin.php | 6 ++++-- core/module/theme/view/footer/footer.php | 3 ++- core/module/theme/view/header/header.php | 3 ++- core/module/theme/view/menu/menu.php | 3 ++- core/module/theme/view/site/site.php | 6 ++++-- 7 files changed, 25 insertions(+), 12 deletions(-) diff --git a/core/class/template.class.php b/core/class/template.class.php index 7f623221..a0f64982 100644 --- a/core/class/template.class.php +++ b/core/class/template.class.php @@ -611,7 +611,8 @@ class template { 'id' => $nameId, 'label' => '', 'name' => $nameId, - 'selected' => '' + 'selected' => '', + 'fonts' => false ], $attributes); // Sauvegarde des données en cas d'erreur if($attributes['before'] AND array_key_exists($attributes['id'], common::$inputBefore)) { @@ -637,7 +638,13 @@ class template { helper::sprintAttributes($attributes) ); foreach($options as $value => $text) { - $html .= sprintf( + $html .= $attributes['fonts'] === true ? sprintf( + '', + $value, + $attributes['selected'] == $value ? ' selected' : '', // Double == pour ignorer le type de variable car $_POST change les types en string + $text, + $text + ) : sprintf( '', $value, $attributes['selected'] == $value ? ' selected' : '', // Double == pour ignorer le type de variable car $_POST change les types en string diff --git a/core/module/theme/theme.php b/core/module/theme/theme.php index 71c2c557..edaff96c 100644 --- a/core/module/theme/theme.php +++ b/core/module/theme/theme.php @@ -571,6 +571,7 @@ class theme extends common { ]; // Récupérer le détail des fontes installées + //$f = $this->getFonts(); $f ['files'] = $this->getData(['fonts', 'files']); $f ['imported'] = $this->getData(['fonts', 'imported']); $f ['websafe'] = self::$fontsWebSafe; @@ -1124,8 +1125,7 @@ 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. - // Génère une feuille de style pour l'aperçu des sélecteurs - private function enumFonts() { + public function enumFonts() { // Récupère la liste des fontes installées $f ['files'] = $this->getData(['fonts', 'files']); $f ['imported'] = $this->getData(['fonts', 'imported']); @@ -1140,7 +1140,6 @@ class theme extends common { } ksort($fonts); self::$fontsList = $fonts; - } } diff --git a/core/module/theme/view/admin/admin.php b/core/module/theme/view/admin/admin.php index b03ebf50..8dcfaf98 100644 --- a/core/module/theme/view/admin/admin.php +++ b/core/module/theme/view/admin/admin.php @@ -130,7 +130,8 @@
'Police du texte', - 'selected' => $this->getData(['admin', 'fontText']) + 'selected' => $this->getData(['admin', 'fontText']), + 'fonts' => true ]); ?>
@@ -142,7 +143,8 @@
'Police des titres', - 'selected' => $this->getData(['admin', 'fontTitle']) + 'selected' => $this->getData(['admin', 'fontTitle']), + 'fonts' => true ]); ?>
diff --git a/core/module/theme/view/footer/footer.php b/core/module/theme/view/footer/footer.php index 104dd092..f5e3af4a 100644 --- a/core/module/theme/view/footer/footer.php +++ b/core/module/theme/view/footer/footer.php @@ -173,7 +173,8 @@
'Fonte', - 'selected' => $this->getData(['theme', 'footer', 'font']) + 'selected' => $this->getData(['theme', 'footer', 'font']), + 'fonts' => true ]); ?>
diff --git a/core/module/theme/view/header/header.php b/core/module/theme/view/header/header.php index ae2c82bc..a0f86b11 100644 --- a/core/module/theme/view/header/header.php +++ b/core/module/theme/view/header/header.php @@ -108,7 +108,8 @@
'Fonte', - 'selected' => $this->getData(['theme', 'header', 'font']) + 'selected' => $this->getData(['theme', 'header', 'font']), + 'fonts' => true ]); ?>
diff --git a/core/module/theme/view/menu/menu.php b/core/module/theme/view/menu/menu.php index f11c7a96..161813f2 100644 --- a/core/module/theme/view/menu/menu.php +++ b/core/module/theme/view/menu/menu.php @@ -185,7 +185,8 @@
'Fonte', - 'selected' => $this->getData(['theme', 'menu', 'font']) + 'selected' => $this->getData(['theme', 'menu', 'font']), + 'fonts' => true ]); ?>
diff --git a/core/module/theme/view/site/site.php b/core/module/theme/view/site/site.php index f9e46d91..4157c3d4 100644 --- a/core/module/theme/view/site/site.php +++ b/core/module/theme/view/site/site.php @@ -160,7 +160,8 @@
'Fonte', - 'selected' => $this->getData(['theme', 'text', 'font']) + 'selected' => $this->getData(['theme', 'text', 'font']), + 'fonts' => true ]); ?>
@@ -180,7 +181,8 @@
'Fonte', - 'selected' => $this->getData(['theme', 'title', 'font']) + 'selected' => $this->getData(['theme', 'title', 'font']), + 'fonts' => true ]); ?>
From 64af161bb276f8e28f535038d9d9c1d50c7cc0c3 Mon Sep 17 00:00:00 2001 From: fredtempez Date: Thu, 21 Apr 2022 18:38:19 +0200 Subject: [PATCH 03/15] Select avec family name --- core/class/template.class.php | 21 ++++++++++----- core/module/theme/theme.php | 17 ++++++++---- core/module/theme/view/admin/admin.php | 8 +++--- core/module/theme/view/footer/footer.php | 4 +-- core/module/theme/view/header/header.php | 4 +-- core/module/theme/view/menu/menu.php | 4 +-- core/module/theme/view/site/site.js.php | 33 ++++++++++++++++++++---- core/module/theme/view/site/site.php | 12 +++++---- 8 files changed, 71 insertions(+), 32 deletions(-) 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'] ]); ?>
From b5caba6e7004e8e8636f98cd04c8b29a4cf8819f Mon Sep 17 00:00:00 2001 From: fredtempez Date: Thu, 21 Apr 2022 23:37:57 +0200 Subject: [PATCH 04/15] Chargement de toutes les fontes --- core/core.php | 142 +++--------------------- core/layout/blank.php | 10 ++ core/layout/light.php | 10 ++ core/layout/main.php | 10 ++ core/module/theme/theme.php | 54 ++++++++- core/module/theme/view/site/site.js.php | 27 ----- 6 files changed, 98 insertions(+), 155 deletions(-) diff --git a/core/core.php b/core/core.php index 495db9de..cff3145f 100644 --- a/core/core.php +++ b/core/core.php @@ -2156,15 +2156,12 @@ class common { // Import des styles liés à la page if($this->output['style']) { echo ''; + // Import de la feuille de style des pages admin if (strpos($this->output['style'], 'admin.css') >= 1 ) { echo ''; } echo ''; } - // Import des fontes liées au thème - if (file_exists(self::DATA_DIR.'fonts/fonts.html')) { - include_once(self::DATA_DIR.'fonts/fonts.html'); - } } /** @@ -2334,74 +2331,18 @@ class core extends common { // Version $css = '/*' . md5(json_encode($this->getData(['theme']))) . '*/'; - /** * Import des polices de caractères - * A partir du CDN - * ou dans le dossier site/file/source/fonts - * ou pas du tout si fonte webSafe */ - // Fonts disponibles - $fontsAvailable ['files'] = $this->getData(['fonts', 'files']); - $fontsAvailable ['imported'] = $this->getData(['fonts', 'imported']); - $fontsAvailable ['websafe'] = self::$fontsWebSafe; - - // Fontes installées - $fonts = [ $this->getData(['theme', 'text', 'font']), - $this->getData(['theme', 'title', 'font']), - $this->getData(['theme', 'header', 'font']), - $this->getData(['theme', 'menu', 'font']), - $this->getData(['theme', 'footer', 'font']) - ]; - // Suppression des polices identiques - $fonts = array_unique($fonts); - - /** - * Charge les fontes websafe - */ - $fontFile = ''; - foreach ($fonts as $fontId) { - if ( isset($fontsAvailable['websafe'][$fontId])) { - $fonts [$fontId] = $fontsAvailable['websafe'][$fontId]['font-family']; - } - } - - /** - * Chargement des polices en ligne dans un fichier fonts.html inclus dans main.php - */ - $fontFile = ''; - $gf = false; - foreach ($fonts as $fontId) { - if ( isset($fontsAvailable['imported'][$fontId])) { - $fontFile .= ''; - // Tableau pour la construction de la feuille de style - $fonts [$fontId] = $fontsAvailable['imported'][$fontId]['font-family']; - $gf = strpos($fontsAvailable['imported'][$fontId]['resource'], 'fonts.googleapis.com') === false ? $gf || false : $gf || true; - } - } - // Ajoute le préconnect des fontes Googles. - $fontFile = $gf ? '' . $fontFile - : $fontFile; - // Enregistre la personnalisation - file_put_contents(self::DATA_DIR.'fonts/fonts.html', $fontFile); - - /** - * Fontes installées localement - */ - foreach ($fonts as $fontId) { - // Validité du tableau : - if ( isset($fontsAvailable['files'][$fontId]) ) { - if (file_exists(self::DATA_DIR . 'fonts/' . $fontId) ) { - // Chargement de la police - //$formatFont = explode('.', self::DATA_DIR . 'fonts/' . $fontName); - $css .= '@font-face {font-family:"' . $fontsAvailable['files'][$fontId]['font-family'] . '";'; - $css .= 'src: url("' . helper::baseUrl(false) . self::DATA_DIR . 'fonts/' .$fontsAvailable['files'][$fontId]['resource'] . '");}'; - // Tableau pour la construction de la feuille de style - $fonts [$fontId] = $fontsAvailable['files'][$fontId]['font-family']; - } else { - // Le fichier de font n'est pas disponible, fonte par défaut - $fonts [$fontId] = 'verdana'; + $f ['files'] = $this->getData(['fonts', 'files']); + $f ['imported'] = $this->getData(['fonts', 'imported']); + $f ['websafe'] = self::$fontsWebSafe; + // Construit un tableau avec leur ID et leur famille + foreach(['websafe', 'imported', 'files'] as $type) { + if (is_array($f[$type])) { + foreach ($f[$type] as $fontId => $fontValue ) { + $fonts[$fontId] = $fontValue['font-family']; } } } @@ -2572,12 +2513,6 @@ class core extends common { $css .= '#footerText > p {text-align:' . $this->getData(['theme', 'footer', 'textAlign']) . '}'; $css .= '#footerCopyright{text-align:' . $this->getData(['theme', 'footer', 'copyrightAlign']) . '}'; - // Enregistre les fontes - if (!is_dir(self::DATA_DIR . 'fonts')) { - mkdir(self::DATA_DIR . 'fonts'); - } - file_put_contents(self::DATA_DIR . 'fonts/fonts.html', $fontFile); - // Enregistre la personnalisation file_put_contents(self::DATA_DIR.'theme.css', $css); @@ -2596,61 +2531,18 @@ class core extends common { // Version $css = '/*' . md5(json_encode($this->getData(['admin']))) . '*/'; - // Fonts disponibles - $fontsAvailable ['files'] = $this->getData(['fonts', 'files']); - $fontsAvailable ['imported'] = $this->getData(['fonts', 'imported']); - $fontsAvailable ['websafe'] = self::$fontsWebSafe; - /** * Import des polices de caractères - * A partir du CDN ou dans le dossier site/file/source/fonts */ - $fonts = [ $this->getData(['admin', 'fontText']), - $this->getData(['admin', 'fontTitle']), - ]; - // Suppression des polices identiques - $fonts = array_unique($fonts); - /** - * Charge les fontes websafe - */ - $fontFile = ''; - foreach ($fonts as $fontId) { - if ( isset($fontsAvailable['websafe'][$fontId])) { - $fonts [$fontId] = $fontsAvailable['websafe'][$fontId]['font-family']; - } - } - - /** - * Chargement des polices en ligne dans un fichier fonts.html inclus dans main.php - */ - $fontFile = ''; - foreach ($fonts as $fontId) { - if ( isset($fontsAvailable['imported'][$fontId])) { - $fontFile .= ''; - // Tableau pour la construction de la feuille de style - $fonts [$fontId] = $fontsAvailable['imported'][$fontId]['font-family']; - } - } - // Enregistre la personnalisation - file_put_contents(self::DATA_DIR.'fonts/fonts.html', $fontFile); - - /** - * Fontes installées localement - */ - foreach ($fonts as $fontId) { - // Validité du tableau : - if ( isset($fontsAvailable['files'][$fontId]) ) { - if (file_exists(self::DATA_DIR . 'fonts/' . $fontId) ) { - // Chargement de la police - //$formatFont = explode('.', self::DATA_DIR . 'fonts/' . $fontName); - $css .= '@font-face {font-family:"' . $fontsAvailable['files'][$fontId]['font-family'] . '";'; - $css .= 'src: url("' . helper::baseUrl(false) . self::DATA_DIR . 'fonts/' .$fontsAvailable['files'][$fontId]['resource'] . '");}'; - // Tableau pour la construction de la feuille de style - $fonts [$fontId] = $fontsAvailable['files'][$fontId]['font-family']; - } else { - // Le fichier de font n'est pas disponible, fonte par défaut - $fonts [$fontId] = 'verdana'; + $f ['files'] = $this->getData(['fonts', 'files']); + $f ['imported'] = $this->getData(['fonts', 'imported']); + $f ['websafe'] = self::$fontsWebSafe; + // Construit un tableau avec leur ID et leur famille + foreach(['websafe', 'imported', 'files'] as $type) { + if (is_array($f[$type])) { + foreach ($f[$type] as $fontId => $fontValue ) { + $fonts[$fontId] = $fontValue['font-family']; } } } diff --git a/core/layout/blank.php b/core/layout/blank.php index 789b1af6..db6b8727 100644 --- a/core/layout/blank.php +++ b/core/layout/blank.php @@ -14,6 +14,16 @@ + + + + + + showContent(); ?> showScript(); ?> diff --git a/core/layout/light.php b/core/layout/light.php index 833cb19d..e8de5ea5 100644 --- a/core/layout/light.php +++ b/core/layout/light.php @@ -14,6 +14,16 @@ + + + + + + showNotification(); ?> diff --git a/core/layout/main.php b/core/layout/main.php index ad56c0b2..1f19c331 100644 --- a/core/layout/main.php +++ b/core/layout/main.php @@ -13,6 +13,16 @@ + + + + + + getData(['page', $this->getUrl(0), 'moduleId']) === 'blog' OR $this->getData(['page', $this->getUrl(0), 'moduleId']) === 'news' ) diff --git a/core/module/theme/theme.php b/core/module/theme/theme.php index 3ce02316..a88e0252 100644 --- a/core/module/theme/theme.php +++ b/core/module/theme/theme.php @@ -655,9 +655,10 @@ class theme extends common { if ( $type === 'files' && file_exists(self::FILE_DIR . 'source/' . $ressource) ) { - copy ( self::FILE_DIR . 'source/' . $ressource, self::DATA_DIR . $ressource ); + copy ( self::FILE_DIR . 'source/' . $ressource, self::DATA_DIR . 'fonts/' . $ressource ); } - + // Met à jour les fichiers d'appel des fontes utilisés par les layouts + $this->setFonts(); // Valeurs en sortie $this->addOutput([ 'notification' => 'La fonte a été créée', @@ -706,9 +707,12 @@ class theme extends common { if ( $type === 'files' && file_exists(self::FILE_DIR . 'source/' . $ressource) ) { - copy ( self::FILE_DIR . 'source/' . $ressource, self::DATA_DIR . $ressource ); + copy ( self::FILE_DIR . 'source/' . $ressource, self::DATA_DIR . 'fonts/' . $ressource ); } + // Met à jour les fichiers d'appel des fontes utilisés par les layouts + $this->setFonts(); + // Valeurs en sortie $this->addOutput([ 'notification' => 'La fonte a été actualisée', @@ -747,6 +751,9 @@ class theme extends common { unlink(self::DATA_DIR . $this->getUrl(2)); } + // Met à jour les fichiers d'appel des fontes utilisés par les layouts + $this->setFonts(); + // Valeurs en sortie $this->addOutput([ 'redirect' => helper::baseUrl() . 'theme/fonts', @@ -1149,4 +1156,45 @@ class theme extends common { ksort(self::$fonts['family']); } + /** + * Création d'un fichier de liens d'appel des fontes + */ + private function setFonts() { + + /** + * Chargement des polices en ligne dans un fichier fonts.html inclus dans main.php + */ + $gf = false; + $fileContent = ''; + foreach ($this->getData(['fonts', 'imported']) as $fontId => $fontValue) { + $fileContent .= ''; + // Pré connect pour api.google + $gf = strpos($fontValue['resource'], 'fonts.googleapis.com') === false ? $gf || false : $gf || true; + } + + // Ajoute le préconnect des fontes Googles. + $fileContent = $gf ? '' . $fileContent + : $fileContent; + + // Enregistre la personnalisation + file_put_contents(self::DATA_DIR.'fonts/fonts.html', $fileContent); + + /** + * Fontes installées localement + */ + $fileContent = ''; + foreach ($this->getData(['fonts', 'files']) as $fontId => $fontValue) { + if (file_exists(self::DATA_DIR . 'fonts/' . $fontValue['resource']) ) { + // Chargement de la police + $fileContent .= '@font-face {' ; + $fileContent .= 'font-family:"' . $fontValue['font-family'] . '";'; + $fileContent .= 'src: url("' . helper::baseUrl(false) . self::DATA_DIR . 'fonts/' . $fontValue['resource'] . '");'; + $fileContent .= '}' ; + } + } + // Enregistre la personnalisation + file_put_contents(self::DATA_DIR.'fonts/fonts.css', $fileContent); + + } + } diff --git a/core/module/theme/view/site/site.js.php b/core/module/theme/view/site/site.js.php index a0ff31eb..02a9ab7f 100644 --- a/core/module/theme/view/site/site.js.php +++ b/core/module/theme/view/site/site.js.php @@ -11,33 +11,6 @@ * @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 */ From bb0436f79fcd5e9cca5b2ca5e1d3b65dad195919 Mon Sep 17 00:00:00 2001 From: fredtempez Date: Fri, 22 Apr 2022 09:17:49 +0200 Subject: [PATCH 05/15] =?UTF-8?q?Fontes=20charg=C3=A9es=20=C3=A0=20la=20de?= =?UTF-8?q?mande=20selon=20le=20scope?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/core.php | 13 +++++--- core/layout/blank.php | 13 ++------ core/layout/light.php | 10 ------ core/layout/main.php | 18 +++++------ core/module/theme/theme.php | 61 +++++++++++++++++++++++++------------ 5 files changed, 60 insertions(+), 55 deletions(-) diff --git a/core/core.php b/core/core.php index cff3145f..40ba2a8b 100644 --- a/core/core.php +++ b/core/core.php @@ -184,7 +184,7 @@ class common { ]; public static $fontsWebSafe = [ - 'arial' => [ + 'arial' => [ 'name' => 'Arial', 'font-family' => 'Arial, Helvetica, sans-serif', 'resource' => 'websafe' @@ -1377,9 +1377,6 @@ class common { */ echo '
'; $this->showContent(); - if (file_exists(self::DATA_DIR . 'body.inc.html')) { - include(self::DATA_DIR . 'body.inc.html'); - } echo '
'; /** * Barre droite @@ -2162,6 +2159,14 @@ class common { } echo ''; } + // Import des fontes en ligne + if ( file_exists(self::DATA_DIR.'fonts/fonts.html') ){ + include_once(self::DATA_DIR . 'fonts/fonts.html'); + } + // Import des fontes locales + if (file_exists(self::DATA_DIR.'fonts/fonts.css')) { + echo ''; + } } /** diff --git a/core/layout/blank.php b/core/layout/blank.php index db6b8727..6e2d1852 100644 --- a/core/layout/blank.php +++ b/core/layout/blank.php @@ -13,17 +13,8 @@ - - - - - - - + + showContent(); ?> showScript(); ?> diff --git a/core/layout/light.php b/core/layout/light.php index e8de5ea5..833cb19d 100644 --- a/core/layout/light.php +++ b/core/layout/light.php @@ -14,16 +14,6 @@ - - - - - - showNotification(); ?> diff --git a/core/layout/main.php b/core/layout/main.php index 1f19c331..f1c2fbbc 100644 --- a/core/layout/main.php +++ b/core/layout/main.php @@ -13,16 +13,7 @@ - - - - - - + getData(['page', $this->getUrl(0), 'moduleId']) === 'blog' OR $this->getData(['page', $this->getUrl(0), 'moduleId']) === 'news' ) @@ -30,6 +21,7 @@ showStyle(); ?> + @@ -196,6 +188,10 @@ showCookies(); ?> showScript();?> - + + diff --git a/core/module/theme/theme.php b/core/module/theme/theme.php index a88e0252..4dad9850 100644 --- a/core/module/theme/theme.php +++ b/core/module/theme/theme.php @@ -499,6 +499,9 @@ class theme extends common { * Accueil de la personnalisation */ public function index() { + // Restaurer les fontes utilisateurs + $this->setFonts('user'); + // Valeurs en sortie $this->addOutput([ 'title' => 'Personnalisation des thèmes', @@ -560,6 +563,9 @@ class theme extends common { */ public function fonts() { + // Toutes les fontes installées + $this->setFonts('all'); + // Polices liées au thème $used = [ 'Bannière' => $this->getData (['theme', 'header', 'font']), @@ -657,8 +663,7 @@ class theme extends common { ) { copy ( self::FILE_DIR . 'source/' . $ressource, self::DATA_DIR . 'fonts/' . $ressource ); } - // Met à jour les fichiers d'appel des fontes utilisés par les layouts - $this->setFonts(); + // Valeurs en sortie $this->addOutput([ 'notification' => 'La fonte a été créée', @@ -710,9 +715,6 @@ class theme extends common { copy ( self::FILE_DIR . 'source/' . $ressource, self::DATA_DIR . 'fonts/' . $ressource ); } - // Met à jour les fichiers d'appel des fontes utilisés par les layouts - $this->setFonts(); - // Valeurs en sortie $this->addOutput([ 'notification' => 'La fonte a été actualisée', @@ -751,9 +753,6 @@ class theme extends common { unlink(self::DATA_DIR . $this->getUrl(2)); } - // Met à jour les fichiers d'appel des fontes utilisés par les layouts - $this->setFonts(); - // Valeurs en sortie $this->addOutput([ 'redirect' => helper::baseUrl() . 'theme/fonts', @@ -1158,8 +1157,22 @@ class theme extends common { /** * Création d'un fichier de liens d'appel des fontes + * @param string $scope vaut all pour toutes les fontes ; 'user' pour les fontes utilisateurs */ - private function setFonts() { + private function setFonts($scope = 'all') { + + // Filtrage par fontes installées + $fontsInstalled = [ $this->getData(['theme', 'text', 'font']), + $this->getData(['theme', 'title', 'font']), + $this->getData(['theme', 'header', 'font']), + $this->getData(['theme', 'menu', 'font']), + $this->getData(['theme', 'footer', 'font']), + $this->getData(['admin', 'fontText']), + $this->getData(['admin', 'fontTitle']), + ]; + + // Compression + $fontsInstalled = array_unique($fontsInstalled); /** * Chargement des polices en ligne dans un fichier fonts.html inclus dans main.php @@ -1167,16 +1180,21 @@ class theme extends common { $gf = false; $fileContent = ''; foreach ($this->getData(['fonts', 'imported']) as $fontId => $fontValue) { - $fileContent .= ''; - // Pré connect pour api.google - $gf = strpos($fontValue['resource'], 'fonts.googleapis.com') === false ? $gf || false : $gf || true; + if ( + ( $scope === 'user' && array_key_exists($fontId, $fontsInstalled) ) + || $scope === 'all' + ) { + $fileContent .= ''; + // Pré connect pour api.google + $gf = strpos($fontValue['resource'], 'fonts.googleapis.com') === false ? $gf || false : $gf || true; + } } // Ajoute le préconnect des fontes Googles. $fileContent = $gf ? '' . $fileContent : $fileContent; - // Enregistre la personnalisation + // Enregistre la personnalisation file_put_contents(self::DATA_DIR.'fonts/fonts.html', $fileContent); /** @@ -1184,12 +1202,17 @@ class theme extends common { */ $fileContent = ''; foreach ($this->getData(['fonts', 'files']) as $fontId => $fontValue) { - if (file_exists(self::DATA_DIR . 'fonts/' . $fontValue['resource']) ) { - // Chargement de la police - $fileContent .= '@font-face {' ; - $fileContent .= 'font-family:"' . $fontValue['font-family'] . '";'; - $fileContent .= 'src: url("' . helper::baseUrl(false) . self::DATA_DIR . 'fonts/' . $fontValue['resource'] . '");'; - $fileContent .= '}' ; + if ( + ( $scope === 'user' && array_key_exists($fontId, $fontsInstalled) ) + || $scope === 'all' + ) { + if (file_exists(self::DATA_DIR . 'fonts/' . $fontValue['resource']) ) { + // Chargement de la police + $fileContent .= '@font-face {' ; + $fileContent .= 'font-family:"' . $fontValue['font-family'] . '";'; + $fileContent .= 'src: url("' . helper::baseUrl(false) . self::DATA_DIR . 'fonts/' . $fontValue['resource'] . '");'; + $fileContent .= '}' ; + } } } // Enregistre la personnalisation From fa4eaa9576bcd0cbc1ef3caed55be9a96bada5a7 Mon Sep 17 00:00:00 2001 From: fredtempez Date: Fri, 22 Apr 2022 11:06:49 +0200 Subject: [PATCH 06/15] =?UTF-8?q?bug=20filtre=20fonte=20install=C3=A9e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/module/theme/theme.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/core/module/theme/theme.php b/core/module/theme/theme.php index 4dad9850..ad93ed37 100644 --- a/core/module/theme/theme.php +++ b/core/module/theme/theme.php @@ -499,6 +499,7 @@ class theme extends common { * Accueil de la personnalisation */ public function index() { + // Restaurer les fontes utilisateurs $this->setFonts('user'); @@ -563,7 +564,7 @@ class theme extends common { */ public function fonts() { - // Toutes les fontes installées + // Toutes les fontes installées sont chargées $this->setFonts('all'); // Polices liées au thème @@ -1181,7 +1182,7 @@ class theme extends common { $fileContent = ''; foreach ($this->getData(['fonts', 'imported']) as $fontId => $fontValue) { if ( - ( $scope === 'user' && array_key_exists($fontId, $fontsInstalled) ) + ( $scope === 'user' && in_array($fontId, $fontsInstalled) ) || $scope === 'all' ) { $fileContent .= ''; @@ -1203,7 +1204,7 @@ class theme extends common { $fileContent = ''; foreach ($this->getData(['fonts', 'files']) as $fontId => $fontValue) { if ( - ( $scope === 'user' && array_key_exists($fontId, $fontsInstalled) ) + ( $scope === 'user' && in_array($fontId, $fontsInstalled) ) || $scope === 'all' ) { if (file_exists(self::DATA_DIR . 'fonts/' . $fontValue['resource']) ) { From 908e5501d15b7c01e41275ccc950ba50c8019c43 Mon Sep 17 00:00:00 2001 From: fredtempez Date: Fri, 22 Apr 2022 11:55:01 +0200 Subject: [PATCH 07/15] fontes dynamiques selon le scope --- core/core.php | 8 ++------ core/module/theme/theme.php | 14 ++++++++++++-- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/core/core.php b/core/core.php index 40ba2a8b..9aa800c7 100644 --- a/core/core.php +++ b/core/core.php @@ -2159,14 +2159,10 @@ class common { } echo ''; } - // Import des fontes en ligne - if ( file_exists(self::DATA_DIR.'fonts/fonts.html') ){ + // Import des fontes + if ( file_exists(self::DATA_DIR . 'fonts/fonts.html') ){ include_once(self::DATA_DIR . 'fonts/fonts.html'); } - // Import des fontes locales - if (file_exists(self::DATA_DIR.'fonts/fonts.css')) { - echo ''; - } } /** diff --git a/core/module/theme/theme.php b/core/module/theme/theme.php index ad93ed37..68962fe0 100644 --- a/core/module/theme/theme.php +++ b/core/module/theme/theme.php @@ -268,6 +268,8 @@ class theme extends common { } // Lire les fontes installées $this->enumFonts(); + // Toutes les fontes installées sont chargées + $this->setFonts('all'); // Valeurs en sortie $this->addOutput([ 'title' => 'Administration', @@ -404,6 +406,8 @@ class theme extends common { } // Lire les fontes installées $this->enumFonts(); + // Toutes les fontes installées sont chargées + $this->setFonts('all'); // Valeurs en sortie $this->addOutput([ 'title' => 'Personnalisation du pied de page', @@ -484,6 +488,8 @@ class theme extends common { } // Lire les fontes installées $this->enumFonts(); + // Toutes les fontes installées sont chargées + $this->setFonts('all'); // Valeurs en sortie $this->addOutput([ 'title' => 'Personnalisation de la bannière', @@ -549,6 +555,8 @@ class theme extends common { } // Lire les fontes installées $this->enumFonts(); + // Toutes les fontes installées sont chargées + $this->setFonts('all'); // Valeurs en sortie $this->addOutput([ 'title' => 'Personnalisation du menu', @@ -849,6 +857,8 @@ class theme extends common { } // Lire les fontes installées $this->enumFonts(); + // Toutes les fontes installées sont chargées + $this->setFonts('all'); // Valeurs en sortie $this->addOutput([ 'title' => 'Personnalisation du site', @@ -1179,7 +1189,7 @@ class theme extends common { * Chargement des polices en ligne dans un fichier fonts.html inclus dans main.php */ $gf = false; - $fileContent = ''; + $fileContent = ''; foreach ($this->getData(['fonts', 'imported']) as $fontId => $fontValue) { if ( ( $scope === 'user' && in_array($fontId, $fontsInstalled) ) @@ -1211,7 +1221,7 @@ class theme extends common { // Chargement de la police $fileContent .= '@font-face {' ; $fileContent .= 'font-family:"' . $fontValue['font-family'] . '";'; - $fileContent .= 'src: url("' . helper::baseUrl(false) . self::DATA_DIR . 'fonts/' . $fontValue['resource'] . '");'; + $fileContent .= 'src: url("' . $fontValue['resource'] . '");'; $fileContent .= '}' ; } } From f833181e3759d8f820f8e31e731a9b8945c71815 Mon Sep 17 00:00:00 2001 From: fredtempez Date: Fri, 22 Apr 2022 15:44:58 +0200 Subject: [PATCH 08/15] arvi roboto et lora websafe --- core/core.php | 15 +++++++++++++++ core/include/update.inc.php | 15 --------------- core/module/theme/theme.php | 2 +- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/core/core.php b/core/core.php index 9aa800c7..db82eef8 100644 --- a/core/core.php +++ b/core/core.php @@ -194,6 +194,11 @@ class common { 'font-family' => '\'Arial Black\', Gadget, sans-serif', 'resource' => 'websafe' ], + 'arvo'=> [ + 'name' => 'Arvo', + 'font-family' => 'Arvo, sans-serif', + 'resource' => 'websafe' + ], 'courrier' => [ 'name' => 'Courier', 'font-family' => 'Courier, \'Liberation Mono\', monospace', @@ -219,11 +224,21 @@ class common { 'font-family' => 'Impact, Charcoal, sans-serif', 'resource' => 'websafe' ], + 'lora'=> [ + 'name' => 'Lora', + 'font-family' => 'Lora, serif', + 'resource' => 'websafe' + ], 'lucida' => [ 'name' => 'Lucida', 'font-family' => '\'Lucida Sans Unicode\', \'Lucida Grande\', sans-serif', 'resource' => 'websafe' ], + 'roboto'=> [ + 'name' => 'Roboto', + 'font-family' => 'Roboto, sans-serif', + 'resource' => 'websafe' + ], 'tahoma' => [ 'name' => 'Tahoma', 'font-family' => 'Tahoma, Geneva, sans-serif', diff --git a/core/include/update.inc.php b/core/include/update.inc.php index ec93c503..8a61d638 100644 --- a/core/include/update.inc.php +++ b/core/include/update.inc.php @@ -833,11 +833,6 @@ if ($this->getData(['core', 'dataVersion']) < 11400) { 'font-family' => 'Arimo, sans-serif', 'resource' => 'https://fonts.cdnfonts.com/css/arimo' ], - 'arvo'=> [ - 'name' => 'Arvo', - 'font-family' => 'Arvo, sans-serif', - 'resource' => 'https://fonts.cdnfonts.com/css/arvo' - ], 'dancing-script' => [ 'name' => 'Dancing Script', 'font-family' => '\'Dancing Script\', sans-serif', @@ -883,11 +878,6 @@ if ($this->getData(['core', 'dataVersion']) < 11400) { 'font-family' => 'Lato, sans-serif', 'resource' => 'https://fonts.cdnfonts.com/css/lato' ], - 'lora'=> [ - 'name' => 'Lora', - 'font-family' => 'Lora, serif', - 'resource' => 'https://fonts.cdnfonts.com/css/lora' - ], 'old-standard-tt-3'=> [ 'name' => 'Old Standard TT', 'font-family' => '\'Old Standard TT\', serif', @@ -918,11 +908,6 @@ if ($this->getData(['core', 'dataVersion']) < 11400) { 'font-family' => 'Rancho, sans-serif', 'resource' => 'https://fonts.cdnfonts.com/css/rancho' ], - 'roboto'=> [ - 'name' => 'Roboto', - 'font-family' => 'Roboto, sans-serif', - 'resource' => 'https://fonts.cdnfonts.com/css/roboto' - ], 'ubuntu'=> [ 'name' => 'Ubuntu', 'font-family' => 'Ubuntu, sans-serif', diff --git a/core/module/theme/theme.php b/core/module/theme/theme.php index 68962fe0..3c2b5ba2 100644 --- a/core/module/theme/theme.php +++ b/core/module/theme/theme.php @@ -1221,7 +1221,7 @@ class theme extends common { // Chargement de la police $fileContent .= '@font-face {' ; $fileContent .= 'font-family:"' . $fontValue['font-family'] . '";'; - $fileContent .= 'src: url("' . $fontValue['resource'] . '");'; + $fileContent .= 'src: local("' . $fontValue['name'] . '"), url("' . $fontValue['resource'] . '") format("woff");'; $fileContent .= '}' ; } } From fbd17e0e38cbdc8e39d46dcab061484e70b1238a Mon Sep 17 00:00:00 2001 From: fredtempez Date: Fri, 22 Apr 2022 15:56:45 +0200 Subject: [PATCH 09/15] =?UTF-8?q?Pr=C3=A9chargement?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/module/theme/theme.php | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/core/module/theme/theme.php b/core/module/theme/theme.php index 3c2b5ba2..ff4f7065 100644 --- a/core/module/theme/theme.php +++ b/core/module/theme/theme.php @@ -1205,13 +1205,12 @@ class theme extends common { $fileContent = $gf ? '' . $fileContent : $fileContent; - // Enregistre la personnalisation - file_put_contents(self::DATA_DIR.'fonts/fonts.html', $fileContent); + /** * Fontes installées localement */ - $fileContent = ''; + $fileContentCss = ''; foreach ($this->getData(['fonts', 'files']) as $fontId => $fontValue) { if ( ( $scope === 'user' && in_array($fontId, $fontsInstalled) ) @@ -1219,15 +1218,20 @@ class theme extends common { ) { if (file_exists(self::DATA_DIR . 'fonts/' . $fontValue['resource']) ) { // Chargement de la police - $fileContent .= '@font-face {' ; - $fileContent .= 'font-family:"' . $fontValue['font-family'] . '";'; - $fileContent .= 'src: local("' . $fontValue['name'] . '"), url("' . $fontValue['resource'] . '") format("woff");'; - $fileContent .= '}' ; + $fileContentCss .= '@font-face {' ; + $fileContentCss .= 'font-family:"' . $fontValue['font-family'] . '";'; + $fileContentCss .= 'src: local("' . $fontValue['name'] . '"), url("' . $fontValue['resource'] . '") format("woff");'; + $fileContentCss .= '}' ; + // Préchargement + $fileContent = '' . $fileContent; } } } + // Enregistre la personnalisation - file_put_contents(self::DATA_DIR.'fonts/fonts.css', $fileContent); + file_put_contents(self::DATA_DIR.'fonts/fonts.html', $fileContent); + // Enregistre la personnalisation + file_put_contents(self::DATA_DIR.'fonts/fonts.css', $fileContentCss); } From 3d4be63df858e728950d2da3cbc1854e1a66c51a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Tempez?= Date: Tue, 26 Apr 2022 18:46:09 +0200 Subject: [PATCH 10/15] =?UTF-8?q?Fontes=20locales=20okay=20+=20boutons=20p?= =?UTF-8?q?etits=20dans=20le=20th=C3=A8me?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/core.php | 8 +++----- core/module/theme/theme.php | 12 ++++++++---- core/module/theme/view/fontAdd/fontAdd.php | 12 +++++------- core/module/theme/view/fontEdit/fontEdit.php | 12 +++++------- core/module/theme/view/fonts/fonts.php | 12 +++++------- 5 files changed, 26 insertions(+), 30 deletions(-) diff --git a/core/core.php b/core/core.php index db82eef8..c0742f6e 100644 --- a/core/core.php +++ b/core/core.php @@ -189,11 +189,6 @@ class common { 'font-family' => 'Arial, Helvetica, sans-serif', 'resource' => 'websafe' ], - 'arial-black' => [ - 'name' => 'Arial Black', - 'font-family' => '\'Arial Black\', Gadget, sans-serif', - 'resource' => 'websafe' - ], 'arvo'=> [ 'name' => 'Arvo', 'font-family' => 'Arvo, sans-serif', @@ -2178,6 +2173,9 @@ class common { if ( file_exists(self::DATA_DIR . 'fonts/fonts.html') ){ include_once(self::DATA_DIR . 'fonts/fonts.html'); } + if ( file_exists(self::DATA_DIR . 'fonts/fonts.css') ){ + echo ''; + } } /** diff --git a/core/module/theme/theme.php b/core/module/theme/theme.php index ff4f7065..11040563 100644 --- a/core/module/theme/theme.php +++ b/core/module/theme/theme.php @@ -1189,12 +1189,14 @@ class theme extends common { * Chargement des polices en ligne dans un fichier fonts.html inclus dans main.php */ $gf = false; - $fileContent = ''; + $fileContent = ''; foreach ($this->getData(['fonts', 'imported']) as $fontId => $fontValue) { if ( ( $scope === 'user' && in_array($fontId, $fontsInstalled) ) || $scope === 'all' ) { + //Pré chargement à revoir + //$fileContent .= ''; $fileContent .= ''; // Pré connect pour api.google $gf = strpos($fontValue['resource'], 'fonts.googleapis.com') === false ? $gf || false : $gf || true; @@ -1217,13 +1219,15 @@ class theme extends common { || $scope === 'all' ) { if (file_exists(self::DATA_DIR . 'fonts/' . $fontValue['resource']) ) { + // Extension + $path_parts = pathinfo(helper::baseUrl(false) . self::DATA_DIR . 'fonts/' . $fontValue['resource']); // Chargement de la police $fileContentCss .= '@font-face {' ; - $fileContentCss .= 'font-family:"' . $fontValue['font-family'] . '";'; - $fileContentCss .= 'src: local("' . $fontValue['name'] . '"), url("' . $fontValue['resource'] . '") format("woff");'; + $fileContentCss .= 'font-family:"' . $fontId . '";'; + $fileContentCss .= 'src: url("' . $fontValue['resource'] . '") format("' . $path_parts['extension'] . '");'; $fileContentCss .= '}' ; // Préchargement - $fileContent = '' . $fileContent; + //$fileContent = '' . $fileContent; } } } diff --git a/core/module/theme/view/fontAdd/fontAdd.php b/core/module/theme/view/fontAdd/fontAdd.php index 804b3674..cddc03fe 100644 --- a/core/module/theme/view/fontAdd/fontAdd.php +++ b/core/module/theme/view/fontAdd/fontAdd.php @@ -1,23 +1,21 @@
-
+
'buttonGrey', 'href' => helper::baseUrl() . 'theme/fonts', - 'ico' => 'left', - 'value' => 'Retour' + 'value' => template::ico('left') ]); ?>
-
+
'https://doc.zwiicms.fr/fontes#add', 'target' => '_blank', - 'ico' => 'help', - 'value' => 'Aide', + 'value' => template::ico('help'), 'class' => 'buttonHelp' ]); ?>
-
+
'Valider', 'uniqueSubmission' => true diff --git a/core/module/theme/view/fontEdit/fontEdit.php b/core/module/theme/view/fontEdit/fontEdit.php index 21bf456c..15b7a535 100644 --- a/core/module/theme/view/fontEdit/fontEdit.php +++ b/core/module/theme/view/fontEdit/fontEdit.php @@ -1,23 +1,21 @@
-
+
'buttonGrey', 'href' => helper::baseUrl() . 'theme/fonts', - 'ico' => 'left', - 'value' => 'Retour' + 'value' => template::ico('left') ]); ?>
-
+
'https://doc.zwiicms.fr/fontes#add', 'target' => '_blank', - 'ico' => 'help', - 'value' => 'Aide', + 'value' => template::ico('help'), 'class' => 'buttonHelp' ]); ?>
-
+
'Valider', 'uniqueSubmission' => true diff --git a/core/module/theme/view/fonts/fonts.php b/core/module/theme/view/fonts/fonts.php index 87c28836..27ebd056 100644 --- a/core/module/theme/view/fonts/fonts.php +++ b/core/module/theme/view/fonts/fonts.php @@ -1,22 +1,20 @@
-
+
'buttonGrey', 'href' => helper::baseUrl() . 'theme', - 'ico' => 'left', - 'value' => 'Retour' + 'value' => template::ico('left') ]); ?>
-
+
'https://doc.zwiicms.fr/fontes', 'target' => '_blank', - 'ico' => 'help', - 'value' => 'Aide', + 'value' => template::ico('help'), 'class' => 'buttonHelp' ]); ?>
-
+
helper::baseUrl() . $this->getUrl(0) . '/fontAdd', 'ico' => 'plus', From 8670ee34d639397b92bc7cec9a9002ac44fce6bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Tempez?= Date: Tue, 26 Apr 2022 18:51:13 +0200 Subject: [PATCH 11/15] fira sans url incorrecte --- core/include/update.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/include/update.inc.php b/core/include/update.inc.php index 8a61d638..0c36717b 100644 --- a/core/include/update.inc.php +++ b/core/include/update.inc.php @@ -856,7 +856,7 @@ if ($this->getData(['core', 'dataVersion']) < 11400) { 'fira-sans' => [ 'name' => 'Fira Sans', 'font-family' => '\'Fira Sans\', sans-serif', - 'resource' => 'https://fonts.cdnfonts.com/css/fira' + 'resource' => 'https://fonts.cdnfonts.com/css/fira-sans' ], 'liberation-sans'=> [ 'name' => 'Liberation Sans', From cad736d74beed26073db42c90f8c016213c9748b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Tempez?= Date: Wed, 27 Apr 2022 16:08:39 +0200 Subject: [PATCH 12/15] =?UTF-8?q?Edition=20d'une=20fonte=20buf=20affichage?= =?UTF-8?q?=20des=20options=20des=20s=C3=A9lecteurs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../theme/view/fontEdit/fontEdit.js.php | 49 +++++++++++-------- core/module/theme/view/fontEdit/fontEdit.php | 4 +- 2 files changed, 31 insertions(+), 22 deletions(-) diff --git a/core/module/theme/view/fontEdit/fontEdit.js.php b/core/module/theme/view/fontEdit/fontEdit.js.php index d702e658..7402f624 100644 --- a/core/module/theme/view/fontEdit/fontEdit.js.php +++ b/core/module/theme/view/fontEdit/fontEdit.js.php @@ -14,31 +14,40 @@ * Option par défaut du sélecteur de mode */ $(document).ready(function(){ - $('input[name=fontEditFontImported]').prop('checked', true); - $('input[name=fontEditFontUrl]').prop('checked', false); - $('#containerfontEditFile').hide(); + if( $('input[name=fontEditFontImported]').is(':checked') ){ + $('#containerfontEditFile').hide(); + $('#containerfontEditUrl').show(); + } + + + if( $('input[name=fontEditFontFile]').is(':checked') ){ + $('#containerfontEditFile').show(); + $('#containerfontEditUrl').hide(); + } + }); /** * Mode téléchargement en ligne de la fonte ou installation locale */ -$("input[name=fontEditFontImported]").on("click", function() { - if( $('input[name=fontEditFontImported]').is(':checked') ){ - $('input[name=fontEditFontFile]').prop('checked', false); - } else { - $('input[name=fontEditFontFile]').prop('checked', true); - } - $('#containerfontEditFile').hide(); - $('#containerfontEditUrl').show(); -}); + $("input, select").on("change", function() { + + if( $('input[name=fontEditFontImported]').is(':checked') ){ + $('input[name=fontEditFontFile]').prop('checked', false); + $('#containerfontEditFile').hide(); + $('#containerfontEditUrl').show(); + } else { + $('input[name=fontEditFontFile]').prop('checked', true); + } + + + if( $('input[name=fontEditFontFile]').is(':checked') ){ + $('input[name=fontEditFontImported]').prop('checked', false); + $('#containerfontEditFile').show(); + $('#containerfontEditUrl').hide(); + } else { + $('input[name=fontEditFontImported]').prop('checked', true); + } -$("input[name=fontEditFontFile]").on("click", function() { - if( $('input[name=fontEditFontFile]').is(':checked') ){ - $('input[name=fontEditFontImported]').prop('checked', false); - } else { - $('input[name=fontEditFontImported]').prop('checked', true); - } - $('#containerfontEditFile').show(); - $('#containerfontEditUrl').hide(); }); diff --git a/core/module/theme/view/fontEdit/fontEdit.php b/core/module/theme/view/fontEdit/fontEdit.php index 15b7a535..30cb46c8 100644 --- a/core/module/theme/view/fontEdit/fontEdit.php +++ b/core/module/theme/view/fontEdit/fontEdit.php @@ -34,7 +34,7 @@
$this->getUrl(2) === 'file' ? true : false + 'checked' => $this->getUrl(2) === 'files' ? true : false ]); ?>
@@ -67,7 +67,7 @@
'Fichier de fonte (Format WOFF)', - 'value' => $this->getUrl(2) === 'file' ? $this->getData(['fonts', $this->getUrl(2), $this->getUrl(3), 'resource']) : '' + 'value' => $this->getUrl(2) === 'files' ? $this->getData(['fonts', $this->getUrl(2), $this->getUrl(3), 'resource']) : '' ]); ?>
From a659521c2948ad5f3832be04d8d37f7228b7c01d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Tempez?= Date: Wed, 27 Apr 2022 16:21:08 +0200 Subject: [PATCH 13/15] font edit restriction activation --- core/module/theme/view/fontEdit/fontEdit.js.php | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/core/module/theme/view/fontEdit/fontEdit.js.php b/core/module/theme/view/fontEdit/fontEdit.js.php index 7402f624..58bc405c 100644 --- a/core/module/theme/view/fontEdit/fontEdit.js.php +++ b/core/module/theme/view/fontEdit/fontEdit.js.php @@ -10,19 +10,24 @@ */ -/** +/** * Option par défaut du sélecteur de mode */ $(document).ready(function(){ if( $('input[name=fontEditFontImported]').is(':checked') ){ $('#containerfontEditFile').hide(); $('#containerfontEditUrl').show(); + $('#fontEditFontFileWrapper').hide(); + $('input[name=fontEditFontImported]').attr('disabled', 'disabled'); + } if( $('input[name=fontEditFontFile]').is(':checked') ){ $('#containerfontEditFile').show(); $('#containerfontEditUrl').hide(); + $('#fontEditFontImportedWrapper').hide(); + $('input[name=fontEditFontFile]').attr('disabled', 'disabled'); } }); @@ -30,7 +35,7 @@ /** * Mode téléchargement en ligne de la fonte ou installation locale - */ + $("input, select").on("change", function() { if( $('input[name=fontEditFontImported]').is(':checked') ){ @@ -38,7 +43,7 @@ $('#containerfontEditFile').hide(); $('#containerfontEditUrl').show(); } else { - $('input[name=fontEditFontFile]').prop('checked', true); + } @@ -51,3 +56,4 @@ } }); + */ \ No newline at end of file From 8a96138620c12fea463c01b31fa7ab2428a6308b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Tempez?= Date: Wed, 27 Apr 2022 16:23:35 +0200 Subject: [PATCH 14/15] Supprimer courrier --- core/core.php | 5 ----- 1 file changed, 5 deletions(-) diff --git a/core/core.php b/core/core.php index c0742f6e..a56bf873 100644 --- a/core/core.php +++ b/core/core.php @@ -194,11 +194,6 @@ class common { 'font-family' => 'Arvo, sans-serif', 'resource' => 'websafe' ], - 'courrier' => [ - 'name' => 'Courier', - 'font-family' => 'Courier, \'Liberation Mono\', monospace', - 'resource' => 'websafe' - ], 'courrier-new' => [ 'name' => 'Courier New', 'font-family' => '\'Courier New\', Courier, monospace', From ab37ed0ea99288ca22345fccd9269348c5cf5206 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Tempez?= Date: Wed, 27 Apr 2022 16:30:51 +0200 Subject: [PATCH 15/15] =?UTF-8?q?V=C3=A9rification=20de=20type=20dans=20im?= =?UTF-8?q?port=20de=2011307=20+=20suppression=20baseUrl=20de=20core=20+?= =?UTF-8?q?=20num=C3=A9ro=20de=20version=20de=20defaultdata?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/include/update.inc.php | 17 ++++++++++------- core/module/config/config.php | 2 -- core/module/install/install.php | 3 --- core/module/install/ressource/defaultdata.php | 5 ++--- 4 files changed, 12 insertions(+), 15 deletions(-) diff --git a/core/include/update.inc.php b/core/include/update.inc.php index 0c36717b..1766a28e 100644 --- a/core/include/update.inc.php +++ b/core/include/update.inc.php @@ -924,7 +924,8 @@ if ($this->getData(['core', 'dataVersion']) < 11400) { $files = $this->getData(['fonts', 'files']); if (is_array($files)) { foreach ($files as $fontId => $fontName) { - if (file_exists(self::DATA_DIR . 'fonts/' . $fontName)) { + if ( gettype($fontName) === 'string' + && file_exists(self::DATA_DIR . 'fonts/' . $fontName)) { $this->setData(['fonts', 'files', $fontId, [ 'name' => ucfirst($fontId), 'font-family'=> '\'' . ucfirst($fontId) . '\', sans-serif', @@ -938,11 +939,13 @@ if ($this->getData(['core', 'dataVersion']) < 11400) { $imported = $this->getData(['fonts', 'imported']); if (is_array($imported)) { foreach ($imported as $fontId => $fontUrl) { - $this->setData(['fonts', 'imported', $fontId, [ - 'name' => ucfirst($fontId), - 'font-family'=> '\'' . ucfirst($fontId) . '\', sans-serif', - 'resource' => 'https:\\fonts.cdnfonts.com\css' . $fontUrl - ]]); + if ( gettype($fontUrl) === 'string' ) { + $this->setData(['fonts', 'imported', $fontId, [ + 'name' => ucfirst($fontId), + 'font-family'=> '\'' . ucfirst($fontId) . '\', sans-serif', + 'resource' => 'https:\\fonts.cdnfonts.com\css' . $fontUrl + ]]); + } } } // Importation des fontes exemples @@ -974,7 +977,7 @@ if ($this->getData(['core', 'dataVersion']) < 11400) { */ // Suppression de la variable URL dans core - //$this->deleteData(['core', 'baseUrl']); + $this->deleteData(['core', 'baseUrl']); // Mise à jour $this->setData(['core', 'dataVersion', 11400]); diff --git a/core/module/config/config.php b/core/module/config/config.php index 92ac7a09..02ed0b45 100644 --- a/core/module/config/config.php +++ b/core/module/config/config.php @@ -573,8 +573,6 @@ class config extends common { // Change le statut de la réécriture d'URL (pour le helper::baseUrl() de la redirection) helper::$rewriteStatus = false; } - // Met à jour la baseUrl - $this->setData(['core', 'baseUrl', helper::baseUrl(true,false) ]); } // Générer robots.txt et sitemap $this->siteMap(); diff --git a/core/module/install/install.php b/core/module/install/install.php index 3bfba425..54f677c3 100644 --- a/core/module/install/install.php +++ b/core/module/install/install.php @@ -122,9 +122,6 @@ class install extends common { mkdir(self::DATA_DIR . 'fonts'); } - // Stocker le dossier d'installation - $this->setData(['core', 'baseUrl', helper::baseUrl(false,false) ]); - // Installation du thème sélectionné $dataThemes = file_get_contents('core/module/install/ressource/themes/themes.json'); $dataThemes = json_decode($dataThemes, true); diff --git a/core/module/install/ressource/defaultdata.php b/core/module/install/ressource/defaultdata.php index 29cbd3cb..0bc0ecc2 100644 --- a/core/module/install/ressource/defaultdata.php +++ b/core/module/install/ressource/defaultdata.php @@ -57,12 +57,11 @@ class init extends common { ] ], 'core' => [ - 'dataVersion' => 11300, + 'dataVersion' => 11400, 'lastBackup' => 0, 'lastClearTmp' => 0, 'lastAutoUpdate' => 0, - 'updateAvailable' => false, - 'baseUrl' => '' + 'updateAvailable' => false ], 'locale' => [ 'homePageId' => 'accueil',