From 522369bb142f77967392fade2fc0d615e64bbe26 Mon Sep 17 00:00:00 2001 From: Wieland Hagen Date: Mon, 9 Feb 2026 11:09:02 +0100 Subject: [PATCH 01/24] 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 e469e70b97405077b50c31f8583966ba617708d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Meyer?= Date: Mon, 9 Feb 2026 17:20:45 +0100 Subject: [PATCH 02/24] =?UTF-8?q?Formulare=20f=C3=BCr=20Tabelle=20Verbands?= =?UTF-8?q?organe=20erstellt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/com_sportsmanager/admin.php | 113 +++++++++++++ .../com_sportsmanager/sportsmanager.php | 12 ++ .../views/sportsmanager/view_admin.php | 156 ++++++++++++++++++ .../de-DE/de-DE.com_sportsmanager.ini | 8 +- .../en-GB/en-GB.com_sportsmanager.ini | 8 +- 5 files changed, 293 insertions(+), 4 deletions(-) diff --git a/src/structure/components/com_sportsmanager/admin.php b/src/structure/components/com_sportsmanager/admin.php index 9c46a5e..7c07d21 100644 --- a/src/structure/components/com_sportsmanager/admin.php +++ b/src/structure/components/com_sportsmanager/admin.php @@ -7334,6 +7334,119 @@ function adminEditOrdnungsstrafe(): void die(); } +function adminVerbandsorgane(): void +{ + $db = getDatabase(); + + if (!benutzerZugriff("organisationen_aendern")) + keinZugriff(true); + + $query = "SELECT t1.*, COUNT(t2.verbandsorgane_id) AS anzahl" + . "\n FROM #__sportsmanager_verbandsorgane t1" + . "\n LEFT JOIN #__sportsmanager_mitglied_von_verbandsorgan t2 ON t2.verbandsorgane_id = t1.verbandsorgane_id" + . "\n GROUP BY t1.verbandsorgane_id" + . "\n ORDER BY t1.reihenfolge;"; + $rows = loadObjectList($db, $query); + HTML_sportsmanager_admin::adminVerbandsorgane($rows); +} + +function adminEditVerbandsorgan(): void +{ + $db = getDatabase(); + $jInput = Factory::getContainer()->get(SiteApplication::class)->input; + + if (!benutzerZugriff("organisationen_aendern")) + keinZugriff(true); + + $id = $jInput->get('id', 0, 'INT'); + if ($id == 0) + $row = null; + else { + $query = "SELECT * FROM #__sportsmanager_verbandsorgane WHERE verbandsorgane_id = $id"; + $rows = loadObjectList($db, $query); + if (count($rows) < 1) die("Wrong id!"); + $row = $rows[0]; + } + + $query = "SELECT nummer, bezeichnung FROM #__sportsmanager_kategorie WHERE typ = 7 ORDER BY nummer"; + $rows_kategorien = loadObjectList($db, $query); + $kategorien = array(); + foreach ($rows_kategorien as $kategorie) + $kategorien[$kategorie->nummer] = $kategorie->bezeichnung; + + HTML_sportsmanager_admin::adminEditVerbandsorgan($row,$kategorien); +} + +#[NoReturn] function adminSaveVerbandsorgan(): void +{ + $db = getDatabase(); + $jInput = Factory::getContainer()->get(SiteApplication::class)->input; + + if (!benutzerZugriff("organisationen_aendern")) + keinZugriff(); + + if ($jInput->get('cancel', false, 'BOOL')) { + redirectSportsManagerURL('&task=admin_verbandsorgane'); + } + + $id = $jInput->get('id', 0, 'INT'); + $verbandsorgan = $db->escape(trim($jInput->get('verbandsorgan', '', 'RAW'))); + $kategorie = $db->escape(trim($jInput->get('kategorie', 0, 'INT'))); + $reihenfolge = $db->escape(trim($jInput->get('reihenfolge', 0, 'INT'))); + $email = $db->escape(trim($jInput->get('email', '', 'RAW'))); + $beschreibung = $db->escape(trim($jInput->get('beschreibung', '', 'RAW'))); + + if (strlen($verbandsorgan) < 3) { + redirectSportsManagerURL('&task=admin_verbandsorgane','Ungültiger Name für Verbandsorgan!'); + } + + if ($id == 0) + $query = "INSERT INTO #__sportsmanager_verbandsorgane" + . "\n (verbandsorgan,kategorie,reihenfolge,email,beschreibung) VALUES" + . "\n ('$verbandsorgan',$kategorie,$reihenfolge,'$email','$beschreibung');"; + else { + $query = "UPDATE #__sportsmanager_verbandsorgane" + . "\n SET verbandsorgan = '$verbandsorgan'" + . "\n , kategorie = $kategorie" + . "\n , reihenfolge = $reihenfolge" + . "\n , email = '$email'" + . "\n , beschreibung = '$beschreibung'" + . "\n WHERE verbandsorgane_id = $id"; + } + $db->setQuery($query); + if (!$db->execute()) { + die($db->stderr(true)); + } + + redirectSportsManagerURL('&task=admin_verbandsorgane'); +} + +#[NoReturn] function adminRemoveVerbandsorgan(): void +{ + $db = getDatabase(); + $jInput = Factory::getContainer()->get(SiteApplication::class)->input; + + if (!benutzerZugriff("organisationen_aendern")) + keinZugriff(true); + + $id = $jInput->get('id', 0, 'INT'); + + $query = "DELETE FROM #__sportsmanager_verbandsorgane WHERE verbandsorgane_id = $id;"; + $db->setQuery($query); + if (!$db->execute()) { + die($db->stderr(true)); + } + + //Alle Mitglieder löschen + $query = "DELETE FROM #__sportsmanager_mitglied_von_verbandsorgan WHERE verbandsorgane_id = $id;"; + $db->setQuery($query); + if (!$db->execute()) { + die($db->stderr(true)); + } + + redirectSportsManagerURL('&task=admin_verbandsorgane'); +} + function adminRegelwerke(): void { $db = getDatabase(); diff --git a/src/structure/components/com_sportsmanager/sportsmanager.php b/src/structure/components/com_sportsmanager/sportsmanager.php index 367e16a..aaffe28 100644 --- a/src/structure/components/com_sportsmanager/sportsmanager.php +++ b/src/structure/components/com_sportsmanager/sportsmanager.php @@ -371,6 +371,18 @@ if ($task == "spielerbild") { case 'admin_joomla_mail_senden': sendJoomlaMail(); break; + case 'admin_verbandsorgane': + adminVerbandsorgane(); + break; + case 'admin_verbandsorgan_edit': + adminEditVerbandsorgan(); + break; + case 'admin_verbandsorgan_save': + adminSaveVerbandsorgan(); + break; + case 'admin_verbandsorgan_remove': + adminRemoveVerbandsorgan(); + break; case 'admin_regelwerke': adminRegelwerke(); break; 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..b50eaf7 100644 --- a/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php +++ b/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php @@ -101,6 +101,12 @@ class HTML_sportsmanager_admin + + + + @@ -7477,6 +7483,156 @@ class HTML_sportsmanager_admin +
+ :
+ + + + + + + +
+
+
+ 0) { + ?> + + + + + + + + + + + + +
+ + verbandsorgan)); ?> + + + anzahl; ?> + X +
+ +
+ :
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
  + +
+
+ + + + "/> +
+ Date: Tue, 10 Feb 2026 10:00:46 +0100 Subject: [PATCH 03/24] =?UTF-8?q?Organisation=20hinzugef=C3=BCgt=20und=20k?= =?UTF-8?q?leine=20Korrekturen.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/com_sportsmanager/admin.php | 29 ++++++++++++------- .../views/sportsmanager/view_admin.php | 20 ++++++++++++- 2 files changed, 37 insertions(+), 12 deletions(-) diff --git a/src/structure/components/com_sportsmanager/admin.php b/src/structure/components/com_sportsmanager/admin.php index 7c07d21..c350ac9 100644 --- a/src/structure/components/com_sportsmanager/admin.php +++ b/src/structure/components/com_sportsmanager/admin.php @@ -7368,13 +7368,18 @@ function adminEditVerbandsorgan(): void $row = $rows[0]; } + $query = "SELECT *" + . "\n FROM #__sportsmanager_veranstalter" + . "\n ORDER BY veranstalterbezeichnung"; + $veranstalter = loadObjectList($db, $query); + $query = "SELECT nummer, bezeichnung FROM #__sportsmanager_kategorie WHERE typ = 7 ORDER BY nummer"; $rows_kategorien = loadObjectList($db, $query); $kategorien = array(); foreach ($rows_kategorien as $kategorie) $kategorien[$kategorie->nummer] = $kategorie->bezeichnung; - HTML_sportsmanager_admin::adminEditVerbandsorgan($row,$kategorien); + HTML_sportsmanager_admin::adminEditVerbandsorgan($row,$veranstalter,$kategorien); } #[NoReturn] function adminSaveVerbandsorgan(): void @@ -7391,26 +7396,28 @@ function adminEditVerbandsorgan(): void $id = $jInput->get('id', 0, 'INT'); $verbandsorgan = $db->escape(trim($jInput->get('verbandsorgan', '', 'RAW'))); - $kategorie = $db->escape(trim($jInput->get('kategorie', 0, 'INT'))); - $reihenfolge = $db->escape(trim($jInput->get('reihenfolge', 0, 'INT'))); + $veranstalter_id = $jInput->get('veranstalter_id', 0, 'INT'); + $kategorie = $jInput->get('kategorie', 0, 'INT'); + $reihenfolge = $jInput->get('reihenfolge', 0, 'INT'); $email = $db->escape(trim($jInput->get('email', '', 'RAW'))); $beschreibung = $db->escape(trim($jInput->get('beschreibung', '', 'RAW'))); if (strlen($verbandsorgan) < 3) { - redirectSportsManagerURL('&task=admin_verbandsorgane','Ungültiger Name für Verbandsorgan!'); + redirectSportsManagerURL('&task=admin_verbandsorgane',Text::_('COM_SPORTSMANAGER_INVALID_ASSOCIATION_BODY_NAME')); } if ($id == 0) $query = "INSERT INTO #__sportsmanager_verbandsorgane" - . "\n (verbandsorgan,kategorie,reihenfolge,email,beschreibung) VALUES" - . "\n ('$verbandsorgan',$kategorie,$reihenfolge,'$email','$beschreibung');"; + . "\n (verbandsorgan,veranstalter_id,kategorie,reihenfolge,email,beschreibung) VALUES" + . "\n ('$verbandsorgan'," . ($veranstalter_id != 0 ? "'$veranstalter_id'" : "NULL") . ",$kategorie,$reihenfolge,'$email','$beschreibung');"; else { $query = "UPDATE #__sportsmanager_verbandsorgane" - . "\n SET verbandsorgan = '$verbandsorgan'" - . "\n , kategorie = $kategorie" - . "\n , reihenfolge = $reihenfolge" - . "\n , email = '$email'" - . "\n , beschreibung = '$beschreibung'" + . "\n SET verbandsorgan = '$verbandsorgan'," + . "\n veranstalter_id = " . ($veranstalter_id != 0 ? "'$veranstalter_id'" : "NULL") . "," + . "\n kategorie = $kategorie," + . "\n reihenfolge = $reihenfolge," + . "\n email = '$email'," + . "\n beschreibung = '$beschreibung'" . "\n WHERE verbandsorgane_id = $id"; } $db->setQuery($query); 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 b50eaf7..b1906b2 100644 --- a/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php +++ b/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php @@ -7540,7 +7540,7 @@ class HTML_sportsmanager_admin } } - static function adminEditVerbandsorgan($row,$kategorien): void + static function adminEditVerbandsorgan($row,$veranstalter,$kategorien): void { global $params; ?> @@ -7564,6 +7564,24 @@ class HTML_sportsmanager_admin value="verbandsorgan); ?>"/> + + + + + + + +