diff --git a/src/structure/components/com_sportsmanager/admin.php b/src/structure/components/com_sportsmanager/admin.php index c783808..704be08 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'"; @@ -4628,11 +4637,13 @@ function adminKategorien(): void $kategorien[6] = array(); $kategorien[7] = array(); + $anzahl = array(0,50,100,50,50,100,50,50); + foreach ($rows as $row) $kategorien[$row->typ][$row->nummer] = $row->bezeichnung; for ($typ = 1; $typ <= 7; $typ++) { - for ($nummer = 1; $nummer <= 50; $nummer++) { + for ($nummer = 1; $nummer <= $anzahl[$typ]; $nummer++) { $bezeichnung = $db->escape($jInput->get('bezeichnung_' . $typ . '_' . $nummer, '', 'RAW')); if (empty($bezeichnung)) { if (isset($kategorien[$typ][$nummer])) { @@ -7813,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); } @@ -7837,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'); @@ -7879,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)); } @@ -7915,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") . "," @@ -9716,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 @@ -9749,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) @@ -9768,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]; @@ -9801,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); } @@ -10419,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, @@ -10430,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); @@ -10510,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 @@ -10518,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; @@ -10543,9 +10583,9 @@ function adminBegegnungenExportForm(): void } $data .= trim($line) . "\n"; } - + echo $header . "\n" . utf8_decode($data); - + die(); } @@ -10590,11 +10630,11 @@ function adminEditTurnier(): void HTML_sportsmanager_admin::adminEditTurnier($row, $veranstalter, $saisons, $vorlage, $users, $berechtigt_fuer_turnier, $kategorien); } -#[NoReturn] function adminSaveTurnier(): void +function adminSaveTurnier(): void { $db = getDatabase(); $jInput = Factory::getContainer()->get(SiteApplication::class)->input; - + $Fehlertext = ""; if (!benutzerZugriff("turniere_aendern")) keinZugriff(); @@ -10608,7 +10648,9 @@ function adminEditTurnier(): void $saison_id = $jInput->get('saison_id', 0, 'INT'); $turnierort = $db->escape(trim($jInput->get('turnierort', '', 'RAW'))); $erster_tag = normalisiertesDatum(sprintf("%04d-%02d-%02d", $jInput->get('erster_tag_jahr', 2000, 'INT'), $jInput->get('erster_tag_monat', 1, 'INT'), $jInput->get('erster_tag_tag', 1, 'INT'))); - $mehrtaegig = $jInput->get('mehrtaegig', 0, 'INT'); + if (!validateDate($erster_tag,'Y-m-d')) + $Fehlertext = "Bitte gültiges Datum eingeben"; + $mehrtaegig = $jInput->get('mehrtaegig', 0, 'INT'); $reminder_count = $jInput->get('reminder_count', 0, 'INT'); if (!$mehrtaegig) $letzter_tag = $erster_tag; @@ -10623,6 +10665,11 @@ function adminEditTurnier(): void $berechtigt_fuer_turnier_user_ids[] = $berechtigt_user_id; } + if ($Fehlertext != ""){ + echo "$Fehlertext\n"; + return; + } + if ($vorlage) { $vorlage_id = $id; $id = 0; @@ -10664,6 +10711,15 @@ function adminEditTurnier(): void . "\n reminder_count = '$reminder_count'" . "\n WHERE turnier_id = $id"; $db->setQuery($query); + if (!$db->execute()) { + die($db->stderr(true)); + } + + if ($letzter_tag == $erster_tag){ + $query = "UPDATE #__sportsmanager_turnierdisziplin" + . "\n SET beginn = CONCAT('$erster_tag', ' ', TIME(beginn))"; + } + $db->setQuery($query); if (!$db->execute()) { die($db->stderr(true)); } @@ -11948,6 +12004,7 @@ function adminImportTurnierdisziplinMeldungenSpieleForm(): void if ($matchingNodes->length != 1) { redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $id, "Datei darf nur eine Disziplin enthalten."); } + $turniersystemVorrunde = $matchingNodes->item(0)->getAttribute("system"); } if ($disziplinZusatzrunde != null) { @@ -11958,6 +12015,7 @@ function adminImportTurnierdisziplinMeldungenSpieleForm(): void if ($matchingNodes->length != 1) { redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $id, "Datei darf nur eine Disziplin enthalten."); } + $turniersystemZusatzrunde = $matchingNodes->item(0)->getAttribute("system"); } if ($disziplinZusatzrunde2 != null) { @@ -11968,6 +12026,7 @@ function adminImportTurnierdisziplinMeldungenSpieleForm(): void if ($matchingNodes->length != 1) { redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $id, "Datei darf nur eine Disziplin enthalten."); } + $turniersystemZusatzrunde2 = $matchingNodes->item(0)->getAttribute("system"); } $matchingNodes = $disziplin->getElementsByTagName("disziplin"); @@ -11977,6 +12036,7 @@ function adminImportTurnierdisziplinMeldungenSpieleForm(): void if ($matchingNodes->length != 1) { redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $id, "Die uebergebene Datei darf nur eine Disziplin enthalten."); } + $turniersystemHauptrunde = $matchingNodes->item(0)->getAttribute("system"); // Spieler-Ids über Spielerliste ermitteln $meldungenSpieler = array(); @@ -12257,7 +12317,7 @@ function adminImportTurnierdisziplinMeldungenSpieleForm(): void // Spiele speichern $totalVorrunde = 0; - if ($disziplinVorrunde != null) { + if ($disziplinVorrunde != null && $turniersystemVorrunde != "Monster-DYP") { $matchingNodes = $disziplinVorrunde->getElementsByTagName("runde"); if ($matchingNodes != null) { $totalVorrunde = $matchingNodes->length; @@ -12305,7 +12365,7 @@ function adminImportTurnierdisziplinMeldungenSpieleForm(): void $query = "INSERT INTO #__sportsmanager_turnierspiel (turnierdisziplin_id, spiel_nummer, runde, rundenstufe, heim_meldung_id, gast_meldung_id, ergebnis, ergebnis_detailliert)" . "\n VALUES ('$id', '$spielNr', '$rundenNr', '10', '$heimId', '$gastId', '$ergebnis', " . (empty($ergebnis_detailliert) ? "null" : "'$ergebnis_detailliert'") . ");"; - $db->setQuery($query); + $db->setQuery($query); if (!$db->execute()) { die($db->stderr(true)); } @@ -12332,7 +12392,7 @@ function adminImportTurnierdisziplinMeldungenSpieleForm(): void } // Spiele speichern - if ($disziplinZusatzrunde != null) { + if ($disziplinZusatzrunde != null && $turniersystemZusatzrunde != "Monster-DYP") { $matchingNodes = $disziplinZusatzrunde->getElementsByTagName("runde"); if ($matchingNodes != null) { $totalZusatzrunde = $matchingNodes->length; @@ -12406,7 +12466,7 @@ function adminImportTurnierdisziplinMeldungenSpieleForm(): void } // Spiele speichern - if ($disziplinZusatzrunde2 != null) { + if ($disziplinZusatzrunde2 != null && $turniersystemZusatzrunde2 != "Monster-DYP") { $matchingNodes = $disziplinZusatzrunde2->getElementsByTagName("runde"); if ($matchingNodes != null) { $totalZusatzrunde2 = $matchingNodes->length; @@ -12478,77 +12538,79 @@ function adminImportTurnierdisziplinMeldungenSpieleForm(): void } } } + + if ($turniersystemHauptrunde != "Monster-DYP") { + $matchingNodes = $disziplin->getElementsByTagName("runde"); + if ($matchingNodes != null) { + $total = $matchingNodes->length; + $ergebnis_saetze_maximum = 0; + for ($i = 0; $i < $total; $i++) { + $currNode = $matchingNodes->item($i); + $rundenNr = $currNode->getAttribute("no"); - $matchingNodes = $disziplin->getElementsByTagName("runde"); - if ($matchingNodes != null) { - $total = $matchingNodes->length; - $ergebnis_saetze_maximum = 0; - for ($i = 0; $i < $total; $i++) { - $currNode = $matchingNodes->item($i); - $rundenNr = $currNode->getAttribute("no"); + $spielNodes = $currNode->getElementsByTagName("spiel"); + foreach ($spielNodes as $spiel) { + $heim = $spiel->getAttribute("heim"); + $gast = $spiel->getAttribute("gast"); - $spielNodes = $currNode->getElementsByTagName("spiel"); - foreach ($spielNodes as $spiel) { - $heim = $spiel->getAttribute("heim"); - $gast = $spiel->getAttribute("gast"); + $heimGewonneneSaetze = 0; + $gastGewonneneSaetze = 0; + $ergebnis_detailliert = ""; + $ergebnis_saetze = 0; + $satzNodes = $spiel->getElementsByTagName("satz"); + foreach ($satzNodes as $satz) { + $heimPunkte = $satz->getAttribute("heim"); + $gastPunkte = $satz->getAttribute("gast"); + if ($heimPunkte > $gastPunkte) + $heimGewonneneSaetze++; + else if ($heimPunkte < $gastPunkte) + $gastGewonneneSaetze++; + if ($heimPunkte > 1 || $gastPunkte > 1) { + if (!empty($ergebnis_detailliert)) + $ergebnis_detailliert .= " "; + $ergebnis_detailliert .= $heimPunkte . ":" . $gastPunkte; + $ergebnis_saetze++; + } + } + if ($ergebnis_saetze > $ergebnis_saetze_maximum) + $ergebnis_saetze_maximum = $ergebnis_saetze; - $heimGewonneneSaetze = 0; - $gastGewonneneSaetze = 0; - $ergebnis_detailliert = ""; - $ergebnis_saetze = 0; - $satzNodes = $spiel->getElementsByTagName("satz"); - foreach ($satzNodes as $satz) { - $heimPunkte = $satz->getAttribute("heim"); - $gastPunkte = $satz->getAttribute("gast"); - if ($heimPunkte > $gastPunkte) - $heimGewonneneSaetze++; - else if ($heimPunkte < $gastPunkte) - $gastGewonneneSaetze++; - if ($heimPunkte > 1 || $gastPunkte > 1) { - if (!empty($ergebnis_detailliert)) - $ergebnis_detailliert .= " "; - $ergebnis_detailliert .= $heimPunkte . ":" . $gastPunkte; - $ergebnis_saetze++; - } - } - if ($ergebnis_saetze > $ergebnis_saetze_maximum) - $ergebnis_saetze_maximum = $ergebnis_saetze; + $heimId = $meldungenIds[$heim]; + $gastId = $meldungenIds[$gast]; + $spielNr = $totalVorrunde + $i + 1; + if ($heimGewonneneSaetze > $gastGewonneneSaetze) + $ergebnis = 1; + else if ($heimGewonneneSaetze < $gastGewonneneSaetze) + $ergebnis = 2; + else + $ergebnis = 0; - $heimId = $meldungenIds[$heim]; - $gastId = $meldungenIds[$gast]; - $spielNr = $totalVorrunde + $i + 1; - if ($heimGewonneneSaetze > $gastGewonneneSaetze) - $ergebnis = 1; - else if ($heimGewonneneSaetze < $gastGewonneneSaetze) - $ergebnis = 2; - else - $ergebnis = 0; - - $query = "INSERT INTO #__sportsmanager_turnierspiel (turnierdisziplin_id, spiel_nummer, runde, rundenstufe, heim_meldung_id, gast_meldung_id, ergebnis, ergebnis_detailliert)" - . "\n VALUES ('$id', '$spielNr', '$rundenNr', '1', '$heimId', '$gastId', '$ergebnis', " . (empty($ergebnis_detailliert) ? "null" : "'$ergebnis_detailliert'") . ");"; - $db->setQuery($query); - if (!$db->execute()) { - die($db->stderr(true)); - } - } - } - if ($ergebnis_saetze_maximum > 0) { - $query = "INSERT #__sportsmanager_turnier_rundenstufe" - . "\n SET bezeichnung = ''," - . "\n typ = null," - . "\n runden = null," - . "\n tabellenwertung = null," - . "\n saetze = " . "'$ergebnis_saetze_maximum'" . "," - . "\n tore = null," - . "\n spielfelder = null," - . "\n turnierdisziplin_id = '$id'," - . "\n rundenstufe = '1'"; - $db->setQuery($query); - if (!$db->execute()) { - die($db->stderr(true)); - } - } - } + $query = "INSERT INTO #__sportsmanager_turnierspiel (turnierdisziplin_id, spiel_nummer, runde, rundenstufe, heim_meldung_id, gast_meldung_id, ergebnis, ergebnis_detailliert)" + . "\n VALUES ('$id', '$spielNr', '$rundenNr', '1', '$heimId', '$gastId', '$ergebnis', " . (empty($ergebnis_detailliert) ? "null" : "'$ergebnis_detailliert'") . ");"; + $db->setQuery($query); + if (!$db->execute()) { + die($db->stderr(true)); + } + } + } + if ($ergebnis_saetze_maximum > 0) { + $query = "INSERT #__sportsmanager_turnier_rundenstufe" + . "\n SET bezeichnung = ''," + . "\n typ = null," + . "\n runden = null," + . "\n tabellenwertung = null," + . "\n saetze = " . "'$ergebnis_saetze_maximum'" . "," + . "\n tore = null," + . "\n spielfelder = null," + . "\n turnierdisziplin_id = '$id'," + . "\n rundenstufe = '1'"; + $db->setQuery($query); + if (!$db->execute()) { + die($db->stderr(true)); + } + } + } + } } } } diff --git a/src/structure/components/com_sportsmanager/database/update.php b/src/structure/components/com_sportsmanager/database/update.php index 736cb95..60dae7a 100644 --- a/src/structure/components/com_sportsmanager/database/update.php +++ b/src/structure/components/com_sportsmanager/database/update.php @@ -5364,7 +5364,7 @@ function updateDatabase(): void die($db->stderr(true)); } } - + if ($datenbank_version < 110) { $aktueller_verein_aktualisieren = true; @@ -5378,6 +5378,42 @@ 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 ($datenbank_version < 112) { + + // Korrektur Startuhrzeit in sportsmanager_turnierdisziplin bei eintägigen Veranstaltungen + $query = "UPDATE #__sportsmanager_turnierdisziplin td" + . "\n JOIN #__sportsmanager_turnier t ON td.turnier_id = t.turnier_id" + . "\n SET td.beginn = CONCAT(t.erster_tag, ' ', TIME(td.beginn))" + . "\n WHERE t.erster_tag = t.letzter_tag;"; + $db->setQuery($query); + if (!$db->execute()) { + die($db->stderr(true)); + } + + $query = "UPDATE #__sportsmanager_einstellungen" + . "\n SET wert = '112'" + . "\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 8c72058..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) @@ -1311,8 +1325,11 @@ static function turnierbaumAnzeigen($veranstaltung,$begegnungen): void $oben = $hoehe * pow(2, $runde) * $spiel + $offset; $links = ($breite + $abstand) * $runde; echo "\n
"; echo ""; 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 ab99e95..a3e0b14 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
+ + + +
+ + + "/> +
@@ -6034,11 +6047,11 @@ class HTML_sportsmanager_admin
- +
- +
@@ -6076,7 +6089,7 @@ class HTML_sportsmanager_admin reihenfolge == $i ? " selected" : "") : "") . ">" . $i . ""; } ?> @@ -6192,7 +6205,7 @@ class HTML_sportsmanager_admin :
-
- - kategorie == $i ? " selected" : "") : "") . ">" . $i . (isset($kategorien[$i]) ? htmlentities_utf8(" " . $kategorien[$i]) : "") . ""; } ?> @@ -7177,7 +7190,7 @@ class HTML_sportsmanager_admin - unterteilung == 0 || $veranstaltung->unterteilung == 1) { - ?> - - - - - + + + @@ -8886,37 +8890,61 @@ class HTML_sportsmanager_admin heim_punkte != null || $row->gast_punkte != null; - ?> + + if ($veranstaltung->unterteilung == 0 || $veranstaltung->unterteilung == 1) { + + 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){ + ?> + + + + zeitpunkt, 0, 7)) { + $monat = substr($row->zeitpunkt, 0, 7); + if (strlen($monat) == 0) + $monatsbezeichnung = "N/A"; + else { + $monatsname = array(Text::_('COM_SPORTSMANAGER_JANUARY'), Text::_('COM_SPORTSMANAGER_FEBRUARY'), Text::_('COM_SPORTSMANAGER_MARCH'), Text::_('COM_SPORTSMANAGER_APRIL'), Text::_('COM_SPORTSMANAGER_MAY'), Text::_('COM_SPORTSMANAGER_JUNE'), Text::_('COM_SPORTSMANAGER_JULY'), Text::_('COM_SPORTSMANAGER_AUGUST'), Text::_('COM_SPORTSMANAGER_SEPTEMBER'), Text::_('COM_SPORTSMANAGER_OCTOBER'), Text::_('COM_SPORTSMANAGER_NOVEMBER'), Text::_('COM_SPORTSMANAGER_DECEMBER')); + $monatsbezeichnung = $monatsname[substr($monat, 5, 2) - 1] . " " . substr($monat, 0, 4); + } + ?> + + + + + + + + + - unterteilung == 0 || $veranstaltung->unterteilung == 1) { - ?> - - + "; + else + echo ""; ?> + + + + + + + @@ -9210,7 +9279,8 @@ class HTML_sportsmanager_admin + onclick="if (document.adminForm.heim_team_id.value === document.adminForm.gast_team_id.value) + { alert(''); return false; } return true;"/> @@ -10069,7 +10139,7 @@ class HTML_sportsmanager_admin " method="post" name="adminForm" id="adminForm">
-
- unterteilung == 0 ? Text::_('COM_SPORTSMANAGER_GAMEDAY') : Text::_('COM_SPORTSMANAGER_ROUND'); ?> - punktetyp == 0 ? Text::_('COM_SPORTSMANAGER_GOALS') : Text::_('COM_SPORTSMANAGER_SETS'); ?>
+ +
+ +
- - spieltag_titel_zeigen == 0){ - if ($spieltag != $row->spieltag) { - $spieltag = $row->spieltag; - echo htmlentities_utf8(Rundenbezeichnung($spieltag, $veranstaltung->unterteilung == 0, true)); - } - } - if ($veranstaltung->spieltag_titel_zeigen == 1){ - if ($spieltag != $row->spieltag_titel) { - $spieltag = $row->spieltag_titel; - echo htmlentities_utf8($spieltag); - } - } - ?> - @@ -8990,7 +9018,7 @@ class HTML_sportsmanager_admin : - - - - -
+ + + + + + + + + + +
+ + + spiel_nr = "";} ?> + +
-
+
- +
"; + else + echo ""; + ?> + + + + @@ -10239,6 +10332,16 @@ class HTML_sportsmanager_admin
+ + + + + + + + + + +
+ @@ -11388,11 +11491,11 @@ class HTML_sportsmanager_admin
- +
- +