From 522369bb142f77967392fade2fc0d615e64bbe26 Mon Sep 17 00:00:00 2001 From: Wieland Hagen Date: Mon, 9 Feb 2026 11:09:02 +0100 Subject: [PATCH 1/4] Explicit penalties for league teams --- .../components/com_sportsmanager/admin.php | 57 +++++++++++- .../com_sportsmanager/database/update.php | 21 +++++ .../com_sportsmanager/sportsmanager.php | 52 +++++++++++ .../views/sportsmanager/view_admin.php | 86 +++++++++++++++++-- .../de-DE/de-DE.com_sportsmanager.ini | 3 + .../en-GB/en-GB.com_sportsmanager.ini | 3 + src/structure/script.php | 12 +++ 7 files changed, 223 insertions(+), 11 deletions(-) diff --git a/src/structure/components/com_sportsmanager/admin.php b/src/structure/components/com_sportsmanager/admin.php index 9c46a5e..612b48d 100644 --- a/src/structure/components/com_sportsmanager/admin.php +++ b/src/structure/components/com_sportsmanager/admin.php @@ -7687,6 +7687,7 @@ function adminEditVeranstaltung(): void $unterteilung = $jInput->get('unterteilung', 0, 'INT'); $spieltag_titel_zeigen = $jInput->get('spieltag_titel_zeigen', 0, 'INT'); $elo_wertung = $jInput->get('elo_wertung', 0, 'INT'); + $explizite_strafen = $jInput->get('explizite_strafen', 0, 'INT'); $logo_url = $db->escape(trim($jInput->get('logo_url', '', 'RAW'))); $ticker_logo_url = $db->escape(trim($jInput->get('ticker_logo_url', '', 'RAW'))); $status = $jInput->get('status', 0, 'INT'); @@ -7704,8 +7705,8 @@ function adminEditVeranstaltung(): void $elo_aktualisieren = false; $spielerstatistik_aktualisieren = false; if ($id == 0) { - $query = "INSERT INTO #__sportsmanager_veranstaltung (veranstalter_id, saison_id, bezeichnung, erster_tag " . ($letzter_tag != null ? ", letzter_tag" : "") . ", regelwerke_id, modus_id, verschieberegel_id, tabellenwertung, direktervergleich, unterteilung, spieltag_titel_zeigen, elo_wertung, logo_url, ticker_logo_url, status, reihenfolge, kategorie) VALUES - ('$veranstalterId', '$saison_id', '$bezeichnung', '$erster_tag', " . ($letzter_tag != null ? "'$letzter_tag', " : "") . "'$regelwerke_id', '$modus_id', '$verschieberegel_id', '$tabellenwertung', '$direktervergleich', '$unterteilung', '$spieltag_titel_zeigen', '$elo_wertung', '$logo_url', '$ticker_logo_url', '$status', '$reihenfolge', '$kategorie');"; + $query = "INSERT INTO #__sportsmanager_veranstaltung (veranstalter_id, saison_id, bezeichnung, erster_tag " . ($letzter_tag != null ? ", letzter_tag" : "") . ", regelwerke_id, modus_id, verschieberegel_id, tabellenwertung, direktervergleich, unterteilung, spieltag_titel_zeigen, elo_wertung, explizite_strafen, logo_url, ticker_logo_url, status, reihenfolge, kategorie) VALUES + ('$veranstalterId', '$saison_id', '$bezeichnung', '$erster_tag', " . ($letzter_tag != null ? "'$letzter_tag', " : "") . "'$regelwerke_id', '$modus_id', '$verschieberegel_id', '$tabellenwertung', '$direktervergleich', '$unterteilung', '$spieltag_titel_zeigen', '$elo_wertung', '$explizite_strafen', '$logo_url', '$ticker_logo_url', '$status', '$reihenfolge', '$kategorie');"; $db->setQuery($query); if (!$db->execute()) { die($db->stderr(true)); @@ -7733,6 +7734,7 @@ function adminEditVeranstaltung(): void . "\n unterteilung = '$unterteilung'," . "\n spieltag_titel_zeigen = '$spieltag_titel_zeigen'," . "\n elo_wertung = '$elo_wertung'," + . "\n explizite_strafen = '$explizite_strafen'," . "\n logo_url = '$logo_url'," . "\n ticker_logo_url = '$ticker_logo_url'," . "\n status = '$status'," @@ -8213,6 +8215,57 @@ function adminEditMannschaft(): void redirectSportsManagerURL('&task=admin_teams&veranstaltungid=' . $veranstaltungId); } +function veranstaltungid_for_teamid( $db, $teamid ) +{ + $query = "SELECT veranstaltung_id FROM #__sportsmanager_team WHERE team_id = $teamid"; + $veranstaltungid = loadResult($db, $query); + if ($veranstaltungid == 0) { die("invalid team id"); } + return $veranstaltungid; +} + +function adminMannschaftStrafen() +{ + $db = getDatabase(); + $jInput = Factory::getContainer()->get(SiteApplication::class)->input; + $teamid = $jInput->get('teamid', 0, 'INT'); + if ($teamid == 0) die("Missing id!"); + $veranstaltungid = veranstaltungid_for_teamid($db, $teamid); + + $query = "SELECT teamname FROM #__sportsmanager_team WHERE team_id = $teamid"; + $teamname = loadResult($db, $query); + + if (!benutzerZugriff("mannschaftswettbewerb_aendern") && !benutzerVeranstaltungModerator($veranstaltungid)) + keinZugriff(); + + $query = "SELECT zeitpunkt, strafe, beschreibung FROM #__sportsmanager_team_strafen WHERE team_id = $teamid"; + $rows = loadObjectList($db, $query); + + HTML_sportsmanager_admin::adminMannschaftStrafen($teamid, $veranstaltungid, $teamname, $rows); +} + +function adminMannschaftAddStrafe() +{ + $db = getDatabase(); + $jInput = Factory::getContainer()->get(SiteApplication::class)->input; + $teamid = $jInput->get('teamid', 0, 'INT'); + if ($teamid == 0) die("Missing id!"); + $veranstaltungid = veranstaltungid_for_teamid($db, $teamid); + + if (!benutzerZugriff("mannschaftswettbewerb_aendern") && !benutzerVeranstaltungModerator($veranstaltungid)) + keinZugriff(); + + if ($jInput->get('cancel', false, 'BOOL')) { + redirectSportsManagerURL("&task=admin_team_edit&veranstaltungid=$veranstaltungid&id=$teamid"); + } else if ($jInput->get('add', false, 'BOOL')) { + $strafe = $jInput->get('strafe', 0, 'FLOAT'); + $beschreibung = $jInput->get('beschreibung', 0, 'RAW'); + neueTeamStrafe($teamid, $veranstaltungid, $strafe, $beschreibung); + redirectSportsManagerURL('&task=admin_team_strafen&teamid=' . $teamid); + } else { + redirectSportsManagerURL('&task=admin_teams&veranstaltungid=' . $veranstaltungid); + } +} + function mannschaftsgruppe_hinzufuegen($quelle_team_id, $ziel_veranstaltung_id) { $db = getDatabase(); diff --git a/src/structure/components/com_sportsmanager/database/update.php b/src/structure/components/com_sportsmanager/database/update.php index 0127c0a..5c48d25 100644 --- a/src/structure/components/com_sportsmanager/database/update.php +++ b/src/structure/components/com_sportsmanager/database/update.php @@ -5568,6 +5568,27 @@ function updateDatabase(): void } } + if ($datenbank_version < 117) { + $query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_team_strafen` (" + . "\n `team_strafen_id` int(11) NOT NULL AUTO_INCREMENT," + . "\n `zeitpunkt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00'," + . "\n `team_id` int(11) NOT NULL DEFAULT '0'," + . "\n `strafe` float(6,2) NOT NULL DEFAULT '0'," + . "\n `beschreibung` text NOT NULL," + . "\n PRIMARY KEY (`team_strafen_id`)" + . "\n) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;"; + $db->setQuery( $query ); + if (!$db->execute()) { die($db->stderr(true)); } + + $query = "ALTER TABLE #__sportsmanager_veranstaltung ADD explizite_strafen tinyint(4) DEFAULT '0' AFTER elo_wertung"; + $db->setQuery($query); + if (!$db->execute()) { die($db->stderr(true)); } + + $query = "UPDATE #__sportsmanager_einstellungen SET wert = '117' WHERE name = 'datenbank_version'"; + $db->setQuery($query); + if (!$db->execute()) { die($db->stderr(true)); } + } + if ($termin_aktionen_email_setzen) { $query = "SELECT aktion_user_id, termin_aktion_id" . "\n FROM #__sportsmanager_termin_aktion"; diff --git a/src/structure/components/com_sportsmanager/sportsmanager.php b/src/structure/components/com_sportsmanager/sportsmanager.php index 367e16a..b271dae 100644 --- a/src/structure/components/com_sportsmanager/sportsmanager.php +++ b/src/structure/components/com_sportsmanager/sportsmanager.php @@ -461,6 +461,12 @@ if ($task == "spielerbild") { case 'admin_team_edit': adminEditMannschaft(); break; + case 'admin_team_strafen': + adminMannschaftStrafen(); + break; + case 'admin_team_add_strafe': + adminMannschaftAddStrafe(); + break; case 'admin_team_save': adminSaveMannschaft(); break; @@ -4776,6 +4782,52 @@ function begegnungVerlegen(): void } } +function neueTeamStrafe($teamid, $veranstaltungid, $strafe, $beschreibung) { + $app = Factory::getContainer()->get(SiteApplication::class); + $db = getDatabase(); + + $zeitpunkt = date('Y-m-d H:i:s'); + $query = "INSERT INTO #__sportsmanager_team_strafen" + . "\n (team_id, zeitpunkt, strafe, beschreibung)" + . "\n VALUES ($teamid, '$zeitpunkt', $strafe, '$beschreibung')"; + $db->setQuery($query); + if (!$result = $db->execute()) { die($db->stderr(true)); } + + $query = "UPDATE #__sportsmanager_team" + . "\n SET zusatzpunkte = (" + . "\n SELECT SUM(#__sportsmanager_team_strafen.strafe)" + . "\n FROM #__sportsmanager_team_strafen" + . "\n WHERE #__sportsmanager_team_strafen.team_id = $teamid" + . "\n ) WHERE #__sportsmanager_team.team_id = $teamid"; + $db->setQuery($query); + if (!$result = $db->execute()) { die($db->stderr(true)); } + + teamstatistikAktualisieren($veranstaltungid); + + $query = "SELECT teamname FROM #__sportsmanager_team WHERE team_id = $teamid"; + $teamname = loadResult($db, $query); + + $mailfrom = $app->getCfg('mailfrom'); + $fromname = $app->getCfg('fromname'); + $penaltycc = $app->getCfg('penaltycc'); + $subject = JText::sprintf('COM_SPORTSMANAGER_EXPLICIT_PENALTIES_EMAIL_SUBJECT', $teamname); + $body = JText::sprintf('COM_SPORTSMANAGER_EXPLICIT_PENALTIES_EMAIL_BODY', $teamname, $strafe, $beschreibung); + + $query = "SELECT t1.email FROM #__users AS t1, #__sportsmanager_berechtigt_fuer_team AS t2 WHERE t1.id = t2.berechtigt_user_id AND t2.berechtigt_team_id = $teamid"; + $rows = loadObjectList($db, $query); + if(!empty($rows)) { + $mailer = Factory::getContainer()->get(MailerFactoryInterface::class)->createMailer(); + $mailer->setSender($mailfrom, $fromname); + $mailer->addCc($penaltycc); + $mailer->setSubject($subject); + $mailer->setBody($body); + foreach ($rows as $row) { + $mailer->addBcc($row->email); + } + $mailer->send(); + } +} + function teamstatistikAktualisieren($geaenderte_veranstaltung_id = 0, $geaenderter_teamspiel_modus_id = 0): void { $db = getDatabase(); diff --git a/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php b/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php index 07ddea5..8d8e05f 100644 --- a/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php +++ b/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php @@ -8612,6 +8612,22 @@ class HTML_sportsmanager_admin + + + : + + + + + : @@ -9091,15 +9107,19 @@ class HTML_sportsmanager_admin : - + explizite_strafen == 0) { ?> + + team_id) . "\">" . ($row->zusatzpunkte ? $row->zusatzpunkte : 0.0) . ""; + } ?> +
+ +
+ + + + + + + + + + + + + + + + + + + + +
zeitpunkt ?> strafe ?> beschreibung ?>
+ + + + + +
+ + + + +
+ setQuery( $query ); if (!$db->execute()) { die($db->stderr(true)); } + $query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_team_strafen` (" + . "\n `team_strafen_id` int(11) NOT NULL AUTO_INCREMENT," + . "\n `zeitpunkt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00'," + . "\n `team_id` int(11) NOT NULL DEFAULT '0'," + . "\n `strafe` float(6,2) NOT NULL DEFAULT '0'," + . "\n `beschreibung` text NOT NULL," + . "\n PRIMARY KEY (`team_strafen_id`)" + . "\n) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;"; + $db->setQuery( $query ); + if (!$db->execute()) { die($db->stderr(true)); } + $query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_teamansprechpartner` (" . "\n `kontaktperson_id` int(11) NOT NULL AUTO_INCREMENT," . "\n `team_id` int(11) NOT NULL DEFAULT '0'," @@ -1049,6 +1060,7 @@ return new class () implements InstallerScriptInterface . "\n `erster_tag` date NOT NULL DEFAULT '0000-00-00'," . "\n `letzter_tag` date DEFAULT NULL," . "\n `elo_wertung` tinyint(4) DEFAULT NULL," + . "\n `explizite_strafen` tinyint(4) DEFAULT '0'," . "\n `logo_url` TINYTEXT NOT NULL," . "\n `ticker_logo_url` TINYTEXT NOT NULL," . "\n `status` tinyint(4) NOT NULL DEFAULT '0'," From 5bd07357089a899a958f9380d4bca090162f0c58 Mon Sep 17 00:00:00 2001 From: Wieland Hagen Date: Mon, 23 Feb 2026 15:43:29 +0100 Subject: [PATCH 2/4] Explicit penalties for league teams (2): resolved issues in PR --- .../components/com_sportsmanager/database/update.php | 2 +- .../components/com_sportsmanager/sportsmanager.php | 4 +++- src/structure/script.php | 8 ++++++-- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/structure/components/com_sportsmanager/database/update.php b/src/structure/components/com_sportsmanager/database/update.php index 5c48d25..e2c1fc5 100644 --- a/src/structure/components/com_sportsmanager/database/update.php +++ b/src/structure/components/com_sportsmanager/database/update.php @@ -5571,7 +5571,7 @@ function updateDatabase(): void if ($datenbank_version < 117) { $query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_team_strafen` (" . "\n `team_strafen_id` int(11) NOT NULL AUTO_INCREMENT," - . "\n `zeitpunkt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00'," + . "\n `zeitpunkt` datetime NOT NULL," . "\n `team_id` int(11) NOT NULL DEFAULT '0'," . "\n `strafe` float(6,2) NOT NULL DEFAULT '0'," . "\n `beschreibung` text NOT NULL," diff --git a/src/structure/components/com_sportsmanager/sportsmanager.php b/src/structure/components/com_sportsmanager/sportsmanager.php index b271dae..76e4714 100644 --- a/src/structure/components/com_sportsmanager/sportsmanager.php +++ b/src/structure/components/com_sportsmanager/sportsmanager.php @@ -4818,7 +4818,9 @@ function neueTeamStrafe($teamid, $veranstaltungid, $strafe, $beschreibung) { if(!empty($rows)) { $mailer = Factory::getContainer()->get(MailerFactoryInterface::class)->createMailer(); $mailer->setSender($mailfrom, $fromname); - $mailer->addCc($penaltycc); + if (!empty($penaltycc)) { + $mailer->addCc($penaltycc); + } $mailer->setSubject($subject); $mailer->setBody($body); foreach ($rows as $row) { diff --git a/src/structure/script.php b/src/structure/script.php index 5e997c7..4200fe9 100644 --- a/src/structure/script.php +++ b/src/structure/script.php @@ -724,7 +724,7 @@ return new class () implements InstallerScriptInterface $query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_team_strafen` (" . "\n `team_strafen_id` int(11) NOT NULL AUTO_INCREMENT," - . "\n `zeitpunkt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00'," + . "\n `zeitpunkt` datetime NOT NULL," . "\n `team_id` int(11) NOT NULL DEFAULT '0'," . "\n `strafe` float(6,2) NOT NULL DEFAULT '0'," . "\n `beschreibung` text NOT NULL," @@ -1200,7 +1200,7 @@ return new class () implements InstallerScriptInterface $db->setQuery( $query ); if (!$db->execute()) { die($db->stderr(true)); } - $query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'datenbank_version', wert = '116';"; + $query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'datenbank_version', wert = '117';"; $db->setQuery( $query ); if (!$db->execute()) { die($db->stderr(true)); } @@ -1689,6 +1689,10 @@ return new class () implements InstallerScriptInterface $db->setQuery( $query ); if (!$db->execute()) { die($db->stderr(true)); } + $query = "DROP TABLE IF EXISTS `#__sportsmanager_team_strafen`;"; + $db->setQuery( $query ); + if (!$db->execute()) { die($db->stderr(true)); } + $query = "DROP TABLE IF EXISTS `#__sportsmanager_turnier`;"; $db->setQuery( $query ); if (!$db->execute()) { die($db->stderr(true)); } From 84d07aecb147cd0c6c5293197b4f5695ad8c4442 Mon Sep 17 00:00:00 2001 From: Wieland Hagen Date: Mon, 23 Feb 2026 16:18:35 +0100 Subject: [PATCH 3/4] Explicit penalties for league teams (3): add moderator_user_id --- src/structure/components/com_sportsmanager/admin.php | 8 ++++++-- .../components/com_sportsmanager/database/update.php | 1 + .../components/com_sportsmanager/sportsmanager.php | 6 +++--- .../com_sportsmanager/views/sportsmanager/view_admin.php | 4 +++- src/structure/script.php | 1 + 5 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/structure/components/com_sportsmanager/admin.php b/src/structure/components/com_sportsmanager/admin.php index 612b48d..0e7576c 100644 --- a/src/structure/components/com_sportsmanager/admin.php +++ b/src/structure/components/com_sportsmanager/admin.php @@ -8237,7 +8237,10 @@ function adminMannschaftStrafen() if (!benutzerZugriff("mannschaftswettbewerb_aendern") && !benutzerVeranstaltungModerator($veranstaltungid)) keinZugriff(); - $query = "SELECT zeitpunkt, strafe, beschreibung FROM #__sportsmanager_team_strafen WHERE team_id = $teamid"; + $query = "SELECT strafen.zeitpunkt, strafen.strafe, strafen.beschreibung, users.name AS moderator_name" + . "\n FROM #__sportsmanager_team_strafen as strafen" + . "\n LEFT JOIN #__users as users ON users.id = strafen.moderator_user_id" + . "\n WHERE strafen.team_id = $teamid"; $rows = loadObjectList($db, $query); HTML_sportsmanager_admin::adminMannschaftStrafen($teamid, $veranstaltungid, $teamname, $rows); @@ -8257,9 +8260,10 @@ function adminMannschaftAddStrafe() if ($jInput->get('cancel', false, 'BOOL')) { redirectSportsManagerURL("&task=admin_team_edit&veranstaltungid=$veranstaltungid&id=$teamid"); } else if ($jInput->get('add', false, 'BOOL')) { + $user_id = Factory::getContainer()->get(SiteApplication::class)->getIdentity()->id; $strafe = $jInput->get('strafe', 0, 'FLOAT'); $beschreibung = $jInput->get('beschreibung', 0, 'RAW'); - neueTeamStrafe($teamid, $veranstaltungid, $strafe, $beschreibung); + neueTeamStrafe($teamid, $veranstaltungid, $strafe, $user_id, $beschreibung); redirectSportsManagerURL('&task=admin_team_strafen&teamid=' . $teamid); } else { redirectSportsManagerURL('&task=admin_teams&veranstaltungid=' . $veranstaltungid); diff --git a/src/structure/components/com_sportsmanager/database/update.php b/src/structure/components/com_sportsmanager/database/update.php index e2c1fc5..29e2bd2 100644 --- a/src/structure/components/com_sportsmanager/database/update.php +++ b/src/structure/components/com_sportsmanager/database/update.php @@ -5572,6 +5572,7 @@ function updateDatabase(): void $query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_team_strafen` (" . "\n `team_strafen_id` int(11) NOT NULL AUTO_INCREMENT," . "\n `zeitpunkt` datetime NOT NULL," + . "\n `moderator_user_id` int(11) DEFAULT NULL," . "\n `team_id` int(11) NOT NULL DEFAULT '0'," . "\n `strafe` float(6,2) NOT NULL DEFAULT '0'," . "\n `beschreibung` text NOT NULL," diff --git a/src/structure/components/com_sportsmanager/sportsmanager.php b/src/structure/components/com_sportsmanager/sportsmanager.php index 76e4714..dd98bca 100644 --- a/src/structure/components/com_sportsmanager/sportsmanager.php +++ b/src/structure/components/com_sportsmanager/sportsmanager.php @@ -4782,14 +4782,14 @@ function begegnungVerlegen(): void } } -function neueTeamStrafe($teamid, $veranstaltungid, $strafe, $beschreibung) { +function neueTeamStrafe($teamid, $veranstaltungid, $strafe, $moderator_user_id, $beschreibung) { $app = Factory::getContainer()->get(SiteApplication::class); $db = getDatabase(); $zeitpunkt = date('Y-m-d H:i:s'); $query = "INSERT INTO #__sportsmanager_team_strafen" - . "\n (team_id, zeitpunkt, strafe, beschreibung)" - . "\n VALUES ($teamid, '$zeitpunkt', $strafe, '$beschreibung')"; + . "\n (team_id, zeitpunkt, moderator_user_id, strafe, beschreibung)" + . "\n VALUES ($teamid, '$zeitpunkt', $moderator_user_id, $strafe, '$beschreibung')"; $db->setQuery($query); if (!$result = $db->execute()) { die($db->stderr(true)); } diff --git a/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php b/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php index 8d8e05f..7050c18 100644 --- a/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php +++ b/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php @@ -9355,6 +9355,7 @@ class HTML_sportsmanager_admin + @@ -9365,8 +9366,9 @@ class HTML_sportsmanager_admin ?> + - + diff --git a/src/structure/script.php b/src/structure/script.php index 4200fe9..6d4faa9 100644 --- a/src/structure/script.php +++ b/src/structure/script.php @@ -725,6 +725,7 @@ return new class () implements InstallerScriptInterface $query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_team_strafen` (" . "\n `team_strafen_id` int(11) NOT NULL AUTO_INCREMENT," . "\n `zeitpunkt` datetime NOT NULL," + . "\n `moderator_user_id` int(11) DEFAULT NULL," . "\n `team_id` int(11) NOT NULL DEFAULT '0'," . "\n `strafe` float(6,2) NOT NULL DEFAULT '0'," . "\n `beschreibung` text NOT NULL," From 57c158a770d5ceec21c738010f70eb293bb1171f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Meyer?= Date: Tue, 24 Feb 2026 18:49:29 +0100 Subject: [PATCH 4/4] Kleine Korrekturen --- .../com_sportsmanager/database/update.php | 3 ++- .../views/sportsmanager/view_admin.php | 16 +++++++++------- .../language/de-DE/de-DE.com_sportsmanager.ini | 2 +- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/structure/components/com_sportsmanager/database/update.php b/src/structure/components/com_sportsmanager/database/update.php index 29e2bd2..ea5fe16 100644 --- a/src/structure/components/com_sportsmanager/database/update.php +++ b/src/structure/components/com_sportsmanager/database/update.php @@ -5581,7 +5581,8 @@ function updateDatabase(): void $db->setQuery( $query ); if (!$db->execute()) { die($db->stderr(true)); } - $query = "ALTER TABLE #__sportsmanager_veranstaltung ADD explizite_strafen tinyint(4) DEFAULT '0' AFTER elo_wertung"; + $query = "ALTER TABLE #__sportsmanager_veranstaltung" + . "\n ADD IF NOT EXISTS explizite_strafen tinyint(4) DEFAULT '0' AFTER elo_wertung"; $db->setQuery($query); if (!$db->execute()) { die($db->stderr(true)); } diff --git a/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php b/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php index 7050c18..d1c3178 100644 --- a/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php +++ b/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php @@ -8613,11 +8613,12 @@ class HTML_sportsmanager_admin -
zeitpunkt ?> moderator_name ? htmlentities_utf8($row->moderator_name) : "-" ?> strafe ?> beschreibung ?> beschreibung) ?>
- : + + - " method="post" name="adminForm" id="adminForm" enctype="multipart/form-data"> - - - - + + + + +