From 62d5e46de91457f364376c2a5504dc2357bacfc8 Mon Sep 17 00:00:00 2001
From: nicod_ <nicod@lerebooteux.fr>
Date: Wed, 15 Jan 2025 22:26:07 +0100
Subject: [PATCH] =?UTF-8?q?fix:=20Suppression=20des=20tables=20et=20des=20?=
 =?UTF-8?q?donn=C3=A9es?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Tester l'existence des tables avant de les supprimer
Supprimer aussi les données de spip_auteurs_liens
---
 formulaires/supprimer_blocktypes.php | 27 +++++++++++++++++++--------
 1 file changed, 19 insertions(+), 8 deletions(-)

diff --git a/formulaires/supprimer_blocktypes.php b/formulaires/supprimer_blocktypes.php
index 1e1fbb3..2688899 100644
--- a/formulaires/supprimer_blocktypes.php
+++ b/formulaires/supprimer_blocktypes.php
@@ -15,14 +15,25 @@ function formulaires_supprimer_blocktypes_charger() {
 }
 
 function formulaires_supprimer_blocktypes_traiter() {
-	if (
-		sql_drop_table('spip_blocktypes')
-		&& sql_drop_table('spip_blocktypes_liens')
-	) {
-		$retour['message_ok'] = 'Tables supprimées';
-	} else {
-		$retour['message_erreur'] = 'Erreur de suppression';
+	if (sql_showtable('spip_blocktypes')) {
+		if (!sql_drop_table('spip_blocktypes')) {
+			$retour['message_erreur'] = 'Impossible de supprimer la table spip_blocktypes.';
+
+			return $retour;
+		}
+	}
+	if (sql_showtable('spip_blocktypes_liens')) {
+		if (!sql_drop_table('spip_blocktypes_liens')) {
+			$retour['message_erreur'] = 'Impossible de supprimer la table spip_blocktypes_liens.';
+
+			return $retour;
+		}
+	}
+	if (!sql_delete('spip_auteurs_liens', 'objet="blocktype"')) {
+		$retour['message_erreur'] = 'Impossible de supprimer les enregistrements de spip_auteurs_liens.';
+
+		return $retour;
 	}
 
-	return $retour;
+	return ['message_ok' => 'Tables supprimées'];
 }
-- 
GitLab