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();