From 3a74afcb189be56fe08c40d82d19fa1a72c6ce2f Mon Sep 17 00:00:00 2001 From: Fred Tempez Date: Mon, 20 Mar 2023 13:38:50 +0100 Subject: [PATCH 1/2] New 12303 --- CHANGES.md | 4 ++++ LISEZMOI.md | 2 +- README.md | 2 +- core/class/helper.class.php | 4 ++++ core/class/jsondb/JsonDb.class.php | 2 +- core/class/layout.class.php | 2 +- core/core.php | 2 +- core/module/install/install.php | 14 ++++++++++---- core/module/page/page.php | 14 ++++++++++++++ core/module/page/view/edit/edit.js.php | 2 +- core/vendor/tinymce/init.js | 1 - 11 files changed, 38 insertions(+), 11 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index cf7bc51b..86696282 100755 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,5 +1,9 @@ # Changelog +## Version 12.3.03 +- Corrige le problème d'affichage lors de l'édition d'une page contenant une feuille style commentée. +- Améliore l'affichage des erreurs lors de la mise à jour automatique. L'échec de la vérification de la clé MD5SUM de l'archive d'installation provoque l'arrêt de l'installation au lieu d'un message en fin d'installation. + ## Version 12.3.02 - Amélioration de l'obfuscation. - Corrige la limitation de 500 caractères des scripts JS et du style CSS stockés avec la page. diff --git a/LISEZMOI.md b/LISEZMOI.md index 01073475..fdfcb7b2 100644 --- a/LISEZMOI.md +++ b/LISEZMOI.md @@ -1,4 +1,4 @@ -# ZwiiCMS 12.3.02 +# ZwiiCMS 12.3.03 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/README.md b/README.md index 9636a164..b7374707 100755 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# ZwiiCMS 12.3.02 +# ZwiiCMS 12.3.03 Zwii is a database-less (flat-file) CMS that allows you to easily create and manage a web site without any programming knowledge. diff --git a/core/class/helper.class.php b/core/class/helper.class.php index e3412e65..f50c8ec8 100644 --- a/core/class/helper.class.php +++ b/core/class/helper.class.php @@ -539,6 +539,10 @@ class helper $css = preg_replace(['(( )+{)', '({( )+)'], '{', $css); $css = preg_replace(['(( )+})', '(}( )+)', '(;( )*})'], '}', $css); $css = preg_replace(['(;( )+)', '(( )+;)'], ';', $css); + // Convertir les codes entités + $css = htmlspecialchars_decode($css); + // Supprime les balises HTML + $css = strip_tags($css); // Retourne le css minifié return $css; } diff --git a/core/class/jsondb/JsonDb.class.php b/core/class/jsondb/JsonDb.class.php index 7d5332a5..c5cfa3ee 100644 --- a/core/class/jsondb/JsonDb.class.php +++ b/core/class/jsondb/JsonDb.class.php @@ -142,7 +142,7 @@ class JsonDb extends \Prowebcraft\Dot */ public function save() { - $v = json_encode($this->data, JSON_UNESCAPED_UNICODE | LOCK_EX); + $v = json_encode($this->data, JSON_UNESCAPED_UNICODE); $l = strlen($v); $t = 0; while ($t < 5) { diff --git a/core/class/layout.class.php b/core/class/layout.class.php index 59596755..fb6ab358 100644 --- a/core/class/layout.class.php +++ b/core/class/layout.class.php @@ -1070,7 +1070,7 @@ class layout extends common if ($this->core->output['inlineStyle']) { foreach ($this->core->output['inlineStyle'] as $style) { if ($style) { - echo ''; + echo ''; } } diff --git a/core/core.php b/core/core.php index f8d57d4b..eb35c604 100644 --- a/core/core.php +++ b/core/core.php @@ -53,7 +53,7 @@ class common const ACCESS_TIMER = 1800; // Numéro de version et branche pour l'auto-update - const ZWII_VERSION = '12.3.02'; + const ZWII_VERSION = '12.3.03'; const ZWII_DATAVERSION = 12301; diff --git a/core/module/install/install.php b/core/module/install/install.php index 997c5fd1..17ff6f64 100644 --- a/core/module/install/install.php +++ b/core/module/install/install.php @@ -268,6 +268,7 @@ class install extends common // Préparation case 1: $success = true; + $message = ''; // RAZ la mise à jour auto $this->setData(['core', 'updateAvailable', false]); // Backup du dossier Data @@ -275,20 +276,23 @@ class install extends common // Sauvegarde htaccess if ($this->getData(['config', 'autoUpdateHtaccess'])) { $success = copy('.htaccess', '.htaccess' . '.bak'); + $message = 'Erreur de copie du fichier htaccess'; } // Nettoyage des fichiers d'installation précédents if (file_exists(self::TEMP_DIR . 'update.tar.gz') && $success) { $success = $success || unlink(self::TEMP_DIR . 'update.tar.gz'); + $message = 'Impossible d\'effacer la mise à jour précédente'; } if (file_exists(self::TEMP_DIR . 'update.tar') && $success) { $success = $success || unlink(self::TEMP_DIR . 'update.tar'); + $message = 'Impossible d\'effacer la mise à jour précédente'; } // Valeurs en sortie $this->addOutput([ 'display' => self::DISPLAY_JSON, 'content' => [ 'success' => $success, - 'data' => null + 'data' => $success ? null : json_encode($message) ] ]); break; @@ -296,14 +300,14 @@ class install extends common case 2: file_put_contents(self::TEMP_DIR . 'update.tar.gz', helper::getUrlContents(common::ZWII_UPDATE_URL . common::ZWII_UPDATE_CHANNEL . '/update.tar.gz')); $md5origin = helper::getUrlContents(common::ZWII_UPDATE_URL . common::ZWII_UPDATE_CHANNEL . '/update.md5'); - $md5origin = (explode(' ', $md5origin)); + $md5origin = explode(' ', $md5origin); $md5target = md5_file(self::TEMP_DIR . 'update.tar.gz'); // Valeurs en sortie $this->addOutput([ 'display' => self::DISPLAY_JSON, 'content' => [ 'success' => $md5origin[0] === $md5target, - 'data' => null + 'data' => $md5origin[0] === $md5target ? null : json_encode('Erreur de téléchargement ou de somme de contrôle') ] ]); break; @@ -341,6 +345,7 @@ class install extends common // Configuration case 4: $success = true; + $message = null; $rewrite = $this->getInput('data'); // Réécriture d'URL if ($rewrite === "true") { // Ajout des lignes dans le .htaccess @@ -361,6 +366,7 @@ class install extends common $fileContent ); $success = $r === false ? false : true; + $message = $r === false ? 'Le fichier htaccess n\'a pas été restauré' : null; } // Recopie htaccess if ( @@ -396,7 +402,7 @@ class install extends common 'display' => self::DISPLAY_JSON, 'content' => [ 'success' => $success, - 'data' => null + 'data' => $message ] ]); } diff --git a/core/module/page/page.php b/core/module/page/page.php index e7b636b8..9c747c43 100644 --- a/core/module/page/page.php +++ b/core/module/page/page.php @@ -632,4 +632,18 @@ class page extends common 'view' => 'jsEditor' ]); } + + /** + * Retourne les informations sur les pages en omettant les clés CSS et JS qui occasionnent des bugs d'affichage dans l'éditeur de page + * @return array tableau associatif des pages dans le menu + */ + public function getPageInfo() { + $p = $this->getData(['page']); + $d = array_map(function($d) { + unset($d["css"], $d["js"]); + return $d; + }, $p); + return json_encode($d); + + } } \ No newline at end of file diff --git a/core/module/page/view/edit/edit.js.php b/core/module/page/view/edit/edit.js.php index 93fb5dde..0f1def16 100644 --- a/core/module/page/view/edit/edit.js.php +++ b/core/module/page/view/edit/edit.js.php @@ -644,7 +644,7 @@ $("#pageEditParentPageId").on("change", function() { function buildPagesList(extraPosition) { var hierarchy = getHierarchy()); ?>; - var pages = getData(['page'])); ?>; + var pages = getPageInfo(); ?>; var positionInitial = getData(['page',$this->getUrl(2),"position"]); ?>; var extraPosition = $("#pageEditExtraPosition").val(); var positionDOM = $("#pageEditPosition"); diff --git a/core/vendor/tinymce/init.js b/core/vendor/tinymce/init.js index 836f3130..facf1019 100755 --- a/core/vendor/tinymce/init.js +++ b/core/vendor/tinymce/init.js @@ -10,7 +10,6 @@ if (typeof (privateKey) == 'undefined') { var privateKey = null; }; -console.log(getCookie('ZWII_UI')); tinymce.init({ // Classe où appliquer l'éditeur selector: ".editorWysiwyg", From f9c866dadb782e0e20d0c6f36d4c8b1a4ccd2517 Mon Sep 17 00:00:00 2001 From: Fred Tempez Date: Mon, 20 Mar 2023 14:46:46 +0100 Subject: [PATCH 2/2] Deux lignes pour les JS --- core/class/layout.class.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/class/layout.class.php b/core/class/layout.class.php index fb6ab358..e2c10060 100644 --- a/core/class/layout.class.php +++ b/core/class/layout.class.php @@ -1043,7 +1043,8 @@ class layout extends common if ($this->core->output['inlineScript']) { $inlineScript = implode($this->core->output['inlineScript']); } - echo ''; + echo ''; + echo ''; } /**