diff --git a/src/structure/components/com_sportsmanager/admin.php b/src/structure/components/com_sportsmanager/admin.php index f09eb34..0a7fa81 100644 --- a/src/structure/components/com_sportsmanager/admin.php +++ b/src/structure/components/com_sportsmanager/admin.php @@ -672,7 +672,8 @@ function adminEinstellungen(): void redirectSportsManagerURL('&task=admin_uebersicht'); } - $basis_spielernr = $db->escape(trim($jInput->get('basis_spielernr', '', 'RAW'))); + $verbands_kuerzel = $db->escape(trim($jInput->get('verbands_kuerzel', '', 'RAW'))); + $basis_spielernr = $db->escape(trim($jInput->get('basis_spielernr', '', 'RAW'))); $ansprechpartner_ausblenden = $jInput->get('ansprechpartner_ausblenden', 0, 'INT'); $ansprechpartner_spielerdaten = $jInput->get('ansprechpartner_spielerdaten', 0, 'INT'); $ansprechpartner_importieren = $jInput->get('ansprechpartner_importieren', 0, 'INT'); @@ -690,6 +691,14 @@ function adminEinstellungen(): void $api_push_key = $jInput->get('api_push_key', '', 'RAW'); + $query = "REPLACE #__sportsmanager_einstellungen" + . "\n SET name = 'verbands_kuerzel'" + . ", wert = '$verbands_kuerzel'"; + $db->setQuery($query); + if (!$db->execute()) { + die($db->stderr(true)); + } + $query = "REPLACE #__sportsmanager_einstellungen" . "\n SET name = 'basis_spielernr'" . ", wert = '$basis_spielernr'"; @@ -7815,7 +7824,12 @@ function adminEditBegegnung(): void . "\n FROM #__sportsmanager_spielort" . "\n ORDER BY ortsname, name, ortsteil"; $spielorte = loadObjectList($db, $query); - HTML_sportsmanager_admin::adminEditBegegnung($veranstaltung, $row, $id == null, $teams, $spielorte); + $query = "SELECT spieltag_titel FROM #__sportsmanager_begegnung" + . "\n WHERE spieltag_titel IS NOT NULL" + . "\n GROUP BY spieltag_titel" + . "\n ORDER BY spieltag_titel;"; + $auswahl_spieltagtitel = loadObjectList($db, $query); + HTML_sportsmanager_admin::adminEditBegegnung($veranstaltung, $row, $id == null, $teams, $spielorte, $auswahl_spieltagtitel); HTML_sportsmanager_admin::adminVerlegenVerlauf($verlegen_aktionen); } @@ -7839,6 +7853,8 @@ function adminEditBegegnung(): void $datum = normalisiertesDatum($jInput->get('datum_jahr', 0, 'INT') == 0 ? null : sprintf("%04d-%02d-%02d", $jInput->get('datum_jahr', 0, 'INT'), $jInput->get('datum_monat', 0, 'INT'), $jInput->get('datum_tag', 0, 'INT'))); $uhrzeit = normalisierteUhrzeit(sprintf(" %02d-%02d-00", $jInput->get('uhrzeit_stunden', 0, 'INT'), $jInput->get('uhrzeit_minuten', 0, 'INT'))); $zeitpunkt = $datum == null || $uhrzeit == null ? null : ($datum . " " . $uhrzeit); + $spiel_nr = $jInput->get('spiel_nr', 0, 'INT'); + $spieltag_titel = $db->escape(trim($jInput->get('spieltag_titel', '', 'RAW'))); $heim_team_id = $jInput->get('heim_team_id', 0, 'INT'); $gast_team_id = $jInput->get('gast_team_id', 0, 'INT'); $spielort_id = $jInput->get('spielort_id', 0, 'INT'); @@ -7881,9 +7897,11 @@ function adminEditBegegnung(): void $begegnung = null; $user_id = isExternalDatabase() ? 0 : Factory::getContainer()->get(SiteApplication::class)->getIdentity()->id; if ($id == 0) { - $query = "INSERT INTO #__sportsmanager_begegnung (zeitpunkt, spieltag, heim_team_id, gast_team_id, spielort_id, tisch, nichtraucherschutz)" - . "\n VALUES (" . ($zeitpunkt != null ? "'$zeitpunkt'" : "NULL") . ", " . ($runde != null ? "'$runde'" : "NULL") . ", '$heim_team_id', '$gast_team_id', " . ($spielort_id != 0 ? "'$spielort_id'" : "NULL") . ", '$tisch', '$nichtraucherschutz');"; - $db->setQuery($query); + $query = "INSERT INTO #__sportsmanager_begegnung (zeitpunkt, spieltag, spieltag_titel, spiel_nr, heim_team_id, gast_team_id, spielort_id, tisch, nichtraucherschutz)" + . "\n VALUES (" . ($zeitpunkt != null ? "'$zeitpunkt'" : "NULL") . ", " . ($runde != null ? "'$runde'" : "NULL") + . "\n , '$spieltag_titel', " . ($spiel_nr != 0 ? "'$spiel_nr'" : "NULL") . ", '$heim_team_id', '$gast_team_id'" + . "\n , " . ($spielort_id != 0 ? "'$spielort_id'" : "NULL") . ", '$tisch', '$nichtraucherschutz');"; + $db->setQuery($query); if (!$db->execute()) { die($db->stderr(true)); } @@ -7917,10 +7935,15 @@ function adminEditBegegnung(): void } } - if ($begegnung->heim_team_id != $heim_team_id || $begegnung->gast_team_id != $gast_team_id || $begegnung->zeitpunkt != $zeitpunkt || $begegnung->spieltag != $runde || $begegnung->spielort_id != $spielort_id || (empty($begegnung->tisch) != empty($tisch) || $begegnung->tisch != $tisch) || $begegnung->nichtraucherschutz != $nichtraucherschutz) { + if ($begegnung->heim_team_id != $heim_team_id || $begegnung->gast_team_id != $gast_team_id || + $begegnung->zeitpunkt != $zeitpunkt || $begegnung->spieltag != $runde || $begegnung->spiel_nr != $spiel_nr || + $begegnung->spieltag_titel != $spieltag_titel || $begegnung->spielort_id != $spielort_id || (empty($begegnung->tisch) != empty($tisch) || + $begegnung->tisch != $tisch) || $begegnung->nichtraucherschutz != $nichtraucherschutz) { $query = "UPDATE #__sportsmanager_begegnung" . "\n SET zeitpunkt = " . ($zeitpunkt != null ? "'$zeitpunkt'" : "NULL") . "," . "\n spieltag = " . ($runde != null ? "'$runde'" : "NULL") . "," + . "\n spieltag_titel = '$spieltag_titel'," + . "\n spiel_nr = " .($spiel_nr != 0 ? "'$spiel_nr'" : "NULL") . "," . "\n heim_team_id = '$heim_team_id'," . "\n gast_team_id = '$gast_team_id'," . "\n spielort_id = " . ($spielort_id != 0 ? "'$spielort_id'" : "NULL") . "," @@ -9718,7 +9741,12 @@ function adminBegegnungenRundeErzeugenForm(): void . "\n FROM #__sportsmanager_spielort" . "\n ORDER BY ortsname, name, ortsteil"; $spielorte = loadObjectList($db, $query); - HTML_sportsmanager_admin::adminBegegnungenRundeErzeugen($veranstaltung, $rows, $row, $spielorte); + $query = "SELECT spieltag_titel FROM #__sportsmanager_begegnung" + . "\n WHERE spieltag_titel IS NOT NULL" + . "\n GROUP BY spieltag_titel" + . "\n ORDER BY spieltag_titel;"; + $auswahl_spieltagtitel = loadObjectList($db, $query); + HTML_sportsmanager_admin::adminBegegnungenRundeErzeugen($veranstaltung, $rows, $row, $spielorte, $auswahl_spieltagtitel); } #[NoReturn] function adminBegegnungenRundeErzeugen(): void @@ -9751,6 +9779,7 @@ function adminBegegnungenRundeErzeugenForm(): void } $rundentyp = $jInput->get('rundentyp', -1, 'INT'); $runde = max(min(abs($jInput->get('runde', 1, 'INT')), $rundentyp == -2 ? 99 : 9999), 1); + $spieltag_titel = $db->escape(trim($jInput->get('spieltag_titel', '', 'RAW'))); $platzierung_ende = max(min(abs($jInput->get('platzierung_ende', 0, 'INT')), $runde + 99), 1); if ($rundentyp >= 10000) @@ -9770,8 +9799,10 @@ function adminBegegnungenRundeErzeugenForm(): void $teamIds[$i] = $jInput->get('team_id_' . $i, 0, 'INT'); $spielort_ids = array(); - for ($i = 1; $i <= $anzahlteams; $i += 2) + for ($i = 1; $i <= $anzahlteams; $i += 2){ $spielort_ids[$i] = $jInput->get('spielort_id_' . $i, 0, 'INT'); + $spiel_nr[$i] = $jInput->get('spiel_nr_' . $i, 0, 'INT'); + } for ($teamNr = 1; $teamNr < $anzahlteams; $teamNr += 2) { $heim_team_id = $teamIds[$teamNr]; @@ -9803,14 +9834,15 @@ function adminBegegnungenRundeErzeugenForm(): void $zeitpunkt = sprintf("%04d-%02d-%02d %02d:%02d", $ts["year"], $ts["mon"], $ts["mday"], floor($heim_team->heimspiel_uhrzeit / 100), $heim_team->heimspiel_uhrzeit % 100); } - $query = "INSERT INTO #__sportsmanager_begegnung (zeitpunkt, spieltag, heim_team_id, gast_team_id, spielort_id)" - . "\n VALUES (" . ($zeitpunkt != null ? "'$zeitpunkt'" : "NULL") . ", " . ($runde != null ? "'$runde'" : "NULL") . ", '$heim_team_id', '$gast_team_id', " . ($spielort_ids[$teamNr] != 0 ? "'$spielort_ids[$teamNr]'" : "NULL") . ");"; - $db->setQuery($query); + $query = "INSERT INTO #__sportsmanager_begegnung (zeitpunkt, spieltag, spieltag_titel, spiel_nr, heim_team_id, gast_team_id, spielort_id)" + . "\n VALUES (" . ($zeitpunkt != null ? "'$zeitpunkt'" : "NULL") . ", " . ($runde != null ? "'$runde'" : "NULL") + . "\n , '$spieltag_titel', " . ($spiel_nr[$teamNr] != 0 ? "'$spiel_nr[$teamNr]'" : "NULL") + . "\n , '$heim_team_id', '$gast_team_id', " . ($spielort_ids[$teamNr] != 0 ? "'$spielort_ids[$teamNr]'" : "NULL") . ");"; + $db->setQuery($query); if (!$db->execute()) { die($db->stderr(true)); } } - redirectSportsManagerURL('&task=admin_begegnungen&veranstaltungid=' . $veranstaltungId); } @@ -10421,7 +10453,13 @@ function adminBegegnungenExportForm(): void if ($export == "spielplan" or $export == "spielberichte") { $query = " - SELECT t1.begegnung_id AS ID, t5.saisonbezeichnung AS Saison, + SELECT t1.begegnung_id AS ID, "; + if (einstellungswert("verbands_kuerzel") == "STFV"){ + $query .= " + CONCAT(t5.saisonbezeichnung,LPAD(t4.kategorie,2,'0'),LPAD(t1.spieltag,2,'0'),LPAD(IFNULL(t1.spiel_nr, '0'),2,'0')) AS stfv_id, "; + } + $query .= " + t5.saisonbezeichnung AS Saison, t4.bezeichnung AS Liga, t1.zeitpunkt AS Spielstart, t2.teamname AS Heim, t3.teamname AS Gast, t1.spieltag AS Spieltag_Nr, t1.spiel_nr AS Spiel_Nr, t1.heim_punkte AS Heim_Tore, t1.gast_punkte AS Gast_Tore, t1.heim_spielpunkte AS Heim_Satzpunkte, @@ -10432,7 +10470,7 @@ function adminBegegnungenExportForm(): void LEFT JOIN #__sportsmanager_veranstaltung AS t4 ON t2.veranstaltung_id = t4.veranstaltung_id LEFT JOIN #__sportsmanager_saison AS t5 ON t4.saison_id = t5.saison_id WHERE t4.veranstaltung_id = " . $veranstaltungId . " - ORDER BY t4.veranstaltung_id, t1.spieltag, t1.zeitpunkt; + ORDER BY t4.veranstaltung_id, t1.spieltag, t1.spiel_nr, t1.zeitpunkt; "; $rows = loadObjectList($db, $query); @@ -10512,7 +10550,7 @@ function adminBegegnungenExportForm(): void } $dateiname = "Spielberichte " . $veranstaltung->bezeichnung; } - + $dateiname .= ".csv"; $dateiname = bereinigterDateiname($dateiname); ob_end_clean(); // Wegen UTF-8-Zeichen, die in der ausgabe vorhanden sind @@ -10520,12 +10558,12 @@ function adminBegegnungenExportForm(): void Header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT'); Header('Content-Disposition: attachment; filename="' . $dateiname . '"'); Header("Pragma: no-cache"); - + $data = ""; $trennzeichen = ";"; $spalte = 0; $header = ""; - + foreach ($rows[0] as $field => $value) { if ($spalte != 0) { $header .= $trennzeichen; @@ -10545,9 +10583,9 @@ function adminBegegnungenExportForm(): void } $data .= trim($line) . "\n"; } - + echo $header . "\n" . utf8_decode($data); - + die(); } diff --git a/src/structure/components/com_sportsmanager/database/update.php b/src/structure/components/com_sportsmanager/database/update.php index 736cb95..d8c3982 100644 --- a/src/structure/components/com_sportsmanager/database/update.php +++ b/src/structure/components/com_sportsmanager/database/update.php @@ -5378,6 +5378,21 @@ function updateDatabase(): void } } + if ($datenbank_version < 111) { + + $query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'verbands_kuerzel', wert = 'tbe.';"; + $db->setQuery( $query ); + if (!$db->execute()) { die($db->stderr(true)); } + + $query = "UPDATE #__sportsmanager_einstellungen" + . "\n SET wert = '111'" + . "\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.html.php b/src/structure/components/com_sportsmanager/views/sportsmanager/view.html.php index 3cb6ad7..0934f9a 100644 --- a/src/structure/components/com_sportsmanager/views/sportsmanager/view.html.php +++ b/src/structure/components/com_sportsmanager/views/sportsmanager/view.html.php @@ -1087,11 +1087,24 @@ static function begegnungenAnzeigen($veranstaltung, $modus, $rows, $zeitfenster, $monat = "..."; $spieltag = 0; $spielort_name = ""; + $Spieltagname = ""; + $Spieltagname_Buffer = ""; foreach ($rows as $row) { $ergebnis_vorhanden = $row->heim_punkte != null || $row->gast_punkte != null; if ($zeitfenster == 0 && $veranstaltung != null) { if ($veranstaltung->unterteilung == 0 || $veranstaltung->unterteilung == 1) { - if ($spieltag != $row->spieltag || $spielort_name != $row->spielort_name) { + + if ($row->spieltag > 999) + $Spieltagname = htmlentities_utf8(Rundenbezeichnung($row->spieltag, $veranstaltung->unterteilung == 0, true)); + else if ($veranstaltung->unterteilung == 1) + $Spieltagname = "Runde " . $row->spieltag; + else + $Spieltagname = "Spieltag " . $row->spieltag; + + if ($row->spieltag < 999 && $veranstaltung->spieltag_titel_zeigen == 1 && $row->spieltag_titel != "") + $Spieltagname .= " - " . $row->spieltag_titel; + + if ($Spieltagname_Buffer != $Spieltagname || $spielort_name != $row->spielort_name) { $spieltag = $row->spieltag; $spielort_name = $row->spielort_name; ?> @@ -1105,13 +1118,14 @@ static function begegnungenAnzeigen($veranstaltung, $modus, $rows, $zeitfenster, echo htmlentities_utf8(Rundenbezeichnung($spieltag, $veranstaltung->unterteilung == 0)); if (!empty($row->spieltag_titel) && !empty($veranstaltung->spieltag_titel_zeigen)) echo "   -   " . $row->spieltag_titel; - if (!empty($spielort_name)) - echo "
" . htmlentities_utf8($spielort_name); + if (!empty($spielort_name)) + echo "
" . htmlentities_utf8($spielort_name); ?> zeitpunkt, 0, 7)) { // Freundschaftsspiel $monat = substr($row->zeitpunkt, 0, 7); if (strlen($monat) == 0) 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 1308da8..f210610 100644 --- a/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php +++ b/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php @@ -646,6 +646,18 @@ class HTML_sportsmanager_admin
+ + + +
+ + + "/> +