Merge branch 'extra' of https://forge.chapril.org/ZwiiCMS-Team/ZwiiCMS into extra
This commit is contained in:
commit
30edec7ff7
@ -1,5 +1,10 @@
|
|||||||
# Changelog
|
# 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
|
## Version 11.2.03
|
||||||
- Corrections :
|
- Corrections :
|
||||||
- Addon, bug lors de l'effacement d'un module non initialisé.
|
- 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.
|
- 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.
|
- 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.
|
- 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
|
## Version 11.2.02
|
||||||
- Correction :
|
- Correction :
|
||||||
|
@ -45,7 +45,7 @@ class common {
|
|||||||
|
|
||||||
// Numéro de version
|
// Numéro de version
|
||||||
const ZWII_UPDATE_URL = 'https://forge.chapril.org/ZwiiCMS-Team/update/raw/branch/master/';
|
const ZWII_UPDATE_URL = 'https://forge.chapril.org/ZwiiCMS-Team/update/raw/branch/master/';
|
||||||
const ZWII_VERSION = '11.2.03';
|
const ZWII_VERSION = '11.3.00';
|
||||||
const ZWII_UPDATE_CHANNEL = "test";
|
const ZWII_UPDATE_CHANNEL = "test";
|
||||||
|
|
||||||
public static $actions = [];
|
public static $actions = [];
|
||||||
@ -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
|
* Génère une archive d'un dossier et des sous-dossiers
|
||||||
* @param string fileName path et nom de l'archive
|
* @param string fileName path et nom de l'archive
|
||||||
|
@ -739,4 +739,53 @@ if ($this->getData(['core', 'dataVersion']) < 11202) {
|
|||||||
|
|
||||||
// Mise à jour
|
// Mise à jour
|
||||||
$this->setData(['core', 'dataVersion', 11202]);
|
$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]);
|
$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
|
// Message de notification
|
||||||
$notification = $success === true ? 'Restaurer effectuée avec succès' : 'Erreur inconnue';
|
$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/';
|
$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
|
* Met à jour les données de site avec l'adresse transmise
|
||||||
*/
|
*/
|
||||||
public function updateBaseUrl () {
|
public function updateBaseUrl ($url) {
|
||||||
// Supprimer l'information de redirection
|
// Supprimer l'information de redirection
|
||||||
$old = str_replace('?','',$this->getData(['core', 'baseUrl']));
|
|
||||||
$new = helper::baseUrl(false,false);
|
|
||||||
$c3 = 0;
|
$c3 = 0;
|
||||||
$success = false ;
|
$success = false ;
|
||||||
// Boucler sur les pages
|
// Boucler sur les pages
|
||||||
@ -666,8 +673,8 @@ class config extends common {
|
|||||||
$content = $this->getPage($parentId, self::$i18n);
|
$content = $this->getPage($parentId, self::$i18n);
|
||||||
$titre = $this->getData(['page', $parentId, 'title']);
|
$titre = $this->getData(['page', $parentId, 'title']);
|
||||||
$content = $titre . ' ' . $content ;
|
$content = $titre . ' ' . $content ;
|
||||||
$replace = str_replace( 'href="' . $old , 'href="'. $new , stripslashes($content),$c1) ;
|
$replace = str_replace( 'href="' . $url , 'href="'. '' , stripslashes($content),$c1) ;
|
||||||
$replace = str_replace( 'src="' . $old , 'src="'. $new , stripslashes($replace),$c2) ;
|
$replace = str_replace( 'src="' . $url , 'src="'. '' , stripslashes($replace),$c2) ;
|
||||||
|
|
||||||
if ($c1 > 0 || $c2 > 0) {
|
if ($c1 > 0 || $c2 > 0) {
|
||||||
$success = true;
|
$success = true;
|
||||||
@ -677,8 +684,8 @@ class config extends common {
|
|||||||
foreach($childIds as $childId) {
|
foreach($childIds as $childId) {
|
||||||
$content = $this->getPage($childId, self::$i18n);
|
$content = $this->getPage($childId, self::$i18n);
|
||||||
$content = $titre . ' ' . $content ;
|
$content = $titre . ' ' . $content ;
|
||||||
$replace = str_replace( 'href="' . $old , 'href="'. $new , stripslashes($content),$c1) ;
|
$replace = str_replace( 'href="' . $url , 'href="'. '' , stripslashes($content),$c1) ;
|
||||||
$replace = str_replace( 'src="' . $old , 'src="'. $new , stripslashes($replace),$c2) ;
|
$replace = str_replace( 'src="' . $url , 'src="'. '' , stripslashes($replace),$c2) ;
|
||||||
if ($c1 > 0 || $c2 > 0) {
|
if ($c1 > 0 || $c2 > 0) {
|
||||||
$success = true;
|
$success = true;
|
||||||
$this->setPage($childId, $replace, self::$i18n);
|
$this->setPage($childId, $replace, self::$i18n);
|
||||||
@ -688,8 +695,8 @@ class config extends common {
|
|||||||
}
|
}
|
||||||
// Traiter les modules dont la redirection
|
// Traiter les modules dont la redirection
|
||||||
$content = $this->getdata(['module']);
|
$content = $this->getdata(['module']);
|
||||||
$replace = $this->recursive_array_replace('href="' . $old , 'href="'. $new, $content, $c1);
|
$replace = $this->recursive_array_replace('href="' . $url , 'href="'. '', $content, $c1);
|
||||||
$replace = $this->recursive_array_replace('src="' . $old , 'src="'. $new, $replace, $c2);
|
$replace = $this->recursive_array_replace('src="' . $url , 'src="'. '', $replace, $c2);
|
||||||
if ($content !== $replace) {
|
if ($content !== $replace) {
|
||||||
$this->setdata(['module',$replace]);
|
$this->setdata(['module',$replace]);
|
||||||
$c3 += $c1 + $c2;
|
$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>
|
||||||
</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(); ?>
|
<?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
|
// Active l'onglet avancé lors de l'ajout d'une image
|
||||||
image_advtab: true,
|
image_advtab: true,
|
||||||
// Urls absolues
|
// Urls absolues
|
||||||
relative_urls: false,
|
relative_urls: true,
|
||||||
// Url de base
|
// Url de base
|
||||||
document_base_url: baseUrl,
|
document_base_url: baseUrl,
|
||||||
// Gestionnaire de fichiers
|
// Gestionnaire de fichiers
|
||||||
@ -294,7 +294,7 @@ tinymce.init({
|
|||||||
// Active l'onglet avancé lors de l'ajout d'une image
|
// Active l'onglet avancé lors de l'ajout d'une image
|
||||||
image_advtab: true,
|
image_advtab: true,
|
||||||
// Urls absolues
|
// Urls absolues
|
||||||
relative_urls: false,
|
relative_urls: true,
|
||||||
// Url de base
|
// Url de base
|
||||||
document_base_url: baseUrl,
|
document_base_url: baseUrl,
|
||||||
// Contenu du bouton formats
|
// Contenu du bouton formats
|
||||||
|
Loading…
Reference in New Issue
Block a user