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",