mirror of
https://github.com/ZeJMaN/LBCAlerte_ynh.git
synced 2025-07-03 18:47:59 +02:00
Initial commit
Functional, without SSO
This commit is contained in:
76
sources/app/admin/scripts/upgrade.php
Normal file
76
sources/app/admin/scripts/upgrade.php
Normal file
@ -0,0 +1,76 @@
|
||||
<?php
|
||||
|
||||
$updater = new \App\Updater();
|
||||
if ($url = $config->get("general", "url_version", "")) {
|
||||
$updater->setUrlVersion($url);
|
||||
}
|
||||
if ($url = $config->get("general", "url_archive", "")) {
|
||||
$updater->setUrlArchive($url);
|
||||
}
|
||||
|
||||
if (isset($_POST["checkVersion"])) {
|
||||
unset($_SESSION["lbcLastVersion"], $_SESSION["lbcLastVersionTime"]);
|
||||
header("LOCATION: ?mod=admin&a=upgrade");
|
||||
exit;
|
||||
}
|
||||
if ($_SERVER["REQUEST_METHOD"] == "POST" || empty($_SESSION["lbcLastVersion"]) || empty($_SESSION["lbcLastVersionTime"])) {
|
||||
try {
|
||||
$_SESSION["lbcLastVersion"] = $updater->getLastVersion();
|
||||
$_SESSION["lbcLastVersionTime"] = time();
|
||||
} catch (Exception $e) {
|
||||
|
||||
}
|
||||
}
|
||||
$lastVersion = "";
|
||||
if (!empty($_SESSION["lbcLastVersion"])) {
|
||||
$lastVersion = $_SESSION["lbcLastVersion"];
|
||||
}
|
||||
|
||||
$errors = array();
|
||||
|
||||
$allow_update = true;
|
||||
if (!is_writable(DOCUMENT_ROOT."/version.php")) {
|
||||
$allow_update = false;
|
||||
$errors[] = "Le fichier version.php est en lecture seule, la mise à jour automatique ne peut être effectuée.".
|
||||
"<br />Vérifiez que tous les fichiers soient accéssibles en écriture (pas seulement le fichier version.php).";
|
||||
} elseif (is_file(DOCUMENT_ROOT."/var/.lock")) {
|
||||
$allow_update = false;
|
||||
$errors[] = "Une vérification de nouvelle annonce est en cours, veuillez attendre la fin de celle-ci pour mettre à jour.";
|
||||
}
|
||||
|
||||
$currentVersion = $config->get("general", "version");
|
||||
$upgradeStarted = version_compare($currentVersion, APPLICATION_VERSION, "<");
|
||||
$upgradeAvailable = version_compare($currentVersion, $lastVersion, "<");
|
||||
|
||||
if ($upgradeStarted && !empty($_POST["upgrade"])) {
|
||||
$updater->update($currentVersion, $lastVersion);
|
||||
// mise à jour du numéro de version dans la config.
|
||||
$config->set("general", "version", $lastVersion);
|
||||
$config->save();
|
||||
header("LOCATION: ?mod=admin&a=upgrade");
|
||||
exit;
|
||||
|
||||
} elseif ($allow_update && $upgradeAvailable && !empty($_POST["upgrade"])) {
|
||||
file_put_contents(DOCUMENT_ROOT."/var/.lock_update", time());
|
||||
try {
|
||||
$updater->installFiles($lastVersion);
|
||||
} catch (Exception $e) {
|
||||
$errors[] = $e->getMessage();
|
||||
}
|
||||
$version = require DOCUMENT_ROOT."/version.php";
|
||||
if ($version != $lastVersion) {
|
||||
$errors[] = "La mise à jour semble avoir échouée.";
|
||||
} else {
|
||||
$updater->update($currentVersion, $lastVersion);
|
||||
|
||||
// mise à jour du numéro de version dans la config.
|
||||
$config->set("general", "version", $lastVersion);
|
||||
$config->save();
|
||||
}
|
||||
|
||||
unlink(DOCUMENT_ROOT."/var/.lock_update");
|
||||
if (!$errors) {
|
||||
header("LOCATION: ?mod=admin&a=upgrade");
|
||||
exit;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user