From 3dd12ffbf35f9ca4722b7846f2929a713143ccdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ma=C3=AFeul=20Rouquette?= <maieul@maieul.net> Date: Sun, 31 Mar 2024 13:16:25 +0200 Subject: [PATCH] =?UTF-8?q?fix:=20Ne=20pas=20permettre=20d'installer=20une?= =?UTF-8?q?=20version=20de=20SPIP=20plus=20ancienne=20que=20la=20version?= =?UTF-8?q?=20d=C3=A9j=C3=A0=20install=C3=A9e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix: #4213 --- ecrire/base/upgrade.php | 18 ++++++++++-------- ecrire/exec/demande_mise_a_jour.php | 16 +++++++++++----- ecrire/lang/ecrire_fr.php | 2 ++ 3 files changed, 23 insertions(+), 13 deletions(-) diff --git a/ecrire/base/upgrade.php b/ecrire/base/upgrade.php index 9b81ef861a..3765027053 100644 --- a/ecrire/base/upgrade.php +++ b/ecrire/base/upgrade.php @@ -119,14 +119,16 @@ function maj_base($version_cible = 0, $redirect = '', $debut_page = true) { "Version anterieure: $version_installee. Courante: " . $GLOBALS['spip_version_base'], ); if (!$version_installee || $GLOBALS['spip_version_base'] < $version_installee) { - sql_replace( - 'spip_meta', - [ - 'nom' => 'version_installee', - 'valeur' => $GLOBALS['spip_version_base'], - 'impt' => 'non' - ] - ); + if (!$version_installee) { + sql_replace( + 'spip_meta', + [ + 'nom' => 'version_installee', + 'valeur' => $GLOBALS['spip_version_base'], + 'impt' => 'non' + ] + ); + } return false; } if (!upgrade_test()) { diff --git a/ecrire/exec/demande_mise_a_jour.php b/ecrire/exec/demande_mise_a_jour.php index 65d6924b8d..558f41e7ab 100644 --- a/ecrire/exec/demande_mise_a_jour.php +++ b/ecrire/exec/demande_mise_a_jour.php @@ -43,11 +43,17 @@ function exec_demande_mise_a_jour_dist() { echo $commencer_page('', '', '', '', true, false, false); echo debut_grand_cadre(); - echo boite_ouvrir(_T('info_message_technique'), 'notice'); - echo '<p>' . _T('info_procedure_maj_version') . '</p>', - '<p>' . _T('info_administrateur_site_01') . '</p>'; - echo bouton_action(_T('bouton_mettre_a_jour_base'), generer_url_ecrire('upgrade', 'reinstall=non')); - echo boite_fermer(); + if ($GLOBALS['spip_version_base'] < $GLOBALS['meta']['version_installee'] ?? 0) { + echo boite_ouvrir(_T('info_erreur_version_base_plus_recente'), 'error'); + echo '<p>'._T('info_version_base_plus_recente').'</p>'; + echo boite_fermer(); + } else { + echo boite_ouvrir(_T('info_message_technique'), 'notice'); + echo '<p>' . _T('info_procedure_maj_version') . '</p>', + '<p>' . _T('info_administrateur_site_01') . '</p>'; + echo bouton_action(_T('bouton_mettre_a_jour_base'), generer_url_ecrire('upgrade', 'reinstall=non')); + echo boite_fermer(); + } // masquer les erreurs sql sur cette page car proviennent de la base pas a jour ! echo '<style type="text/css">#debug-nav {display: none;}</style>'; echo fin_grand_cadre(); diff --git a/ecrire/lang/ecrire_fr.php b/ecrire/lang/ecrire_fr.php index 128ce4cfdc..979cd81cfd 100644 --- a/ecrire/lang/ecrire_fr.php +++ b/ecrire/lang/ecrire_fr.php @@ -427,6 +427,8 @@ exige d’avoir un accès FTP au site Web.</p>', 'info_procedez_par_etape' => 'procédez étape par étape', 'info_procedure_maj_version' => 'la procédure de mise à jour doit être lancée afin d’adapter la base de données à la nouvelle version de SPIP.', + 'info_version_base_plus_recente' => 'La version de SPIP en base de données est plus récente que celle que vous utilisez. Cette opération n\'est pas supportée, mettez à jour votre installation.', + 'info_erreur_version_base_plus_recente' => 'Erreur d\'installation', 'info_proxy_ok' => 'Test du proxy réussi.', 'info_ps' => 'P.-S.', 'info_publier' => 'publier', -- GitLab