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
| + + | ++ "/> + | +