From 7878bc74c6c432e9e67f58f0cd8ec628b70edda0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Tempez?= Date: Thu, 13 Jan 2022 18:11:29 +0100 Subject: [PATCH 1/6] relative_url --- core/vendor/tinymce/init.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/vendor/tinymce/init.js b/core/vendor/tinymce/init.js index ea91fcf4..3f9edd48 100755 --- a/core/vendor/tinymce/init.js +++ b/core/vendor/tinymce/init.js @@ -114,7 +114,7 @@ tinymce.init({ // Active l'onglet avancé lors de l'ajout d'une image image_advtab: true, // Urls absolues - relative_urls: false, + relative_urls: true, // Url de base document_base_url: baseUrl, // Gestionnaire de fichiers From 0b0259ce7a714f476d2b56732ab5b3728925b56c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Tempez?= Date: Thu, 13 Jan 2022 18:31:20 +0100 Subject: [PATCH 2/6] toutes url relatives --- core/core.php | 21 ++++++ core/include/update.inc.php | 49 +++++++++++++ core/module/config/config.php | 76 --------------------- core/module/config/view/restore/restore.php | 42 ------------ 4 files changed, 70 insertions(+), 118 deletions(-) diff --git a/core/core.php b/core/core.php index d13e85d6..dc61a254 100644 --- a/core/core.php +++ b/core/core.php @@ -1146,6 +1146,27 @@ class common { } + /** + * Fonction de parcours des données de module + * @param string $find donnée à rechercher + * @param string $replace donnée à remplacer + * @param array tableau à analyser + * @param int count nombres d'occurrences + * @return array avec les valeurs remplacées. + */ + private function recursive_array_replace ($find, $replace, $array, &$count) { + if (!is_array($array)) { + return str_replace($find, $replace, $array, $count); + } + + $newArray = []; + foreach ($array as $key => $value) { + $newArray[$key] = $this->recursive_array_replace($find, $replace, $value,$c); + $count += $c; + } + return $newArray; + } + /** * Génère une archive d'un dossier et des sous-dossiers * @param string fileName path et nom de l'archive diff --git a/core/include/update.inc.php b/core/include/update.inc.php index 1bf1d3b7..12d1036f 100644 --- a/core/include/update.inc.php +++ b/core/include/update.inc.php @@ -739,4 +739,53 @@ if ($this->getData(['core', 'dataVersion']) < 11202) { // Mise à jour $this->setData(['core', 'dataVersion', 11202]); +} + +// Version 11.2.04 +if ($this->getData(['core', 'dataVersion']) < 11204) { + // Supprimer l'information de redirection + $old = str_replace('?','',$this->getData(['core', 'baseUrl'])); + $new = ''; + $c3 = 0; + $success = false ; + // Boucler sur les pages + foreach($this->getHierarchy(null,null,null) as $parentId => $childIds) { + $content = $this->getPage($parentId, self::$i18n); + $titre = $this->getData(['page', $parentId, 'title']); + $content = $titre . ' ' . $content ; + $replace = str_replace( 'href="' . $old , 'href="'. $new , stripslashes($content),$c1) ; + $replace = str_replace( 'src="' . $old , 'src="'. $new , stripslashes($replace),$c2) ; + + if ($c1 > 0 || $c2 > 0) { + $success = true; + $this->setPage($parentId, $replace, self::$i18n); + $c3 += $c1 + $c2; + } + foreach($childIds as $childId) { + $content = $this->getPage($childId, self::$i18n); + $content = $titre . ' ' . $content ; + $replace = str_replace( 'href="' . $old , 'href="'. $new , stripslashes($content),$c1) ; + $replace = str_replace( 'src="' . $old , 'src="'. $new , stripslashes($replace),$c2) ; + if ($c1 > 0 || $c2 > 0) { + $success = true; + $this->setPage($childId, $replace, self::$i18n); + $c3 += $c1 + $c2; + } + } + } + // Traiter les modules dont la redirection + $content = $this->getdata(['module']); + $replace = $this->recursive_array_replace('href="' . $old , 'href="'. $new, $content, $c1); + $replace = $this->recursive_array_replace('src="' . $old , 'src="'. $new, $replace, $c2); + if ($content !== $replace) { + $this->setdata(['module',$replace]); + $c3 += $c1 + $c2; + $success = true; + } + + // Effacer la baseUrl + $this->deleteData(['core', 'baseUrl']); + + // Mise à jour + $this->setData(['core', 'dataVersion', 11204]); } \ No newline at end of file diff --git a/core/module/config/config.php b/core/module/config/config.php index d39997c0..834d19e4 100644 --- a/core/module/config/config.php +++ b/core/module/config/config.php @@ -23,7 +23,6 @@ class config extends common { 'generateFiles' => self::GROUP_ADMIN, 'index' => self::GROUP_ADMIN, 'restore' => self::GROUP_ADMIN, - 'updateBaseUrl' => self::GROUP_ADMIN, 'script' => self::GROUP_ADMIN, 'logReset' => self::GROUP_ADMIN, 'logDownload'=> self::GROUP_ADMIN, @@ -652,60 +651,6 @@ class config extends common { ]); } - /** - * Met à jour les données de site avec l'adresse transmise - */ - public function updateBaseUrl () { - // Supprimer l'information de redirection - $old = str_replace('?','',$this->getData(['core', 'baseUrl'])); - $new = helper::baseUrl(false,false); - $c3 = 0; - $success = false ; - // Boucler sur les pages - foreach($this->getHierarchy(null,null,null) as $parentId => $childIds) { - $content = $this->getPage($parentId, self::$i18n); - $titre = $this->getData(['page', $parentId, 'title']); - $content = $titre . ' ' . $content ; - $replace = str_replace( 'href="' . $old , 'href="'. $new , stripslashes($content),$c1) ; - $replace = str_replace( 'src="' . $old , 'src="'. $new , stripslashes($replace),$c2) ; - - if ($c1 > 0 || $c2 > 0) { - $success = true; - $this->setPage($parentId, $replace, self::$i18n); - $c3 += $c1 + $c2; - } - foreach($childIds as $childId) { - $content = $this->getPage($childId, self::$i18n); - $content = $titre . ' ' . $content ; - $replace = str_replace( 'href="' . $old , 'href="'. $new , stripslashes($content),$c1) ; - $replace = str_replace( 'src="' . $old , 'src="'. $new , stripslashes($replace),$c2) ; - if ($c1 > 0 || $c2 > 0) { - $success = true; - $this->setPage($childId, $replace, self::$i18n); - $c3 += $c1 + $c2; - } - } - } - // Traiter les modules dont la redirection - $content = $this->getdata(['module']); - $replace = $this->recursive_array_replace('href="' . $old , 'href="'. $new, $content, $c1); - $replace = $this->recursive_array_replace('src="' . $old , 'src="'. $new, $replace, $c2); - if ($content !== $replace) { - $this->setdata(['module',$replace]); - $c3 += $c1 + $c2; - $success = true; - } - // Mettre à jour la base URl - $this->setData(['core','baseUrl',helper::baseUrl(true,false)]); - // Valeurs en sortie - $this->addOutput([ - 'title' => 'Restaurer', - 'view' => 'restore', - 'notification' => $success ? $c3. ' conversion' . ($c3 > 1 ? 's' : '') . ' effectuée' . ($c3 > 1 ? 's' : '') : 'Aucune conversion', - 'state' => $success ? true : false - ]); - } - /** * Vider le fichier de log */ @@ -842,25 +787,4 @@ class config extends common { ]); } - - /** - * Fonction de parcours des données de module - * @param string $find donnée à rechercher - * @param string $replace donnée à remplacer - * @param array tableau à analyser - * @param int count nombres d'occurrences - * @return array avec les valeurs remplacées. - */ - private function recursive_array_replace ($find, $replace, $array, &$count) { - if (!is_array($array)) { - return str_replace($find, $replace, $array, $count); - } - - $newArray = []; - foreach ($array as $key => $value) { - $newArray[$key] = $this->recursive_array_replace($find, $replace, $value,$c); - $count += $c; - } - return $newArray; - } } diff --git a/core/module/config/view/restore/restore.php b/core/module/config/view/restore/restore.php index 22a63cc1..5e4ff26d 100644 --- a/core/module/config/view/restore/restore.php +++ b/core/module/config/view/restore/restore.php @@ -38,46 +38,4 @@ -
-
-
-

Conversion après la restauration

-
-
- getData(['core', 'baseUrl'])) ) { - $baseUrlValue = 'Pas de donnée dans la sauvegarde'; - $buttonClass = 'disabled'; - } elseif ($this->getData(['core', 'baseUrl']) === '') { - $baseUrlValue = '/'; - $buttonClass = helper::baseUrl(false,false) !== $this->getData(['core', 'baseUrl']) ? '' : 'disabled'; - } else { - $baseUrlValue = str_replace('?','',$this->getData(['core', 'baseUrl'])); - $buttonClass = helper::baseUrl(false,false) !== $baseUrlValue ? '' : 'disabled'; - } - echo template::text('configRestoreBaseURLToConvert', [ - 'label' => 'Dossier de l\'archive' , - 'value' => $baseUrlValue, - 'readonly' => true, - 'help' => 'Le dossier de base du site est stockée dans la sauvegarde.' - ]); ?> -
-
- 'Dossier du site actuel', - 'value' => helper::baseUrl(false,false), - 'readonly' => true - ]); ?> -
-
- helper::baseUrl() . 'config/updateBaseUrl', - 'class' => $buttonClass, - 'value' => 'convertir' - ]); ?> -
-
-
-
-
From e066336b9f7f2aec51b46b59ae2ed6ee19f3a86a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Tempez?= Date: Thu, 13 Jan 2022 19:08:07 +0100 Subject: [PATCH 3/6] =?UTF-8?q?config=20mise=20=C3=A0=20jour=20avec=20la?= =?UTF-8?q?=20nouvelle=20fonction?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/module/config/config.php | 62 +++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/core/module/config/config.php b/core/module/config/config.php index 834d19e4..087d06fb 100644 --- a/core/module/config/config.php +++ b/core/module/config/config.php @@ -23,6 +23,7 @@ class config extends common { 'generateFiles' => self::GROUP_ADMIN, 'index' => self::GROUP_ADMIN, 'restore' => self::GROUP_ADMIN, + 'updateBaseUrl' => self::GROUP_ADMIN, 'script' => self::GROUP_ADMIN, 'logReset' => self::GROUP_ADMIN, 'logDownload'=> self::GROUP_ADMIN, @@ -382,6 +383,15 @@ class config extends common { $this->setData(['user',$users]); } } + // Conversion vers des Url relatives + if ($this->getData(['core', 'baseUrl'])) { + $url = str_replace('?','',$this->getData(['core', 'baseUrl'])); + // Suppresion de la base Url + $this->updateBaseUrl($url); + // Effacer la baseUrl + $this->deleteData(['core', 'baseUrl']); + } + // Message de notification $notification = $success === true ? 'Restaurer effectuée avec succès' : 'Erreur inconnue'; $redirect = $this->getInput('configRestoreImportUser', helper::FILTER_BOOLEAN) === true ? helper::baseUrl() . 'config/restore' : helper::baseUrl() . 'user/login/'; @@ -651,6 +661,58 @@ class config extends common { ]); } + /** + * Met à jour les données de site avec l'adresse transmise + */ + public function updateBaseUrl ($url) { + // Supprimer l'information de redirection + $c3 = 0; + $success = false ; + // Boucler sur les pages + foreach($this->getHierarchy(null,null,null) as $parentId => $childIds) { + $content = $this->getPage($parentId, self::$i18n); + $titre = $this->getData(['page', $parentId, 'title']); + $content = $titre . ' ' . $content ; + $replace = str_replace( 'href="' . $url , 'href="'. '' , stripslashes($content),$c1) ; + $replace = str_replace( 'src="' . $url , 'src="'. '' , stripslashes($replace),$c2) ; + + if ($c1 > 0 || $c2 > 0) { + $success = true; + $this->setPage($parentId, $replace, self::$i18n); + $c3 += $c1 + $c2; + } + foreach($childIds as $childId) { + $content = $this->getPage($childId, self::$i18n); + $content = $titre . ' ' . $content ; + $replace = str_replace( 'href="' . $url , 'href="'. '' , stripslashes($content),$c1) ; + $replace = str_replace( 'src="' . $url , 'src="'. '' , stripslashes($replace),$c2) ; + if ($c1 > 0 || $c2 > 0) { + $success = true; + $this->setPage($childId, $replace, self::$i18n); + $c3 += $c1 + $c2; + } + } + } + // Traiter les modules dont la redirection + $content = $this->getdata(['module']); + $replace = $this->recursive_array_replace('href="' . $url , 'href="'. '', $content, $c1); + $replace = $this->recursive_array_replace('src="' . $url , 'src="'. '', $replace, $c2); + if ($content !== $replace) { + $this->setdata(['module',$replace]); + $c3 += $c1 + $c2; + $success = true; + } + // Mettre à jour la base URl + $this->setData(['core','baseUrl',helper::baseUrl(true,false)]); + // Valeurs en sortie + $this->addOutput([ + 'title' => 'Restaurer', + 'view' => 'restore', + 'notification' => $success ? $c3. ' conversion' . ($c3 > 1 ? 's' : '') . ' effectuée' . ($c3 > 1 ? 's' : '') : 'Aucune conversion', + 'state' => $success ? true : false + ]); + } + /** * Vider le fichier de log */ From 4473d0326545e2b2d29e75c5f6b3da1038dc3ef1 Mon Sep 17 00:00:00 2001 From: fredtempez Date: Fri, 14 Jan 2022 09:18:09 +0100 Subject: [PATCH 4/6] =?UTF-8?q?init.js=20complet=20=20+=20changes=20+=20nu?= =?UTF-8?q?m=C3=A9ro=20de=20version=20update?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGES.md | 3 ++- core/include/update.inc.php | 6 +++--- core/vendor/tinymce/init.js | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index c45d6f5a..b7c7069c 100755 --- a/CHANGES.md +++ b/CHANGES.md @@ -6,8 +6,9 @@ - Thème ; pied de page ; option pied de page fixe inopérante. - Edition des pages orphelines : "Ne pas afficher" une page contenant des sous-pages provoquait un bug d'affichage dans le menu, la page était malgré tout affichée en fin de menu. Ce problème était causé par les pages enfants dont l'affichage n'était pas modifié. Le correctif cascade l'option "Ne pas afficher" aux sous-pages. La réciproque n'est pas appliquée, il faudra rendre visible les sous-pages d'une page parente qui devient à nouveau visible. - Modifications : - - Thème ; pied de page ; options pied de page fixe et alignement avec le contenu déplacées dans les paramètres. + - **Chemin vers les données de site (images et liens internes)**. Désormais, les URL internes seront relatives, cela signifie qu'elles ne contiendront plus le domaine et le chemin d'accès au site. Cela permettra le déplacement d'un site d'un hébergement à un autre, d'un dossier d'hébergement à un autre, sans avoir à convertir les adresses internes. Les données d'un site mis à jour et importées d'une version antérieures sont automatiquement converties. En conséquence, le bloc de conversion de la fenêtre d'import est supprimé. - Mise à jour en ligne, contrôle de la clé MD5 de l'archive update.tar.gz. + - Thème ; pied de page ; options pied de page fixe et alignement avec le contenu déplacées dans les paramètres. ## Version 11.2.02 - Correction : diff --git a/core/include/update.inc.php b/core/include/update.inc.php index 12d1036f..02c137f5 100644 --- a/core/include/update.inc.php +++ b/core/include/update.inc.php @@ -741,8 +741,8 @@ if ($this->getData(['core', 'dataVersion']) < 11202) { $this->setData(['core', 'dataVersion', 11202]); } -// Version 11.2.04 -if ($this->getData(['core', 'dataVersion']) < 11204) { +// Version 11.2.03 +if ($this->getData(['core', 'dataVersion']) < 11203) { // Supprimer l'information de redirection $old = str_replace('?','',$this->getData(['core', 'baseUrl'])); $new = ''; @@ -787,5 +787,5 @@ if ($this->getData(['core', 'dataVersion']) < 11204) { $this->deleteData(['core', 'baseUrl']); // Mise à jour - $this->setData(['core', 'dataVersion', 11204]); + $this->setData(['core', 'dataVersion', 11203]); } \ No newline at end of file diff --git a/core/vendor/tinymce/init.js b/core/vendor/tinymce/init.js index 3f9edd48..385649cd 100755 --- a/core/vendor/tinymce/init.js +++ b/core/vendor/tinymce/init.js @@ -294,7 +294,7 @@ tinymce.init({ // Active l'onglet avancé lors de l'ajout d'une image image_advtab: true, // Urls absolues - relative_urls: false, + relative_urls: true, // Url de base document_base_url: baseUrl, // Contenu du bouton formats From 76761079beebf7a37251f2cdfb3ad545675739dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Tempez?= Date: Wed, 19 Jan 2022 19:08:15 +0100 Subject: [PATCH 5/6] v11.3 --- core/core.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/core.php b/core/core.php index dc61a254..de7ed36a 100644 --- a/core/core.php +++ b/core/core.php @@ -45,8 +45,8 @@ class common { // Numéro de version const ZWII_UPDATE_URL = 'https://forge.chapril.org/ZwiiCMS-Team/update/raw/branch/master/'; - const ZWII_VERSION = '11.2.03'; - const ZWII_UPDATE_CHANNEL = "test"; + const ZWII_VERSION = '11.3.00'; + const ZWII_UPDATE_CHANNEL = "v11"; public static $actions = []; public static $coreModuleIds = [ From 74d28667d90d515911be12bf08022e04cfe818d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Tempez?= Date: Wed, 19 Jan 2022 19:14:14 +0100 Subject: [PATCH 6/6] update version de test --- core/core.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/core.php b/core/core.php index de7ed36a..02b1a01f 100644 --- a/core/core.php +++ b/core/core.php @@ -46,7 +46,7 @@ class common { // Numéro de version const ZWII_UPDATE_URL = 'https://forge.chapril.org/ZwiiCMS-Team/update/raw/branch/master/'; const ZWII_VERSION = '11.3.00'; - const ZWII_UPDATE_CHANNEL = "v11"; + const ZWII_UPDATE_CHANNEL = "test"; public static $actions = []; public static $coreModuleIds = [