1.4.20 auto update avec messages d'erreurs

This commit is contained in:
Fred Tempez 2024-02-03 18:42:00 +01:00
parent 28ee5e46a5
commit 13b5adffac
5 changed files with 32 additions and 22 deletions

View File

@ -1,4 +1,4 @@
# ZwiiCampus 1.4.16 # ZwiiCampus 1.4.20
ZwiiCampus (Learning Management System) est logiciel auteur destiné à mettre en ligne des tutoriels. Il dispose de plusieurs modalités d'ouverture et d'accès des contenus. Basé sur la version 13 du CMS Zwii, la structure logicielle est solide, le framework de Zwii est éprouvé. ZwiiCampus (Learning Management System) est logiciel auteur destiné à mettre en ligne des tutoriels. Il dispose de plusieurs modalités d'ouverture et d'accès des contenus. Basé sur la version 13 du CMS Zwii, la structure logicielle est solide, le framework de Zwii est éprouvé.

View File

@ -51,7 +51,7 @@ class common
const ACCESS_TIMER = 1800; const ACCESS_TIMER = 1800;
// Numéro de version // Numéro de version
const ZWII_VERSION = '1.4.19'; const ZWII_VERSION = '1.4.20';
// URL autoupdate // URL autoupdate
const ZWII_UPDATE_URL = 'https://forge.chapril.org/ZwiiCMS-Team/campus-update/raw/branch/master/'; const ZWII_UPDATE_URL = 'https://forge.chapril.org/ZwiiCMS-Team/campus-update/raw/branch/master/';

View File

@ -248,11 +248,11 @@ class install extends common
$message = $success ? '' : 'Erreur de copie du fichier htaccess'; $message = $success ? '' : 'Erreur de copie du fichier htaccess';
} }
// Nettoyage des fichiers d'installation précédents // Nettoyage des fichiers d'installation précédents
if (file_exists(self::TEMP_DIR . 'update.tar.gz') && $success) { if ($success && file_exists(self::TEMP_DIR . 'update.tar.gz')) {
$success = unlink(self::TEMP_DIR . 'update.tar.gz'); $success = unlink(self::TEMP_DIR . 'update.tar.gz');
$message = $success ? '' : 'Impossible d\'effacer la mise à jour précédente'; $message = $success ? '' : 'Impossible d\'effacer la mise à jour précédente';
} }
if (file_exists(self::TEMP_DIR . 'update.tar') && $success) { if ($success && file_exists(self::TEMP_DIR . 'update.tar')) {
$success = unlink(self::TEMP_DIR . 'update.tar'); $success = unlink(self::TEMP_DIR . 'update.tar');
$message = $success ? '' : 'Impossible d\'effacer la mise à jour précédente'; $message = $success ? '' : 'Impossible d\'effacer la mise à jour précédente';
} }
@ -267,6 +267,8 @@ class install extends common
break; break;
// Téléchargement // Téléchargement
case 2: case 2:
$success = true;
$message = '';
file_put_contents(self::TEMP_DIR . 'update.tar.gz', helper::getUrlContents(common::ZWII_UPDATE_URL . common::ZWII_UPDATE_CHANNEL . '/update.tar.gz')); 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 = helper::getUrlContents(common::ZWII_UPDATE_URL . common::ZWII_UPDATE_CHANNEL . '/update.md5');
$md5origin = explode(' ', $md5origin); $md5origin = explode(' ', $md5origin);
@ -277,7 +279,7 @@ class install extends common
$message = ""; $message = "";
} else { } else {
$success = false; $success = false;
$message = json_encode('Erreur de téléchargement ou de somme de contrôle', JSON_UNESCAPED_UNICODE); $message = 'Erreur de téléchargement ou de somme de contrôle';
if (file_exists(self::TEMP_DIR . 'update.tar.gz')) { if (file_exists(self::TEMP_DIR . 'update.tar.gz')) {
unlink(self::TEMP_DIR . 'update.tar.gz'); unlink(self::TEMP_DIR . 'update.tar.gz');
http_response_code(500); http_response_code(500);
@ -289,15 +291,20 @@ class install extends common
'display' => self::DISPLAY_JSON, 'display' => self::DISPLAY_JSON,
'content' => [ 'content' => [
'success' => $success, 'success' => $success,
'data' => $message 'data' => json_encode($message, JSON_UNESCAPED_UNICODE)
] ]
]); ]);
break; break;
// Installation // Installation
case 3: case 3:
$success = true; $success = true;
$message = '';
// Check la réécriture d'URL avant d'écraser les fichiers // Check la réécriture d'URL avant d'écraser les fichiers
$rewrite = helper::checkRewrite(); if (helper::checkRewrite()) {
touch(self::DATA_DIR . '.rewrite');
}
// Décompression et installation // Décompression et installation
try { try {
// Décompression dans le dossier de fichier temporaires // Décompression dans le dossier de fichier temporaires
@ -306,9 +313,11 @@ class install extends common
// Installation // Installation
$pharData->extractTo(__DIR__ . '/../../../', null, true); $pharData->extractTo(__DIR__ . '/../../../', null, true);
} catch (Exception $e) { } catch (Exception $e) {
$message = $e->getMessage();
$success = false; $success = false;
http_response_code(500); http_response_code(500);
} }
// Nettoyage du dossier // Nettoyage du dossier
if (file_exists(self::TEMP_DIR . 'update.tar.gz')) { if (file_exists(self::TEMP_DIR . 'update.tar.gz')) {
unlink(self::TEMP_DIR . 'update.tar.gz'); unlink(self::TEMP_DIR . 'update.tar.gz');
@ -316,12 +325,13 @@ class install extends common
if (file_exists(self::TEMP_DIR . 'update.tar')) { if (file_exists(self::TEMP_DIR . 'update.tar')) {
unlink(self::TEMP_DIR . 'update.tar'); unlink(self::TEMP_DIR . 'update.tar');
} }
// Valeurs en sortie // Valeurs en sortie
$this->addOutput([ $this->addOutput([
'display' => self::DISPLAY_JSON, 'display' => self::DISPLAY_JSON,
'content' => [ 'content' => [
'success' => $success, 'success' => $success,
'data' => $rewrite 'data' => json_encode($message, JSON_UNESCAPED_UNICODE)
] ]
]); ]);
break; break;
@ -329,7 +339,6 @@ class install extends common
case 4: case 4:
$success = true; $success = true;
$message = ''; $message = '';
$rewrite = $this->getInput('data');
/** /**
* Restaure le fichier htaccess * Restaure le fichier htaccess
@ -350,7 +359,7 @@ class install extends common
/** /**
* Restaure la réécriture d'URL * Restaure la réécriture d'URL
*/ */
if ($rewrite === 'true') { // Ajout des lignes dans le .htaccess if (file_exists(self::DATA_DIR . '.rewrite')) { // Ajout des lignes dans le .htaccess
$fileContent = file_get_contents('.htaccess'); $fileContent = file_get_contents('.htaccess');
$rewriteData = PHP_EOL . $rewriteData = PHP_EOL .
'# URL rewriting' . PHP_EOL . '# URL rewriting' . PHP_EOL .
@ -367,6 +376,7 @@ class install extends common
'.htaccess', '.htaccess',
$fileContent $fileContent
); );
unlink(self::DATA_DIR . '.rewrite');
} }
} }
@ -378,7 +388,6 @@ class install extends common
$defaultLanguages = init::$defaultData['language']; $defaultLanguages = init::$defaultData['language'];
foreach ($installedLanguages as $key => $value) { foreach ($installedLanguages as $key => $value) {
//var_dump( $defaultLanguages[$key]['date'] > $value['date'] );
if ( if (
isset($defaultLanguages[$key]['date']) && isset($defaultLanguages[$key]['date']) &&
$defaultLanguages[$key]['date'] > $value['date'] && $defaultLanguages[$key]['date'] > $value['date'] &&
@ -419,10 +428,13 @@ class install extends common
} else { } else {
// Nouvelle version // Nouvelle version
self::$newVersion = helper::getUrlContents(common::ZWII_UPDATE_URL . common::ZWII_UPDATE_CHANNEL . '/version'); self::$newVersion = helper::getUrlContents(common::ZWII_UPDATE_URL . common::ZWII_UPDATE_CHANNEL . '/version');
// Variable de version // Variable de version
if (helper::checkNewVersion(common::ZWII_UPDATE_CHANNEL)) { if (helper::checkNewVersion(common::ZWII_UPDATE_CHANNEL)) {
self::$updateButtonText = helper::translate('Mise à jour'); self::$updateButtonText = helper::translate('Mise à jour');
} }
// Valeurs en sortie // Valeurs en sortie
$this->addOutput([ $this->addOutput([
'display' => self::DISPLAY_LAYOUT_LIGHT, 'display' => self::DISPLAY_LAYOUT_LIGHT,

View File

@ -1,7 +1,7 @@
function step(i, data) { function step(i, data) {
var errors = ["<?php echo helper::translate('Préparation de la mise à jour'); ?>", "<?php echo helper::translate('Téléchargement et validation de l\'archive'); ?>", "<?php echo helper::translate('Installation'); ?>", "<?php echo helper::translate('Configuration'); ?>"]; var errors = ["<?php echo helper::translate('Préparation de la mise à jour'); ?>", "<?php echo helper::translate('Téléchargement et validation de l\'archive'); ?>", "<?php echo helper::translate('Installation'); ?>", "<?php echo helper::translate('Configuration'); ?>"];
$(".installUpdateProgressText").hide(), $(".installUpdateProgressText[data-id=" + i + "]").show(); $(".installUpdateProgressText").hide(), $(".installUpdateProgressText[data-id=" + i + "]").show();
$("body").css("cursor", "wait"); $("body").css("cursor", "wait");
$.ajax({ $.ajax({
@ -12,11 +12,6 @@ function step(i, data) {
data: data data: data
}, },
success: function (result) { success: function (result) {
// if (result.success != "1") { // Vérification de la propriété "success"
// Appel de la fonction de gestion d'erreur
// showError(i, result, errors);
// return;
//}
setTimeout((function () { setTimeout((function () {
if (4 === i) { if (4 === i) {
$("#installUpdateSuccess").show(); $("#installUpdateSuccess").show();
@ -60,10 +55,13 @@ function showError(step, message, errors) {
const jsonData = JSON.parse(jsonString); const jsonData = JSON.parse(jsonString);
// Afficher les résultats // Afficher les résultats
$("#installUpdateErrorMessage").html("<strong>Détails de l'erreur :</strong><br> " + if (jsonData) {
jsonData.data.replace(/^"(.*)"$/, '$1') + $("#installUpdateErrorMessage").html("<strong>Détails de l'erreur :</strong><br> " +
"<br>" + jsonData.data.replace(/^"(.*)"$/, '$1') +
warningMessage.replace(/<[^p].*?>/g, "")); "<br>" +
warningMessage.replace(/<[^p].*?>/g, ""));
}
} else { } else {
// Vous pouvez également faire quelque chose d'autre ici, par exemple, afficher un message à l'utilisateur, etc. // Vous pouvez également faire quelque chose d'autre ici, par exemple, afficher un message à l'utilisateur, etc.
$("#installUpdateErrorMessage").html(message); $("#installUpdateErrorMessage").html(message);

View File

@ -5,7 +5,7 @@
<?php echo self::ZWII_VERSION; ?> <?php echo self::ZWII_VERSION; ?>
<?php echo helper::translate('vers'); ?> <?php echo helper::translate('vers'); ?>
&nbsp; &nbsp;
<?php echo $module::$newVersion; ?>. <?php echo $module::$newVersion; ?>
</strong></p> </strong></p>
<p> <p>
<?php echo helper::translate('Afin d\'assurer le bon fonctionnement de Zwii, veuillez ne pas fermer cette page avant la fin de l\'opération.'); ?> <?php echo helper::translate('Afin d\'assurer le bon fonctionnement de Zwii, veuillez ne pas fermer cette page avant la fin de l\'opération.'); ?>