From ab6f776b96ab83e266ad8872f153cba4e088a8be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Meyer?= Date: Thu, 22 Jan 2026 11:31:27 +0100 Subject: [PATCH] Tabellen Spielorte, Teams um die Felder telefon, EMail, Ruhetage und Trainingstage erweitert. --- .../components/com_sportsmanager/admin.php | 16 +- .../com_sportsmanager/database/update.php | 27 + .../views/sportsmanager/view_admin.php | 1076 +++++++++-------- .../de-DE/de-DE.com_sportsmanager.ini | 4 +- .../en-GB/en-GB.com_sportsmanager.ini | 4 +- src/structure/script.php | 6 +- 6 files changed, 604 insertions(+), 529 deletions(-) diff --git a/src/structure/components/com_sportsmanager/admin.php b/src/structure/components/com_sportsmanager/admin.php index e1740c4..5687e51 100644 --- a/src/structure/components/com_sportsmanager/admin.php +++ b/src/structure/components/com_sportsmanager/admin.php @@ -3915,6 +3915,9 @@ function adminEditSpielort(): void $ortsname = $db->escape(trim($jInput->get('ortsname', '', 'RAW'))); $ortsteil = $db->escape(trim($jInput->get('ortsteil', '', 'RAW'))); $url = $db->escape(trim($jInput->get('url', '', 'RAW'))); + $telefon = $db->escape(trim($jInput->get('telefon', '', 'RAW'))); + $email = $db->escape(trim($jInput->get('email', '', 'RAW'))); + $ruhetage = $db->escape(trim($jInput->get('ruhetage', '', 'RAW'))); $beschreibung = $db->escape(trim($jInput->get('beschreibung', '', 'RAW'))); $status = $jInput->get('status', 0, 'INT'); @@ -3923,8 +3926,8 @@ function adminEditSpielort(): void } if ($id == 0) { - $query = "INSERT INTO #__sportsmanager_spielort (name, strasse, plz, ortsname, ortsteil, url, beschreibung, status)" - . "\n VALUES ('$name', '$strasse', '$plz', '$ortsname', '$ortsteil', '$url', '$beschreibung', '$status');"; + $query = "INSERT INTO #__sportsmanager_spielort (name, strasse, plz, ortsname, ortsteil, url, telefon, email, ruhetage, beschreibung, status)" + . "\n VALUES ('$name', '$strasse', '$plz', '$ortsname', '$ortsteil', '$url', '$telefon', '$email', '$ruhetage', '$beschreibung', '$status');"; $db->setQuery($query); if (!$db->execute()) { die($db->stderr(true)); @@ -3938,6 +3941,9 @@ function adminEditSpielort(): void . "\n ortsname = '$ortsname'," . "\n ortsteil = '$ortsteil'," . "\n url = '$url'," + . "\n telefon = '$telefon'," + . "\n email = '$email'," + . "\n ruhetage = '$ruhetage'," . "\n beschreibung = '$beschreibung'," . "\n status = '$status'" . "\n WHERE spielort_id = $id"; @@ -7944,6 +7950,7 @@ function adminEditMannschaft(): void $heimspiel_wochentag = $jInput->get('heimspiel_wochentag', 0, 'INT'); $heimspiel_uhrzeit = sprintf("%02d%02d", $jInput->get('heimspiel_uhrzeit_stunden', 0, 'INT'), $jInput->get('heimspiel_uhrzeit_minuten', 0, 'INT')); $heimspielort_id = $jInput->get('heimspielort_id', 0, 'INT'); + $trainingstage = $db->escape(trim($jInput->get('trainingstage', '', 'RAW'))); $nichtraucherschutz = $jInput->get('nichtraucherschutz', 0, 'INT'); $zusatzpunkte = $jInput->get('zusatzpunkte', 0, 'FLOAT'); $bildbeibehalten = $jInput->get('bildbeibehalten', 0, 'INT'); @@ -7970,8 +7977,8 @@ function adminEditMannschaft(): void $veranstaltung = $rows[0]; if ($id == 0) { - $query = "INSERT INTO #__sportsmanager_team (verein_id, veranstaltung_id, teamname, teamname_kurz, tischtyp, tischeigenschaften, heimspiel_wochentag, heimspiel_uhrzeit, heimspielort_id, nichtraucherschutz, zusatzpunkte" . ($veranstaltung->tabellenwertung == -2 ? ", platz" : "") . ", pin)" - . "\n VALUES (" . ($verein_id != 0 ? "'$verein_id'" : "NULL") . ", '$veranstaltungId', '$teamname', '$teamname_kurz', '$tischtyp', '$tischeigenschaften', '$heimspiel_wochentag', '$heimspiel_uhrzeit', " . ($heimspielort_id != 0 ? "'$heimspielort_id'" : "NULL") . ", '$nichtraucherschutz', '$zusatzpunkte'" . ($veranstaltung->tabellenwertung == -2 ? ($platz != 0 ? ", '$platz'" : ", NULL") : "") . ", '$pin');"; + $query = "INSERT INTO #__sportsmanager_team (verein_id, veranstaltung_id, teamname, teamname_kurz, tischtyp, tischeigenschaften, heimspiel_wochentag, heimspiel_uhrzeit, heimspielort_id, trainingstage, nichtraucherschutz, zusatzpunkte" . ($veranstaltung->tabellenwertung == -2 ? ", platz" : "") . ", pin)" + . "\n VALUES (" . ($verein_id != 0 ? "'$verein_id'" : "NULL") . ", '$veranstaltungId', '$teamname', '$teamname_kurz', '$tischtyp', '$tischeigenschaften', '$heimspiel_wochentag', '$heimspiel_uhrzeit', " . ($heimspielort_id != 0 ? "'$heimspielort_id'" : "NULL") . ", '$trainingstage', '$nichtraucherschutz', '$zusatzpunkte'" . ($veranstaltung->tabellenwertung == -2 ? ($platz != 0 ? ", '$platz'" : ", NULL") : "") . ", '$pin');"; $db->setQuery($query); if (!$db->execute()) { die($db->stderr(true)); @@ -7999,6 +8006,7 @@ function adminEditMannschaft(): void . "\n heimspiel_wochentag = '$heimspiel_wochentag'," . "\n heimspiel_uhrzeit = '$heimspiel_uhrzeit'," . "\n heimspielort_id = " . ($heimspielort_id != 0 ? "'$heimspielort_id'" : "NULL") . "," + . "\n trainingstage = '$trainingstage'," . "\n nichtraucherschutz = '$nichtraucherschutz'," . ($veranstaltung->tabellenwertung == -2 ? ($platz != 0 ? "\n platz = '$platz'," : "\n platz = NULL,") : "") . "\n zusatzpunkte = '$zusatzpunkte'," diff --git a/src/structure/components/com_sportsmanager/database/update.php b/src/structure/components/com_sportsmanager/database/update.php index 1cf2d45..0127c0a 100644 --- a/src/structure/components/com_sportsmanager/database/update.php +++ b/src/structure/components/com_sportsmanager/database/update.php @@ -5541,6 +5541,33 @@ function updateDatabase(): void } } + if ($datenbank_version < 116) { + + $query = "ALTER TABLE `#__sportsmanager_spielort`" + . "\n ADD IF NOT EXISTS `telefon` VARCHAR(64) NULL DEFAULT NULL AFTER `url`," + . "\n ADD IF NOT EXISTS `email` VARCHAR(64) NULL DEFAULT NULL AFTER `telefon`," + . "\n ADD IF NOT EXISTS `ruhetage` VARCHAR(64) NULL DEFAULT NULL AFTER `email`;"; + $db->setQuery($query); + if (!$db->execute()) { + die($db->stderr(true)); + } + + $query = "ALTER TABLE `#__sportsmanager_team`" + . "\n ADD IF NOT EXISTS `trainingstage` VARCHAR(64) NULL DEFAULT NULL AFTER `heimspielort_id`;"; + $db->setQuery($query); + if (!$db->execute()) { + die($db->stderr(true)); + } + + $query = "UPDATE #__sportsmanager_einstellungen" + . "\n SET wert = '116'" + . "\n 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/views/sportsmanager/view_admin.php b/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php index 225fa8d..cc2ce08 100644 --- a/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php +++ b/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php @@ -4022,13 +4022,15 @@ class HTML_sportsmanager_admin if (count($vereinsmitglieder) > 0) { ?> +
- - - - - + + + + + +
+
spielort_id) : "")); ?>" method="post" name="adminForm" id="adminForm" enctype="multipart/form-data">
- - - - +
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -
- - - -
- - / - / - - - - -
- - - -
- - - -
- - - -
  -
-
-
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+ + / + / + + + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
  +
@@ -8855,434 +8883,438 @@ class HTML_sportsmanager_admin enctype="multipart/form-data">
- - - + +
-
- - - - - - - - - - tabellenwertung == -2) { - ?> - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + tabellenwertung == -2) { + ?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - tabellenwertung <= 9) { - ?> - - - - - veranstaltung_id] = $v->bezeichnung . " (" . FormatiertesDatum($v->erster_tag, false, false) . " - " . FormatiertesDatum($v->letzter_tag, false, false) . ")"; - if ($row != null && $row->teamgruppe_id != null && $v->team_id != null) { - $veranstaltungen_beruecksichtigt[] = $v->veranstaltung_id; - $veranstaltungen_beruecksichtigt_begegnungen[] = $v->team_begegnungen; - $veranstaltungen_beruecksichtigt_moderator[] = $beschraenkter_zugriff_veranstaltungen ? $v->veranstaltung_moderator : 1; - } - } - $n = count($veranstaltungen_beruecksichtigt); - ?> - - - - - - - + foreach ($typ as $typ_wert => $typ_bezeichnung) + echo ""; + ?> + + + + tabellenwertung <= 9) { + ?> + + + + + veranstaltung_id] = $v->bezeichnung . " (" . FormatiertesDatum($v->erster_tag, false, false) . " - " . FormatiertesDatum($v->letzter_tag, false, false) . ")"; + if ($row != null && $row->teamgruppe_id != null && $v->team_id != null) { + $veranstaltungen_beruecksichtigt[] = $v->veranstaltung_id; + $veranstaltungen_beruecksichtigt_begegnungen[] = $v->team_begegnungen; + $veranstaltungen_beruecksichtigt_moderator[] = $beschraenkter_zugriff_veranstaltungen ? $v->veranstaltung_moderator : 1; + } + } + $n = count($veranstaltungen_beruecksichtigt); + ?> + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - + + + + + + + + + + + + + - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- : - - - - -
- - - -
- - -
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ : + + + + +
+ + + +
+ + + +
+ + + -
- - - -
- - - 0 || ($beschraenkter_zugriff_veranstaltungen && !$veranstaltungen_beruecksichtigt_moderator[$i]))) { - echo htmlentities_utf8($veranstaltungen_bezeichnungen[$veranstaltungen_beruecksichtigt[$i]]); - echo ""; - } else { - ?> - - -
+ + + +
+ + + 0 || ($beschraenkter_zugriff_veranstaltungen && !$veranstaltungen_beruecksichtigt_moderator[$i]))) { + echo htmlentities_utf8($veranstaltungen_bezeichnungen[$veranstaltungen_beruecksichtigt[$i]]); + echo ""; + } else { + ?> + + +
- - : - - "/> -
- - - -
- - - -
- - - -
- - - -
- - - -
+ + : + + "/> +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
- - - - - - -
- -
-
- - - -
- : - - team_id, 0, 0, 240, 240, 'border="0"')) != null) { - ?> - -

-

-

- - -

- -
  +
+ + + + + + +
+ +
+
+ + + +
+ : + + team_id, 0, 0, 240, 240, 'border="0"')) != null) { + ?> + +

+

+

+ + +

+ +
  -
-
-
diff --git a/src/structure/language/de-DE/de-DE.com_sportsmanager.ini b/src/structure/language/de-DE/de-DE.com_sportsmanager.ini index 1a9e87a..28445aa 100644 --- a/src/structure/language/de-DE/de-DE.com_sportsmanager.ini +++ b/src/structure/language/de-DE/de-DE.com_sportsmanager.ini @@ -1067,4 +1067,6 @@ COM_SPORTSMANAGER_MATCH_RESCHEDULINGS="Spielverlegungen" COM_SPORTSMANAGER_MATCH_RESCHEDULING="Spielverlegung" COM_SPORTSMANAGER_MATCH_SWAPPING_HELP="Bei Heimrechttausch gleichen Termin eintragen" COM_SPORTSMANAGER_NOT_VALID_TIME="Ungültige Uhrzeit" -COM_SPORTSMANAGER_REALLY_MATCH_RESCHEDULING="Willst Du diesen Spielverlegung wirklich entfernen?" \ No newline at end of file +COM_SPORTSMANAGER_REALLY_MATCH_RESCHEDULING="Willst Du diesen Spielverlegung wirklich entfernen?" +COM_SPORTSMANAGER_REST_DAYS="Ruhetage" +COM_SPORTSMANAGER_TRAINING_DAYS="Trainingstage" \ No newline at end of file diff --git a/src/structure/language/en-GB/en-GB.com_sportsmanager.ini b/src/structure/language/en-GB/en-GB.com_sportsmanager.ini index ec0674a..a37841b 100644 --- a/src/structure/language/en-GB/en-GB.com_sportsmanager.ini +++ b/src/structure/language/en-GB/en-GB.com_sportsmanager.ini @@ -1067,4 +1067,6 @@ COM_SPORTSMANAGER_MATCH_RESCHEDULINGS="Match reschedulings" COM_SPORTSMANAGER_MATCH_RESCHEDULING="Match rescheduling" COM_SPORTSMANAGER_MATCH_SWAPPING_HELP="If home advantage is swapped, enter the same date" COM_SPORTSMANAGER_NOT_VALID_TIME="Not valid time" -COM_SPORTSMANAGER_REALLY_MATCH_RESCHEDULING="Do you really want to remove this match rescheduling?" \ No newline at end of file +COM_SPORTSMANAGER_REALLY_MATCH_RESCHEDULING="Do you really want to remove this match rescheduling?" +COM_SPORTSMANAGER_REST_DAYS="Rest days" +COM_SPORTSMANAGER_TRAINING_DAYS="Training days" \ No newline at end of file diff --git a/src/structure/script.php b/src/structure/script.php index f427f68..d1f2266 100644 --- a/src/structure/script.php +++ b/src/structure/script.php @@ -670,6 +670,9 @@ return new class () implements InstallerScriptInterface . "\n `ortsname` varchar(30) DEFAULT NULL," . "\n `ortsteil` varchar(30) DEFAULT NULL," . "\n `url` varchar(150) DEFAULT NULL," + . "\n `telefon` varchar(64) DEFAULT NULL," + . "\n `email` varchar(64) DEFAULT NULL," + . "\n `ruhetage` varchar(64) DEFAULT NULL," . "\n `beschreibung` varchar(500) DEFAULT NULL," . "\n `status` tinyint(1) NOT NULL DEFAULT '0'," . "\n PRIMARY KEY (`spielort_id`)" @@ -692,6 +695,7 @@ return new class () implements InstallerScriptInterface . "\n `heimspiel_wochentag` tinyint(4) DEFAULT NULL," . "\n `heimspiel_uhrzeit` smallint(6) DEFAULT NULL," . "\n `heimspielort_id` int(11) DEFAULT NULL," + . "\n `trainingstage` varchar(64) DEFAULT NULL," . "\n `nichtraucherschutz` tinyint(4) DEFAULT '0'," . "\n `platz` smallint(6) DEFAULT NULL," . "\n `gesamtpunkte` float(6,2) DEFAULT NULL," @@ -1184,7 +1188,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 = '115';"; + $query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'datenbank_version', wert = '116';"; $db->setQuery( $query ); if (!$db->execute()) { die($db->stderr(true)); }