From 943551508835dca1171cb208f06c4159c11df1e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Meyer?= Date: Sun, 8 Mar 2026 20:43:10 +0100 Subject: [PATCH] =?UTF-8?q?Beim=20L=C3=B6schen=20von=20Spieler=20bzw.=20Ve?= =?UTF-8?q?reine=20werden=20die=20entsprechenden=20ids=20in=20Hall=20of=20?= =?UTF-8?q?Fame=20und=20Verbandsorgane=20gel=C3=B6scht?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/com_sportsmanager/admin.php | 13 +++-- .../com_sportsmanager/sportsmanager.php | 50 +++++++++++++++++++ 2 files changed, 59 insertions(+), 4 deletions(-) diff --git a/src/structure/components/com_sportsmanager/admin.php b/src/structure/components/com_sportsmanager/admin.php index 4616719..aaa7a0d 100644 --- a/src/structure/components/com_sportsmanager/admin.php +++ b/src/structure/components/com_sportsmanager/admin.php @@ -1655,6 +1655,7 @@ function adminEditSpieler(): void bildLoeschen("spieler", $id); spielerstatistikAktualisieren(); + halloffameAktualisieren(); redirectSportsManagerURL('&task=admin_spieler&filter=' . urlencode($filter)); } @@ -1962,7 +1963,8 @@ function adminSpielerZusammenlegenForm(): void aktuellerVereinAktualisieren($spieler_beizubehalten_id); ranglisteAktualisieren(); einstufungAktualisieren(); - + halloffameAktualisieren(); + redirectSportsManagerURL('&task=admin_spieler&filter=' . urlencode($filter) . '#id' . $spieler_beizubehalten_id); } @@ -2072,7 +2074,8 @@ function adminRemoveInaktiveSpielerForm(): void } spielerstatistikAktualisieren(); - + halloffameAktualisieren(); + foreach ($bilder_spieler_ids as $id) bildLoeschen("spieler", $id); @@ -3713,7 +3716,8 @@ function adminEditVerein(): void bildLoeschen("vereine", $id); aktuellerVereinAktualisieren(); - + halloffameAktualisieren(); + redirectSportsManagerURL('&task=admin_vereine'); } @@ -3821,7 +3825,8 @@ function adminVereineZusammenlegenForm(): void bildLoeschen("vereine", $verein_zu_entfernen_id); aktuellerVereinAktualisieren(); - + halloffameAktualisieren(); + redirectSportsManagerURL('&task=admin_vereine#id' . $verein_beizubehalten_id); } diff --git a/src/structure/components/com_sportsmanager/sportsmanager.php b/src/structure/components/com_sportsmanager/sportsmanager.php index 1e2f20f..cac7242 100644 --- a/src/structure/components/com_sportsmanager/sportsmanager.php +++ b/src/structure/components/com_sportsmanager/sportsmanager.php @@ -6028,6 +6028,56 @@ function spielerstatistikAktualisieren($geaenderte_spielerstatistik_id = 0, $gea } } +function halloffameAktualisieren(): void +{ + //Beim Löschen von Spieler bzw. Vereine werden die entsprechenden ids in Hall of Fame und Verbandsorgane gelöscht + $db = getDatabase(); + + // spieler1_id prüfen + $query = "UPDATE #__sportsmanager_mitglied_von_halloffame h" + . "\n LEFT JOIN #__sportsmanager_spieler s ON s.spieler_id = h.spieler1_id" + . "\n SET h.spieler1_id = NULL" + . "\n WHERE h.spieler1_id IS NOT NULL" + . "\n AND s.spieler_id IS NULL;"; + $db->setQuery($query); + if (!$db->execute()) { + die($db->stderr(true)); + } + + // spieler2_id prüfen + $query = "UPDATE #__sportsmanager_mitglied_von_halloffame h" + . "\n LEFT JOIN #__sportsmanager_spieler s ON s.spieler_id = h.spieler2_id" + . "\n SET h.spieler2_id = NULL" + . "\n WHERE h.spieler2_id IS NOT NULL" + . "\n AND s.spieler_id IS NULL;"; + $db->setQuery($query); + if (!$db->execute()) { + die($db->stderr(true)); + } + + // verein_id prüfen + $query = "UPDATE #__sportsmanager_mitglied_von_halloffame h" + . "\n LEFT JOIN #__sportsmanager_verein v ON v.verein_id = h.verein_id" + . "\n SET h.verein_id = NULL" + . "\n WHERE h.verein_id IS NOT NULL" + . "\n AND v.verein_id IS NULL;"; + $db->setQuery($query); + if (!$db->execute()) { + die($db->stderr(true)); + } + + // Verbandsorgan-Spieler prüfen + $query = "UPDATE #__sportsmanager_mitglied_von_verbandsorgan h" + . "\n LEFT JOIN #__sportsmanager_spieler s ON s.spieler_id = h.spieler_id" + . "\n SET h.spieler_id = NULL" + . "\n WHERE h.spieler_id IS NOT NULL" + . "\n AND s.spieler_id IS NULL;"; + $db->setQuery($query); + if (!$db->execute()) { + die($db->stderr(true)); + } +} + function wannGespieltAktualisieren(): void { $db = getDatabase();