forked from ZwiiCMS-Team/ZwiiCMS
Merge branch 'relative-url' into extra
This commit is contained in:
commit
b03055654f
@ -1,5 +1,10 @@
|
||||
# Changelog
|
||||
|
||||
## Version 11.3
|
||||
### Modifications
|
||||
- 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é.
|
||||
- Réorganisation massive des modules afin d'éviter de faire cohabiter des formulaires avec des champs d'information.
|
||||
|
||||
## Version 11.2.03
|
||||
- Corrections :
|
||||
- Addon, bug lors de l'effacement d'un module non initialisé.
|
||||
@ -10,6 +15,7 @@
|
||||
- Addons (gestion des modules), le bouton d'accès au store est déplacé à la page de gestion des modules. Quelques étiquettes de boutons sont modifiés.
|
||||
- Thème ; pied de page ; options pied de page fixe et alignement avec le contenu déplacées dans les paramètres.
|
||||
- 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 :
|
||||
|
@ -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
|
||||
|
@ -740,3 +740,52 @@ if ($this->getData(['core', 'dataVersion']) < 11202) {
|
||||
// Mise à jour
|
||||
$this->setData(['core', 'dataVersion', 11202]);
|
||||
}
|
||||
|
||||
// Version 11.2.03
|
||||
if ($this->getData(['core', 'dataVersion']) < 11203) {
|
||||
// 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', 11203]);
|
||||
}
|
@ -383,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/';
|
||||
@ -655,10 +664,8 @@ class config extends common {
|
||||
/**
|
||||
* Met à jour les données de site avec l'adresse transmise
|
||||
*/
|
||||
public function updateBaseUrl () {
|
||||
public function updateBaseUrl ($url) {
|
||||
// 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
|
||||
@ -666,8 +673,8 @@ class config extends common {
|
||||
$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) ;
|
||||
$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;
|
||||
@ -677,8 +684,8 @@ class config extends common {
|
||||
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) ;
|
||||
$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);
|
||||
@ -688,8 +695,8 @@ class config extends common {
|
||||
}
|
||||
// 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);
|
||||
$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;
|
||||
@ -842,25 +849,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;
|
||||
}
|
||||
}
|
||||
|
@ -38,46 +38,4 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col12">
|
||||
<div class="block">
|
||||
<h4>Conversion après la restauration<?php echo template::help('Conversion des URL des ressources multimédia entre deux sites aux arborescences différentes.');?></h4>
|
||||
<div class="row">
|
||||
<div class="col4 offset1">
|
||||
<?php
|
||||
if (is_null($this->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.'
|
||||
]); ?>
|
||||
</div>
|
||||
<div class="col4">
|
||||
<?php echo template::text('configRestoreCurrentURL', [
|
||||
'label' => 'Dossier du site actuel',
|
||||
'value' => helper::baseUrl(false,false),
|
||||
'readonly' => true
|
||||
]); ?>
|
||||
</div>
|
||||
<div class="col2 verticalAlignMiddle">
|
||||
<?php echo template::button('configRestoreUpdateBaseURLButton', [
|
||||
'href' => helper::baseUrl() . 'config/updateBaseUrl',
|
||||
'class' => $buttonClass,
|
||||
'value' => 'convertir'
|
||||
]); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php echo template::formClose(); ?>
|
||||
|
4
core/vendor/tinymce/init.js
vendored
4
core/vendor/tinymce/init.js
vendored
@ -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
|
||||
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user