diff --git a/core/core.php b/core/core.php index 8baa5512..7c79254e 100644 --- a/core/core.php +++ b/core/core.php @@ -1179,6 +1179,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 ebdaf896..344457a1 100644 --- a/core/include/update.inc.php +++ b/core/include/update.inc.php @@ -741,6 +741,54 @@ if ($this->getData(['core', 'dataVersion']) < 11202) { $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]); +} // Version 11.3.00 if ($this->getData(['core', 'dataVersion']) < 11300) { diff --git a/core/module/config/config.php b/core/module/config/config.php index 1a3e66c2..fdabc78d 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' - ]); ?> -
-
-
-
-