Änderungen für issue #52, issue #131 und issue #143

This commit is contained in:
Jürgen Meyer
2025-08-15 13:54:04 +02:00
parent 18d346a4e9
commit 3f816235c8
7 changed files with 1485 additions and 152 deletions
@@ -801,6 +801,7 @@ function adminEinstellungen(): void
$ansprechpartner_exportieren = $jInput->get('ansprechpartner_exportieren', 0, 'INT'); $ansprechpartner_exportieren = $jInput->get('ansprechpartner_exportieren', 0, 'INT');
$spielerliste_elo = $jInput->get('spielerliste_elo', 0, 'INT'); $spielerliste_elo = $jInput->get('spielerliste_elo', 0, 'INT');
$lizenz_anzeigen = $jInput->get('lizenz_anzeigen', 0, 'INT'); $lizenz_anzeigen = $jInput->get('lizenz_anzeigen', 0, 'INT');
$turnierbaum_zeigen = $jInput->get('turnierbaum_zeigen', 0, 'INT');
$termine_beantragen = $jInput->get('termine_beantragen', 0, 'INT'); $termine_beantragen = $jInput->get('termine_beantragen', 0, 'INT');
$spielerimport_persoenliche_daten_vorauswahl = $jInput->get('spielerimport_persoenliche_daten_vorauswahl', 0, 'INT'); $spielerimport_persoenliche_daten_vorauswahl = $jInput->get('spielerimport_persoenliche_daten_vorauswahl', 0, 'INT');
@@ -843,6 +844,14 @@ function adminEinstellungen(): void
die($db->stderr(true)); die($db->stderr(true));
} }
$query = "REPLACE #__sportsmanager_einstellungen"
. "\n SET name = 'turnierbaum_zeigen'"
. ", wert = '$turnierbaum_zeigen'";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$query = "REPLACE #__sportsmanager_einstellungen" $query = "REPLACE #__sportsmanager_einstellungen"
. "\n SET name = 'ansprechpartner_ausblenden'" . "\n SET name = 'ansprechpartner_ausblenden'"
. ", wert = '$ansprechpartner_ausblenden'"; . ", wert = '$ansprechpartner_ausblenden'";
@@ -7007,6 +7016,7 @@ function adminEditVeranstaltung(): void
$tabellenwertung = $jInput->get('tabellenwertung', 0, 'INT'); $tabellenwertung = $jInput->get('tabellenwertung', 0, 'INT');
$direktervergleich = $jInput->get('direktervergleich', 0, 'INT'); $direktervergleich = $jInput->get('direktervergleich', 0, 'INT');
$unterteilung = $jInput->get('unterteilung', 0, 'INT'); $unterteilung = $jInput->get('unterteilung', 0, 'INT');
$spieltag_titel_zeigen = $jInput->get('spieltag_titel_zeigen', 0, 'INT');
$elo_wertung = $jInput->get('elo_wertung', 0, 'INT'); $elo_wertung = $jInput->get('elo_wertung', 0, 'INT');
$logo_url = $db->escape(trim($jInput->get('logo_url', '', 'RAW'))); $logo_url = $db->escape(trim($jInput->get('logo_url', '', 'RAW')));
$ticker_logo_url = $db->escape(trim($jInput->get('ticker_logo_url', '', 'RAW'))); $ticker_logo_url = $db->escape(trim($jInput->get('ticker_logo_url', '', 'RAW')));
@@ -7025,8 +7035,8 @@ function adminEditVeranstaltung(): void
$elo_aktualisieren = false; $elo_aktualisieren = false;
$spielerstatistik_aktualisieren = false; $spielerstatistik_aktualisieren = false;
if ($id == 0) { if ($id == 0) {
$query = "INSERT INTO #__sportsmanager_veranstaltung (veranstalter_id, saison_id, bezeichnung, erster_tag " . ($letzter_tag != null ? ", letzter_tag" : "") . ", modus_id, verschieberegel_id, tabellenwertung, direktervergleich, unterteilung, elo_wertung, logo_url, ticker_logo_url, status, reihenfolge, kategorie) VALUES $query = "INSERT INTO #__sportsmanager_veranstaltung (veranstalter_id, saison_id, bezeichnung, erster_tag " . ($letzter_tag != null ? ", letzter_tag" : "") . ", 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', " : "") . "'$modus_id', '$verschieberegel_id', '$tabellenwertung', '$direktervergleich', '$unterteilung', '$elo_wertung', '$logo_url', '$ticker_logo_url', '$status', '$reihenfolge', '$kategorie');"; ('$veranstalterId', '$saison_id', '$bezeichnung', '$erster_tag', " . ($letzter_tag != null ? "'$letzter_tag', " : "") . "'$modus_id', '$verschieberegel_id', '$tabellenwertung', '$direktervergleich', '$unterteilung', '$spieltag_titel_zeigen', '$elo_wertung', '$logo_url', '$ticker_logo_url', '$status', '$reihenfolge', '$kategorie');";
$db->setQuery($query); $db->setQuery($query);
if (!$db->execute()) { if (!$db->execute()) {
die($db->stderr(true)); die($db->stderr(true));
@@ -7055,6 +7065,7 @@ function adminEditVeranstaltung(): void
. "\n tabellenwertung = '$tabellenwertung'," . "\n tabellenwertung = '$tabellenwertung',"
. "\n direktervergleich = '$direktervergleich'," . "\n direktervergleich = '$direktervergleich',"
. "\n unterteilung = '$unterteilung'," . "\n unterteilung = '$unterteilung',"
. "\n spieltag_titel_zeigen = '$spieltag_titel_zeigen',"
. "\n elo_wertung = '$elo_wertung'," . "\n elo_wertung = '$elo_wertung',"
. "\n logo_url = '$logo_url'," . "\n logo_url = '$logo_url',"
. "\n ticker_logo_url = '$ticker_logo_url'," . "\n ticker_logo_url = '$ticker_logo_url',"
@@ -7372,6 +7383,7 @@ function adminEditMannschaft(): void
$beschraenkter_zugriff_veranstaltungen_ids = $beschraenkter_zugriff_veranstaltungen ? benutzerVeranstaltungIdsModerator() : null; $beschraenkter_zugriff_veranstaltungen_ids = $beschraenkter_zugriff_veranstaltungen ? benutzerVeranstaltungIdsModerator() : null;
$teamname = $db->escape(trim($jInput->get('teamname', '', 'RAW'))); $teamname = $db->escape(trim($jInput->get('teamname', '', 'RAW')));
$teamname_kurz = $db->escape(trim($jInput->get('teamname_kurz', '', 'RAW')));
$platz = $jInput->get('platz', 0, 'INT'); $platz = $jInput->get('platz', 0, 'INT');
$verein_id = $jInput->get('verein_id', 0, 'INT'); $verein_id = $jInput->get('verein_id', 0, 'INT');
$tischtyp = $db->escape(trim($jInput->get('tischtyp', '', 'RAW'))); $tischtyp = $db->escape(trim($jInput->get('tischtyp', '', 'RAW')));
@@ -7409,8 +7421,9 @@ function adminEditMannschaft(): void
$veranstaltung = $rows[0]; $veranstaltung = $rows[0];
if ($id == 0) { if ($id == 0) {
$query = "INSERT INTO #__sportsmanager_team (verein_id, veranstaltung_id, teamname, tischtyp, tischeigenschaften, heimspiel_wochentag, heimspiel_uhrzeit, heimspielort_id, nichtraucherschutz, zusatzpunkte" . ($veranstaltung->tabellenwertung == -2 ? ", platz" : "") . ", pin)" $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', '$tischtyp', '$tischeigenschaften', '$heimspiel_wochentag', '$heimspiel_uhrzeit', " . ($heimspielort_id != 0 ? "'$heimspielort_id'" : "NULL") . ", '$nichtraucherschutz', '$zusatzpunkte'" . ($veranstaltung->tabellenwertung == -2 ? ($platz != 0 ? ", '$platz'" : ", NULL") : "") . ", '$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');";
echo $query;
$db->setQuery($query); $db->setQuery($query);
if (!$db->execute()) { if (!$db->execute()) {
die($db->stderr(true)); die($db->stderr(true));
@@ -7436,6 +7449,7 @@ function adminEditMannschaft(): void
$query = "UPDATE #__sportsmanager_team" $query = "UPDATE #__sportsmanager_team"
. "\n SET verein_id = " . ($verein_id != 0 ? "'$verein_id'" : "NULL") . "," . "\n SET verein_id = " . ($verein_id != 0 ? "'$verein_id'" : "NULL") . ","
. "\n teamname = '$teamname'," . "\n teamname = '$teamname',"
. "\n teamname_kurz = '$teamname_kurz',"
. "\n tischtyp = '$tischtyp'," . "\n tischtyp = '$tischtyp',"
. "\n tischeigenschaften = '$tischeigenschaften'," . "\n tischeigenschaften = '$tischeigenschaften',"
. "\n heimspiel_wochentag = '$heimspiel_wochentag'," . "\n heimspiel_wochentag = '$heimspiel_wochentag',"
@@ -7687,6 +7701,7 @@ function mannschaftsgruppe_verknuepfen($quelle_team_id, $ziel_team_id, $mannscha
. "\n SET teamgruppe_id = '$teamgruppe_id'," . "\n SET teamgruppe_id = '$teamgruppe_id',"
. "\n verein_id = " . ($team->verein_id == null ? "NULL" : "'$team->verein_id'") . "," . "\n verein_id = " . ($team->verein_id == null ? "NULL" : "'$team->verein_id'") . ","
. "\n teamname = '" . $db->escape($team->teamname) . "'," . "\n teamname = '" . $db->escape($team->teamname) . "',"
. "\n teamname_kurz = '" . $db->escape($team->teamname_kurz) . "',"
. "\n tischtyp = '" . $db->escape($team->tischtyp) . "'," . "\n tischtyp = '" . $db->escape($team->tischtyp) . "',"
. "\n tischeigenschaften = '" . $db->escape($team->tischeigenschaften) . "'," . "\n tischeigenschaften = '" . $db->escape($team->tischeigenschaften) . "',"
. "\n heimspiel_wochentag = '" . $db->escape($team->heimspiel_wochentag) . "'," . "\n heimspiel_wochentag = '" . $db->escape($team->heimspiel_wochentag) . "',"
@@ -8941,7 +8956,7 @@ function adminBegegnungen(): void
. "\n LEFT JOIN #__sportsmanager_team AS t3 ON t1.gast_team_id = t3.team_id" . "\n LEFT JOIN #__sportsmanager_team AS t3 ON t1.gast_team_id = t3.team_id"
. "\n LEFT JOIN #__sportsmanager_unbestaetigtes_ergebnis AS t4 ON t1.begegnung_id = t4.begegnung_id" . "\n LEFT JOIN #__sportsmanager_unbestaetigtes_ergebnis AS t4 ON t1.begegnung_id = t4.begegnung_id"
. "\n WHERE t2.veranstaltung_id = $veranstaltungId" . "\n WHERE t2.veranstaltung_id = $veranstaltungId"
. "\n ORDER BY " . (($veranstaltung->unterteilung == 0 || $veranstaltung->unterteilung == 1) ? "t1.spieltag, " : "") . "t1.zeitpunkt, heim_name"; . "\n ORDER BY " . (($veranstaltung->unterteilung == 0 || $veranstaltung->unterteilung == 1) ? "t1.spieltag, t1.spiel_nr, " : "") . "t1.zeitpunkt, heim_name";
$db->setQuery($query); $db->setQuery($query);
if (!$db->execute()) { if (!$db->execute()) {
die($db->stderr(true)); die($db->stderr(true));
@@ -10795,6 +10810,7 @@ function adminBegegnungenGenerierenForm(): void
$Begegnung[$Zeile]['zeitpunkt'] = $zeitpunkt; $Begegnung[$Zeile]['zeitpunkt'] = $zeitpunkt;
$Begegnung[$Zeile]['heim_team_id'] = $heim_team_id; $Begegnung[$Zeile]['heim_team_id'] = $heim_team_id;
$Begegnung[$Zeile]['gast_team_id'] = $gast_team_id; $Begegnung[$Zeile]['gast_team_id'] = $gast_team_id;
$Begegnung[$Zeile]['spiel_nr'] = $spielnr;
$Zeile++; $Zeile++;
@@ -10822,6 +10838,7 @@ function adminBegegnungenGenerierenForm(): void
$Begegnung[$Zeile]['zeitpunkt'] = $zeitpunkt; $Begegnung[$Zeile]['zeitpunkt'] = $zeitpunkt;
$Begegnung[$Zeile]['heim_team_id'] = $heim_team_id; $Begegnung[$Zeile]['heim_team_id'] = $heim_team_id;
$Begegnung[$Zeile]['gast_team_id'] = $gast_team_id; $Begegnung[$Zeile]['gast_team_id'] = $gast_team_id;
$Begegnung[$Zeile]['spiel_nr'] = $spielnr;
$Zeile++; $Zeile++;
} }
@@ -10830,12 +10847,12 @@ function adminBegegnungenGenerierenForm(): void
if ($datumsangaben and $teams_ok and $spieltage_ok) { if ($datumsangaben and $teams_ok and $spieltage_ok) {
$Zeile = 1; $Zeile = 1;
$query = "INSERT INTO #__sportsmanager_begegnung (spieltag, zeitpunkt, heim_team_id, gast_team_id) VALUES "; $query = "INSERT INTO #__sportsmanager_begegnung (spieltag, spiel_nr, zeitpunkt, heim_team_id, gast_team_id) VALUES ";
foreach ($Begegnung as $value) { foreach ($Begegnung as $value) {
if ($Zeile > 1) { if ($Zeile > 1) {
$query .= ", "; $query .= ", ";
} }
$query .= "(" . $value['spieltag'] . "," . ($value['zeitpunkt'] != NULL ? "'" . $value['zeitpunkt'] . "'" : "NULL") . "," . $value['heim_team_id'] . "," . $value['gast_team_id'] . ") "; $query .= "(" . $value['spieltag'] . "," . $value['spiel_nr'] . "," . ($value['zeitpunkt'] != NULL ? "'" . $value['zeitpunkt'] . "'" : "NULL") . "," . $value['heim_team_id'] . "," . $value['gast_team_id'] . ") ";
$Zeile++; $Zeile++;
} }
$query .= ";"; $query .= ";";
@@ -10887,9 +10904,35 @@ function adminBegegnungenImportierenForm(): void
HTML_sportsmanager_admin::adminBegegnungenImportieren($veranstaltung); HTML_sportsmanager_admin::adminBegegnungenImportieren($veranstaltung);
} }
function vergleich($text1, $text2)
{
$suchen = ["_","-"," "];
$ersetzen = ["","",""];
$begriffe = explode(",", $text2);
foreach($begriffe as $begriff)
{
$text1 = strtolower(str_replace($suchen,$ersetzen,$text1));
$begriff = strtolower(str_replace($suchen,$ersetzen,$begriff));
if ($text1 == $begriff) return true;
}
return false;
}
function erstelleZeitpunkt($datum_jahr, $datum_kw, $heimspiel_wochentag, $heimspiel_uhrzeit)
{
if (!empty($datum_jahr) && !empty($datum_kw) && !empty($heimspiel_wochentag) && !empty($heimspiel_uhrzeit))
{
$ts = getdate(mondaykw($datum_kw, $datum_jahr, $heimspiel_wochentag - 1));
$zeitpunkt = sprintf("%04d-%02d-%02d %02d:%02d:%02d", $ts["year"], $ts["mon"], $ts["mday"],
floor($heimspiel_uhrzeit / 100), $heimspiel_uhrzeit % 100, 0);
return $zeitpunkt;
}
else
return false;
}
function adminBegegnungenImportieren(): void function adminBegegnungenImportieren(): void
{ {
//Jürgen Meyer 07.03.2025
$db = getDatabase(); $db = getDatabase();
global $_FILES; global $_FILES;
$jInput = Factory::getContainer()->get(SiteApplication::class)->input; $jInput = Factory::getContainer()->get(SiteApplication::class)->input;
@@ -10907,7 +10950,10 @@ function adminBegegnungenImportieren(): void
echo Text::_('COM_SPORTSMANAGER_IMPORT_GROUP_GAME2') . " <br><br>"; echo Text::_('COM_SPORTSMANAGER_IMPORT_GROUP_GAME2') . " <br><br>";
$query = "SELECT team_id, teamname FROM #__sportsmanager_team WHERE veranstaltung_id = " . $veranstaltungId . ";"; $query = "SELECT team_id, teamname, heimspiel_wochentag, heimspiel_uhrzeit"
. "\n FROM #__sportsmanager_team"
. "\n WHERE veranstaltung_id = " . $veranstaltungId . ";";
$db->setQuery($query); $db->setQuery($query);
if (!$db->execute()) { if (!$db->execute()) {
die($db->stderr(true)); die($db->stderr(true));
@@ -10917,7 +10963,9 @@ function adminBegegnungenImportieren(): void
$Mannschaften = null; $Mannschaften = null;
foreach ($rows as $value) { foreach ($rows as $value) {
$Mannschaften[$value->teamname] = $value->team_id; $Mannschaften[$value->teamname]['team_id'] = $value->team_id;
$Mannschaften[$value->teamname]['heimspiel_wochentag'] = $value->heimspiel_wochentag;
$Mannschaften[$value->teamname]['heimspiel_uhrzeit'] = $value->heimspiel_uhrzeit;
} }
if (empty($_FILES["daten"]["tmp_name"]) || !is_uploaded_file($_FILES["daten"]["tmp_name"])) { if (empty($_FILES["daten"]["tmp_name"]) || !is_uploaded_file($_FILES["daten"]["tmp_name"])) {
@@ -10946,26 +10994,53 @@ function adminBegegnungenImportieren(): void
$import_zeile = false; $import_zeile = false;
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) { while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
if ($Zeile == 1) { if ($Zeile == 1) {
$Titelzeile = array_flip($data); foreach($data as $spalte_nr => $spalte)
{
if (vergleich($spalte,"spieltagnr,spieltagnummer")) $Titelzeile['Spieltag_Nr'] = $spalte_nr;
if (vergleich($spalte,"spielstart,zeitpunkt")) $Titelzeile['Spielstart'] = $spalte_nr;
if (vergleich($spalte,"heim,heimteam,heimmannschaft")) $Titelzeile['Heim'] = $spalte_nr;
if (vergleich($spalte,"gast,gastteam,gastmannschaft")) $Titelzeile['Gast'] = $spalte_nr;
if (vergleich($spalte,"spielnr,spielnummer")) $Titelzeile['Spiel_Nr'] = $spalte_nr;
if (vergleich($spalte,"spieltagtitel")) $Titelzeile['Spieltag_Titel'] = $spalte_nr;
if (vergleich($spalte,"jahr,spieljahr")) $Titelzeile['Spieljahr'] = $spalte_nr;
if (vergleich($spalte,"kalenderwoche,woche,kw")) $Titelzeile['Kalenderwoche'] = $spalte_nr;
}
} else { } else {
$import_zeile = true; $import_zeile = true;
$bgcolor = "green"; $bgcolor = "green";
$Begegnung[$Zeile]['spieltag'] = $data[$Titelzeile['Spieltag_Nr']]; $Begegnung[$Zeile]['spieltag'] = $data[$Titelzeile['Spieltag_Nr']];
$Begegnung[$Zeile]['zeitpunkt'] = UhrzeitWandlerDE($data[$Titelzeile['Spielstart']]); $Begegnung[$Zeile]['zeitpunkt'] = UhrzeitWandlerDE($data[$Titelzeile['Spielstart']]);
$Begegnung[$Zeile]['heim_team_id'] = $Mannschaften[utf8_encode($data[$Titelzeile['Heim']])]; $Begegnung[$Zeile]['heim_team_id'] = $Mannschaften[$data[$Titelzeile['Heim']]]['team_id'];
$Begegnung[$Zeile]['gast_team_id'] = $Mannschaften[utf8_encode($data[$Titelzeile['Gast']])]; $Begegnung[$Zeile]['gast_team_id'] = $Mannschaften[$data[$Titelzeile['Gast']]]['team_id'];
if (isset($data[$Titelzeile['Spiel_Nr']])) $Begegnung[$Zeile]['spiel_nr'] = $data[$Titelzeile['Spiel_Nr']];
if (isset($data[$Titelzeile['Spieltag_Titel']])) $Begegnung[$Zeile]['spieltag_titel'] = $data[$Titelzeile['Spieltag_Titel']];
echo "<tr style='color: white;'>"; echo "<tr style='color: white;'>";
if ($Begegnung[$Zeile]['spieltag'] > 99 or $Begegnung[$Zeile]['spieltag'] < 1) { if ($Begegnung[$Zeile]['spieltag'] > 99 or $Begegnung[$Zeile]['spieltag'] < 1) {
$bgcolor = "red"; $bgcolor = "red";
$import = false; $import = false;
} }
echo "<td style='text-align: center; background-color:" . $bgcolor . "'>" . $data[$Titelzeile['Spieltag_Nr']] . "</td>"; echo "<td style='text-align: center; background-color:" . $bgcolor . "'>" . $data[$Titelzeile['Spieltag_Nr']] . "</td>";
if (empty($data[$Titelzeile['Spielstart']])
AND !empty($data[$Titelzeile['Spieljahr']])
AND !empty($data[$Titelzeile['Kalenderwoche']])
AND !empty($Mannschaften[$data[$Titelzeile['Heim']]]['heimspiel_wochentag'])
AND !empty($Mannschaften[$data[$Titelzeile['Heim']]]['heimspiel_uhrzeit']))
{
$data[$Titelzeile['Spielstart']] =
erstelleZeitpunkt($data[$Titelzeile['Spieljahr']], $data[$Titelzeile['Kalenderwoche']],
$Mannschaften[$data[$Titelzeile['Heim']]]['heimspiel_wochentag'],
$Mannschaften[$data[$Titelzeile['Heim']]]['heimspiel_uhrzeit']);
}
$Begegnung[$Zeile]['zeitpunkt'] = $data[$Titelzeile['Spielstart']];
if (!validateDate($Begegnung[$Zeile]['zeitpunkt'])) { if (!validateDate($Begegnung[$Zeile]['zeitpunkt'])) {
$bgcolor = "red"; $bgcolor = "red";
$import = false; $import = false;
} else { } else {
$bgcolor = "green"; $bgcolor = "green";
} }
echo "<td style='text-align: center; background-color:" . $bgcolor . "'>" . $data[$Titelzeile['Spielstart']] . "</td>"; echo "<td style='text-align: center; background-color:" . $bgcolor . "'>" . $data[$Titelzeile['Spielstart']] . "</td>";
if ($Begegnung[$Zeile]['heim_team_id'] == "") { if ($Begegnung[$Zeile]['heim_team_id'] == "") {
if ($data[$Titelzeile['Heim']] == "spielfrei") { if ($data[$Titelzeile['Heim']] == "spielfrei") {
@@ -10978,7 +11053,7 @@ function adminBegegnungenImportieren(): void
} else { } else {
$bgcolor = "green"; $bgcolor = "green";
} }
echo "<td style='text-align: center; background-color:" . $bgcolor . "'>" . utf8_encode($data[$Titelzeile['Heim']]) . "</td>"; echo "<td style='text-align: center; background-color:" . $bgcolor . "'>" . $data[$Titelzeile['Heim']] . "</td>";
if ($Begegnung[$Zeile]['gast_team_id'] == "") { if ($Begegnung[$Zeile]['gast_team_id'] == "") {
if ($data[$Titelzeile['Gast']] == "spielfrei") { if ($data[$Titelzeile['Gast']] == "spielfrei") {
$bgcolor = "orange"; $bgcolor = "orange";
@@ -10990,7 +11065,7 @@ function adminBegegnungenImportieren(): void
} else { } else {
$bgcolor = "green"; $bgcolor = "green";
} }
echo "<td style='text-align: center; background-color:" . $bgcolor . "'>" . utf8_encode($data[$Titelzeile['Gast']]) . "</td>"; echo "<td style='text-align: center; background-color:" . $bgcolor . "'>" . $data[$Titelzeile['Gast']] . "</td>";
echo "</tr>"; echo "</tr>";
} }
if (!$import_zeile) { if (!$import_zeile) {
@@ -11003,18 +11078,18 @@ function adminBegegnungenImportieren(): void
if ($import) { if ($import) {
$Zeile = 1; $Zeile = 1;
$query = "INSERT INTO #__sportsmanager_begegnung (spieltag, zeitpunkt, heim_team_id, gast_team_id) VALUES "; $query = "INSERT INTO #__sportsmanager_begegnung (spieltag, zeitpunkt, spieltag_titel, spiel_nr, heim_team_id, gast_team_id) VALUES ";
foreach ($Begegnung as $value) { foreach ($Begegnung as $value) {
if ($Zeile > 1) { if ($Zeile > 1) {
$query .= ", "; $query .= ", ";
} }
$query .= "(" . $value['spieltag'] . ",'" . $value['zeitpunkt'] . "'," . $value['heim_team_id'] . "," . $value['gast_team_id'] . ") "; $query .= "(" . $value['spieltag'] . ",'" . $value['zeitpunkt'] . "','" .
($value['spieltag_titel'] ?? "") . "', " . ($value['spiel_nr'] ?? "NULL") . " ," .
$value['heim_team_id'] . "," . $value['gast_team_id'] . ") ";
$Zeile++; $Zeile++;
} }
$query .= ";"; $query .= ";";
$db->setQuery($query); $db->setQuery($query);
if (!$db->execute()) { if (!$db->execute()) {
die($db->stderr(true)); die($db->stderr(true));
} else { } else {
@@ -11188,6 +11263,493 @@ function adminBegegnungenRundeErzeugenForm(): void
redirectSportsManagerURL('&task=admin_begegnungen&veranstaltungid=' . $veranstaltungId); redirectSportsManagerURL('&task=admin_begegnungen&veranstaltungid=' . $veranstaltungId);
} }
function getAuswahlSpieltagtitel()
{
$db = getDatabase();
$query = "SELECT spieltag_titel FROM #__sportsmanager_begegnung"
. "\n WHERE spieltag_titel <> ''"
. "\n GROUP BY spieltag_titel ORDER BY spieltag_titel;";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
return $db->loadObjectList();
}
function adminBegegnungenPokalrundeAuslosenForm(): void
{
$db = getDatabase();
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
$veranstaltungId = $jInput->get('veranstaltungid', 0, 'INT');
if ($veranstaltungId == 0) die("Missing id!");
if (!benutzerZugriff("mannschaftswettbewerb_aendern") && !benutzerVeranstaltungModerator($veranstaltungId))
keinZugriff(true);
$query = "SELECT * FROM #__sportsmanager_veranstaltung WHERE veranstaltung_id = $veranstaltungId";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$rows = $db->loadObjectList();
if (count($rows) < 1) die("Wrong id!");
$veranstaltung = $rows[0];
$query = "SELECT COUNT(teamname)"
. "\n FROM #__sportsmanager_team"
. "\n WHERE veranstaltung_id = $veranstaltungId"
. "\n ORDER BY teamname";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$anzahlteams = $db->loadResult();
$veranstaltung->letzteRunde = getAnzahlRunden($anzahlteams);
$query = "SELECT t1.spieltag AS Runden_Nr
FROM #__sportsmanager_begegnung AS t1
LEFT JOIN #__sportsmanager_team AS t2 ON t1.heim_team_id = t2.team_id
LEFT JOIN #__sportsmanager_team AS t3 ON t1.gast_team_id = t3.team_id
LEFT JOIN #__sportsmanager_veranstaltung AS t4 ON t2.veranstaltung_id = t4.veranstaltung_id
WHERE t4.veranstaltung_id = ".$veranstaltungId."
GROUP BY t1.spieltag
ORDER BY t1.spieltag DESC LIMIT 1;";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$Runde = $db->loadObjectList();
if (!isset($Runde[0]))
$veranstaltung->naechsteRunde = 1;
else
$veranstaltung->naechsteRunde = $Runde[0]->Runden_Nr + 1;
$veranstaltung->titelVorschlag = getRundenTitel(pow(2, $veranstaltung->letzteRunde - $veranstaltung->naechsteRunde) * 2);
// Spieltage ermitteln, die noch nicht abgeschlossen sind
$query = "SELECT COUNT(DISTINCT spieltag) AS Anzahl"
. "\n FROM #__sportsmanager_begegnung"
. "\n LEFT JOIN #__sportsmanager_unbestaetigtes_ergebnis USING (begegnung_id)"
. "\n INNER JOIN #__sportsmanager_team ON heim_team_id = team_id"
. "\n WHERE veranstaltung_id = $veranstaltung->veranstaltung_id"
. "\n AND (heim_spielpunkte IS NULL OR gast_spielpunkte IS NULL"
. "\n OR #__sportsmanager_unbestaetigtes_ergebnis.begegnung_id IS NOT NULL)"
. "\n ORDER BY spieltag DESC";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$veranstaltung->nicht_abgeschlossene_spiele = $db->loadResult();
HTML_sportsmanager_admin::adminBegegnungenPokalrundeAuslosenForm($veranstaltung,getAuswahlSpieltagtitel());
}
#[NoReturn] function adminBegegnungenPokalrundeAuslosen(): void
{
$db = getDatabase();
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
$sperren = false;
$veranstaltungId = $jInput->get('veranstaltungid', 0, 'INT');
$rundenNr = $jInput->get('runde', 0, 'INT');
$rundenTitel = $jInput->get('rundentitel', 0, 'STRING');
$spielumplatz3 = $jInput->get('spielumplatz3', 0, 'INT');
if ($veranstaltungId == 0) die("Missing id!");
if (!benutzerZugriff("mannschaftswettbewerb_aendern") && !benutzerVeranstaltungModerator($veranstaltungId))
keinZugriff();
if ($jInput->get('cancel', false, 'BOOL')) {
redirectSportsManagerURL('&task=admin_begegnungen&veranstaltungid=' . $veranstaltungId);
}
$query = "SELECT COUNT(teamname)"
. "\n FROM #__sportsmanager_team"
. "\n WHERE veranstaltung_id = $veranstaltungId"
. "\n ORDER BY teamname";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$anzahlteams = $db->loadResult();
$anzahlrunden = getAnzahlRunden($anzahlteams);
$Verlierer = "";
//Alle Teams einlesen
$query = "SELECT *"
. "\n FROM #__sportsmanager_team"
. "\n WHERE veranstaltung_id = $veranstaltungId ";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$teams_komplett = json_decode(json_encode($db->loadObjectList()), true);
foreach($teams_komplett AS $team)
{
$teams[$team['team_id']] = $team;
}
if ($rundenNr == 1){
$anzahlmatches = $anzahlteams - pow(2, $anzahlrunden - 1 );
}
else{
$anzahlmatches = pow(2, $anzahlrunden - $rundenNr);
//Verlierer rausfiltern
$query = "SELECT IF(t1.heim_punkte > t1.gast_punkte, t3.team_id, t2.team_id) AS Verlierer"
. "\n FROM #__sportsmanager_begegnung AS t1"
. "\n LEFT JOIN #__sportsmanager_team AS t2"
. "\n ON t1.heim_team_id = t2.team_id LEFT JOIN #__sportsmanager_team AS t3"
. "\n ON t1.gast_team_id = t3.team_id LEFT JOIN #__sportsmanager_veranstaltung AS t4"
. "\n ON t2.veranstaltung_id = t4.veranstaltung_id"
. "\n WHERE t4.veranstaltung_id = $veranstaltungId;";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$loosers = $db->loadObjectList();
$Zeile = 0;
foreach($loosers AS $looser)
{
if ($Zeile > 0) $Verlierer .= ",";
$Verlierer .= $looser->Verlierer;
$Zeile++;
}
}
$query = "SELECT team_id"
. "\n FROM #__sportsmanager_team"
. "\n WHERE veranstaltung_id = $veranstaltungId ";
if ($Verlierer != "")
$query .= "\n AND team_id NOT IN (".$Verlierer.");";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$teams_auslosung = json_decode(json_encode($db->loadObjectList()), true);
// Teams durchmischen
shuffle($teams_auslosung);
if ($anzahlteams < 2)
{
$Fehlertext = "Zu wenige Teams vorhanden!!!";
$sperren = true;
}
$datum_jahr = null;
$zeitpunkt = "";
if ($jInput->get('datum_tag', 0, 'STRING') > 0 && $jInput->get('datum_jahr', 0, 'STRING') >= 0 && $jInput->get('datum_monat', 0, 'STRING') >= 0
&& $jInput->get('uhrzeit_stunden', 0, 'STRING') >= 0 && $jInput->get('uhrzeit_minuten', 0, 'STRING') >= 0) {
$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);
$datum_kw = 0;
} else {
$datum_jahr = $jInput->get('datum_jahr', 0, 'INT');
$datum_kw = abs($jInput->get('datum_tag', 0, 'INT'));
}
if (!((($jInput->get('datum_tag', 0, 'STRING') <= 0 && $jInput->get('datum_jahr', 0, 'STRING') >= 2000)) || $zeitpunkt != ""))
{
$Fehlertext = "Bitte ein g&uuml;ltiges Datum eingeben!!!";
$sperren = true;
}
for ($matchNr = 0; $matchNr < $anzahlmatches; $matchNr++) {
$team_heim = $matchNr * 2 ;
$team_gast = $team_heim + 1;
$matches[$matchNr]['heim'] = $teams_auslosung[$team_heim]['team_id'];
$matches[$matchNr]['gast'] = $teams_auslosung[$team_gast]['team_id'];
}
if ($spielumplatz3)
{
//Verlierer Halbfinale ermitteln
$query = "SELECT IF(t1.heim_punkte > t1.gast_punkte, t3.team_id, t2.team_id) AS Verlierer"
. "\n FROM #__sportsmanager_begegnung AS t1"
. "\n LEFT JOIN #__sportsmanager_team AS t2"
. "\n ON t1.heim_team_id = t2.team_id LEFT JOIN #__sportsmanager_team AS t3"
. "\n ON t1.gast_team_id = t3.team_id LEFT JOIN #__sportsmanager_veranstaltung AS t4"
. "\n ON t2.veranstaltung_id = t4.veranstaltung_id"
. "\n WHERE t4.veranstaltung_id = $veranstaltungId"
. "\n AND t1.spieltag = " . ($rundenNr - 1) . " ORDER BY RAND();";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$loosers = $db->loadObjectList();
$matches[2]['heim'] = $loosers[0]->Verlierer;
$matches[2]['gast'] = $loosers[1]->Verlierer;
$matches[2]['rundentitel'] = "Spiel um Platz 3";
}
$Fehlertext = "";
foreach($matches AS $spiel_nr => $match)
{
$matches[$spiel_nr]['rundentitel'] = $matches[$spiel_nr]['rundentitel'] ?? $rundenTitel;
$matches[$spiel_nr]['zeitpunkt'] = $zeitpunkt;
$matches[$spiel_nr]['heimspielort_id'] = $teams[$teams_setzliste[$setzung[0]]]['heimspielort_id'];
$team_heim = $match['heim'];
if ($datum_kw != null && $teams[$team_heim]['heimspiel_wochentag'] !== 0) {
$ts = getdate(mondaykw($datum_kw, $datum_jahr, $teams[$team_heim]['heimspiel_wochentag'] - 1));
$matches[$spiel_nr]['zeitpunkt'] = sprintf("%04d-%02d-%02d %02d:%02d:%02d", $ts["year"], $ts["mon"], $ts["mday"],
floor($teams[$team_heim]['heimspiel_uhrzeit'] / 100), $teams[$team_heim]['heimspiel_uhrzeit'] % 100, 0);
}
if (!validateDate($matches[$spiel_nr]['zeitpunkt'])){
$sperren = true;
$Fehlertext .= "Bitte die Heimspiel Uhrzeit des " . $teams[$matches[$spiel_nr]['heim']]['teamname'] . " &uuml;berpr&uuml;fen!!!<br>";
}
}
if (!$sperren){
$anzahlMatches = count($match);
$Zeile = 0;
$query = "INSERT INTO #__sportsmanager_begegnung (zeitpunkt, spieltag, spieltag_titel, spiel_nr, heim_team_id, gast_team_id, spielort_id) values ";
foreach ($matches AS $key => $match) {
if (++$Zeile > 1) $query .= ", ";
$query .= "('" . $match['zeitpunkt'] . "', " . $rundenNr .
", '" . $match['rundentitel'] . "', " . $key .
", '" . $match['heim'] . "', '" . $match['gast'] . "'" .
", " . ($match['heimspielort_id'] != 0 ? "'" . $match['heimspielort_id'] . "'" : "NULL") . ")";
}
$query .= "; ";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
redirectSportsManagerURL('&task=admin_begegnungen&veranstaltungid=' . $veranstaltungId);
}
else{
echo "<span style='display: inline-block; background: red; color: white;vertical-align: middle;'>
$Fehlertext</span>\n";
}
}
#[NoReturn] function adminBegegnungenPokalrundeSetzliste(): void
{
$db = getDatabase();
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
$sperren = false;
$veranstaltungId = $jInput->get('veranstaltungid', 0, 'INT');
$rundenNr = $jInput->get('runde', 0, 'INT');
$rundenTitel = $jInput->get('rundentitel', 0, 'STRING');
$spielumplatz3 = $jInput->get('spielumplatz3', 0, 'INT');
if ($veranstaltungId == 0) die("Missing id!");
if (!benutzerZugriff("mannschaftswettbewerb_aendern") && !benutzerVeranstaltungModerator($veranstaltungId))
keinZugriff();
if ($jInput->get('cancel', false, 'BOOL')) {
redirectSportsManagerURL('&task=admin_begegnungen&veranstaltungid=' . $veranstaltungId);
}
$query = "SELECT COUNT(teamname)"
. "\n FROM #__sportsmanager_team"
. "\n WHERE veranstaltung_id = $veranstaltungId"
. "\n ORDER BY teamname";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$anzahlteams = $db->loadResult();
$anzahlrunden = getAnzahlRunden($anzahlteams);
//Vergabe der Setzliste
if ($rundenNr == 1){
$query = "UPDATE #__sportsmanager_team AS t
JOIN (
SELECT team_id, (@r := @r + 1) AS rnd_num
FROM (
SELECT team_id
FROM #__sportsmanager_team
WHERE veranstaltung_id = $veranstaltungId
ORDER BY RAND()
) AS shuffled
JOIN (SELECT @r := 0) AS init
) AS x ON t.team_id = x.team_id
SET t.setzliste_nr = x.rnd_num;";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
}
$query = "SELECT *"
. "\n FROM #__sportsmanager_team"
. "\n WHERE veranstaltung_id = $veranstaltungId"
. "\n ORDER BY setzliste_nr;";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$teams_array = json_decode(json_encode($db->loadObjectList()), true);
foreach($teams_array AS $team)
{
$teams_setzliste[$team['setzliste_nr']] = $team['team_id'];
$teams[$team['team_id']] = $team;
}
if ($anzahlteams < 2)
{
$Fehlertext = "Zu wenige Teams vorhanden!!!";
$sperren = true;
}
$datum_jahr = null;
$zeitpunkt = "";
if ($jInput->get('datum_tag', 0, 'STRING') > 0 && $jInput->get('datum_jahr', 0, 'STRING') >= 0 && $jInput->get('datum_monat', 0, 'STRING') >= 0
&& $jInput->get('uhrzeit_stunden', 0, 'STRING') >= 0 && $jInput->get('uhrzeit_minuten', 0, 'STRING') >= 0) {
$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);
$datum_kw = 0;
} else {
$datum_jahr = $jInput->get('datum_jahr', 0, 'INT');
$datum_kw = abs($jInput->get('datum_tag', 0, 'INT'));
}
if (!((($jInput->get('datum_tag', 0, 'STRING') <= 0 && $jInput->get('datum_jahr', 0, 'STRING') >= 2000)) || $zeitpunkt != ""))
{
$Fehlertext = "Bitte ein g&uuml;ltiges Datum eingeben!!!";
$sperren = true;
}
$matches = [];
if ($rundenNr == 1){
$setzliste = getSetzliste($anzahlrunden);
$spiel_nr = 0;
foreach($setzliste AS $setzung){
$spiel_nr++;
if ($setzung[0] <= $anzahlteams && $setzung[1] <= $anzahlteams){
$matches[$spiel_nr]['heim'] = $teams_setzliste[$setzung[0]];
$matches[$spiel_nr]['gast'] = $teams_setzliste[$setzung[1]];
}
}
}
//Freilose Runde 1 ermitteln
if ($rundenNr == 2){
$setzliste = getSetzliste($anzahlrunden);
$spiel_nr = 0;
foreach($setzliste AS $setzung){
$spiel_nr++;
if ($setzung[0] > $anzahlteams || $setzung[1] > $anzahlteams){
if ($spiel_nr % 2)
$matches[round($spiel_nr/2)]['heim'] = $teams_setzliste[min($setzung[0],$setzung[1])];
else
$matches[round($spiel_nr/2)]['gast'] = $teams_setzliste[min($setzung[0],$setzung[1])];
}
}
}
//Sieger der vorherigen Runde ermitteln
if ($rundenNr >= 2){
$query = "SELECT t4.bezeichnung AS Liga, t1.zeitpunkt AS Spielstart, t2.teamname AS Heim, t3.teamname AS Gast,
t1.heim_team_id, t1.gast_team_id,
t1.spieltag_titel AS Runde, 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, t1.gast_spielpunkte AS Gast_Satzpunkte
FROM #__sportsmanager_begegnung AS t1
LEFT JOIN #__sportsmanager_team AS t2 ON t1.heim_team_id = t2.team_id
LEFT JOIN #__sportsmanager_team AS t3 ON t1.gast_team_id = t3.team_id
LEFT JOIN #__sportsmanager_veranstaltung AS t4 ON t2.veranstaltung_id = t4.veranstaltung_id
WHERE t4.veranstaltung_id = " . $veranstaltungId . " AND t1.spieltag = " . ($rundenNr - 1) . "
ORDER BY t4.veranstaltung_id, t1.spieltag, t1.spiel_nr;";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$begegnungen = json_decode(json_encode($db->loadObjectList()), true);
foreach($begegnungen AS $begegnung)
{
if ($begegnung['Heim_Satzpunkte'] > $begegnung['Gast_Satzpunkte'])
$sieger = $begegnung['heim_team_id'];
else
$sieger = $begegnung['gast_team_id'];
if ($begegnung['Spiel_Nr'] % 2)
$matches[round($begegnung['Spiel_Nr']/2)]['heim'] = $sieger;
else
$matches[round($begegnung['Spiel_Nr']/2)]['gast'] = $sieger;
}
}
if ($spielumplatz3)
{
//Verlierer Halbfinale ermitteln
$query = "SELECT IF(t1.heim_punkte > t1.gast_punkte, t3.team_id, t2.team_id) AS Verlierer"
. "\n FROM #__sportsmanager_begegnung AS t1"
. "\n LEFT JOIN #__sportsmanager_team AS t2"
. "\n ON t1.heim_team_id = t2.team_id LEFT JOIN #__sportsmanager_team AS t3"
. "\n ON t1.gast_team_id = t3.team_id LEFT JOIN #__sportsmanager_veranstaltung AS t4"
. "\n ON t2.veranstaltung_id = t4.veranstaltung_id"
. "\n WHERE t4.veranstaltung_id = $veranstaltungId"
. "\n AND t1.spieltag = " . ($rundenNr - 1) . ";";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$loosers = $db->loadObjectList();
$matches[2]['heim'] = $loosers[0]->Verlierer;
$matches[2]['gast'] = $loosers[1]->Verlierer;
$matches[2]['rundentitel'] = "Spiel um Platz 3";
}
$Fehlertext = "";
foreach($matches AS $spiel_nr => $match)
{
$matches[$spiel_nr]['rundentitel'] = $matches[$spiel_nr]['rundentitel'] ?? $rundenTitel;
$matches[$spiel_nr]['zeitpunkt'] = $zeitpunkt;
$matches[$spiel_nr]['heimspielort_id'] = $teams[$teams_setzliste[$setzung[0]]]['heimspielort_id'];
$team_heim = $match['heim'];
if ($datum_kw != null && $teams[$team_heim]['heimspiel_wochentag'] !== 0) {
$ts = getdate(mondaykw($datum_kw, $datum_jahr, $teams[$team_heim]['heimspiel_wochentag'] - 1));
$matches[$spiel_nr]['zeitpunkt'] = sprintf("%04d-%02d-%02d %02d:%02d:%02d", $ts["year"], $ts["mon"], $ts["mday"],
floor($teams[$team_heim]['heimspiel_uhrzeit'] / 100), $teams[$team_heim]['heimspiel_uhrzeit'] % 100, 0);
}
if (!validateDate($matches[$spiel_nr]['zeitpunkt'])){
$sperren = true;
$Fehlertext .= "Bitte die Heimspiel Uhrzeit des " . $teams[$matches[$spiel_nr]['heim']]['teamname'] . " &uuml;berpr&uuml;fen!!!<br>";
}
}
if (!$sperren){
$anzahlMatches = count($match);
$Zeile = 0;
$query = "INSERT INTO #__sportsmanager_begegnung (zeitpunkt, spieltag, spieltag_titel, spiel_nr, heim_team_id, gast_team_id, spielort_id) values ";
foreach ($matches AS $key => $match) {
if (++$Zeile > 1) $query .= ", ";
$query .= "('" . $match['zeitpunkt'] . "', " . $rundenNr .
", '" . $match['rundentitel'] . "', " . $key .
", '" . $match['heim'] . "', '" . $match['gast'] . "'" .
", " . ($match['heimspielort_id'] != 0 ? "'" . $match['heimspielort_id'] . "'" : "NULL") . ")";
}
$query .= "; ";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
redirectSportsManagerURL('&task=admin_begegnungen&veranstaltungid=' . $veranstaltungId);
}
else{
echo "<span style='display: inline-block; background: red; color: white;vertical-align: middle;'>
$Fehlertext</span>\n";
}
}
#[NoReturn] function adminBegegnungenAlleEntfernen(): void #[NoReturn] function adminBegegnungenAlleEntfernen(): void
{ {
$db = getDatabase(); $db = getDatabase();
@@ -11255,6 +11817,12 @@ function adminBegegnungenRundeErzeugenForm(): void
if (!$db->execute()) { if (!$db->execute()) {
die($db->stderr(true)); die($db->stderr(true));
} }
$query = "UPDATE #__sportsmanager_team SET setzliste_nr = NULL WHERE veranstaltung_id = $veranstaltungId;";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
} }
if ($veranstaltung->status != 0 && $veranstaltung->elo_wertung != 0) { if ($veranstaltung->status != 0 && $veranstaltung->elo_wertung != 0) {
@@ -5295,6 +5295,35 @@ function updateDatabase(): void
} }
} }
if ($datenbank_version < 105) {
$query = "ALTER TABLE `#__sportsmanager_begegnung` ADD `spieltag_titel` VARCHAR(32) NOT NULL DEFAULT '' AFTER `spieltag`;";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$query = "ALTER TABLE `#__sportsmanager_veranstaltung` ADD `spieltag_titel_zeigen` INT(4) NOT NULL DEFAULT '0' AFTER `unterteilung`;";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$query = "ALTER TABLE `stfv_sportsmanager_team` ADD `teamname_kurz` VARCHAR(24) NOT NULL DEFAULT '' AFTER `teamname`;";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$query = "UPDATE #__sportsmanager_einstellungen"
. "\n SET wert = '105'"
. "\n WHERE name = 'datenbank_version'";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
}
if ($termin_aktionen_email_setzen) { if ($termin_aktionen_email_setzen) {
$query = "SELECT aktion_user_id, termin_aktion_id" $query = "SELECT aktion_user_id, termin_aktion_id"
. "\n FROM #__sportsmanager_termin_aktion"; . "\n FROM #__sportsmanager_termin_aktion";
@@ -334,8 +334,10 @@ if ($task == "spielerbild") {
break; break;
case 'admin_team_save': case 'admin_team_save':
adminSaveMannschaft(); adminSaveMannschaft();
break;
case 'admin_team_remove': case 'admin_team_remove':
adminRemoveMannschaft(); adminRemoveMannschaft();
break;
case 'admin_team_kopieren_form': case 'admin_team_kopieren_form':
adminKopierenMannschaftForm(); adminKopierenMannschaftForm();
break; break;
@@ -398,8 +400,18 @@ if ($task == "spielerbild") {
case 'admin_begegnungen_runde_erzeugen_form': case 'admin_begegnungen_runde_erzeugen_form':
adminBegegnungenRundeErzeugenForm(); adminBegegnungenRundeErzeugenForm();
break; break;
case 'admin_begegnungen_pokalrunde_auslosen_form':
adminBegegnungenPokalrundeAuslosenForm();
break;
case 'admin_begegnungen_runde_erzeugen': case 'admin_begegnungen_runde_erzeugen':
adminBegegnungenRundeErzeugen(); adminBegegnungenRundeErzeugen();
break;
case 'admin_begegnungen_pokalrunde_auslosen':
adminBegegnungenPokalrundeAuslosen();
break;
case 'admin_begegnungen_pokalrunde_setzliste':
adminBegegnungenPokalrundeSetzliste();
break;
case 'admin_begegnungen_alle_entfernen': case 'admin_begegnungen_alle_entfernen':
adminBegegnungenAlleEntfernen(); adminBegegnungenAlleEntfernen();
break; break;
@@ -1443,7 +1455,7 @@ function veranstaltungen(): void
'begegnungen' => begegnungenAnzeigen($veranstaltung, NULL, NULL, 0), 'begegnungen' => begegnungenAnzeigen($veranstaltung, NULL, NULL, 0),
'tabelle' => NULL 'tabelle' => NULL
]; ];
if ($veranstaltung->tabellenwertung != 0) { if (!in_array($veranstaltung->tabellenwertung, [0, -1, -3, -4]) || !$veranstaltung->platzierung_offen) {
$spieltag = null; // TODO: spieltag was not defined before, not sure what it should be $spieltag = null; // TODO: spieltag was not defined before, not sure what it should be
$competition['tabelle'] = tabelle($veranstaltung, $spieltag, true); $competition['tabelle'] = tabelle($veranstaltung, $spieltag, true);
} }
@@ -1457,7 +1469,7 @@ function veranstaltungen(): void
foreach ($veranstaltungen as $veranstaltung) { foreach ($veranstaltungen as $veranstaltung) {
if ($praesentation == 1 || $praesentation == 2) if ($praesentation == 1 || $praesentation == 2)
echo "<td>\r\n"; echo "<td>\r\n";
if ($veranstaltung->tabellenwertung != 0 && ($veranstaltung->tabellenwertung != -1 || !$veranstaltung->platzierung_offen)) { if (!in_array($veranstaltung->tabellenwertung, [0, -1, -3, -4]) || !$veranstaltung->platzierung_offen) {
HTML_sportsmanager::tabelleHeader($veranstaltung); HTML_sportsmanager::tabelleHeader($veranstaltung);
tabelle($veranstaltung, 0, false, $praesentation); tabelle($veranstaltung, 0, false, $praesentation);
} else { } else {
@@ -1502,7 +1514,8 @@ function veranstaltung(): void
$query = "SELECT saison_id, saisonbezeichnung" $query = "SELECT saison_id, saisonbezeichnung"
. "\n FROM #__sportsmanager_veranstaltung" . "\n FROM #__sportsmanager_veranstaltung"
. "\n INNER JOIN #__sportsmanager_saison USING (saison_id)" . "\n INNER JOIN #__sportsmanager_saison USING (saison_id)"
. "\n WHERE status > 0 AND EXISTS(SELECT * FROM #__sportsmanager_team INNER JOIN #__sportsmanager_begegnung ON heim_team_id = team_id WHERE #__sportsmanager_team.veranstaltung_id = #__sportsmanager_veranstaltung.veranstaltung_id)" . kategorieFilter("AND #__sportsmanager_veranstaltung.kategorie IN") . "\n WHERE status > 0 AND EXISTS(SELECT * FROM #__sportsmanager_team INNER JOIN #__sportsmanager_begegnung ON heim_team_id = team_id"
. "\n WHERE #__sportsmanager_team.veranstaltung_id = #__sportsmanager_veranstaltung.veranstaltung_id)" . kategorieFilter("AND #__sportsmanager_veranstaltung.kategorie IN")
. "\n GROUP BY saison_id" . "\n GROUP BY saison_id"
. "\n ORDER BY saisonbezeichnung DESC"; . "\n ORDER BY saisonbezeichnung DESC";
$db->setQuery($query); $db->setQuery($query);
@@ -1530,7 +1543,10 @@ function veranstaltung(): void
$spieltag = $jInput->get('spieltag', 0, 'INT'); $spieltag = $jInput->get('spieltag', 0, 'INT');
// Veranstaltung ermitteln // Veranstaltung ermitteln
$query = "SELECT * FROM #__sportsmanager_veranstaltung WHERE veranstaltung_id = $id AND status > 0 AND EXISTS(SELECT * FROM #__sportsmanager_team INNER JOIN #__sportsmanager_begegnung ON heim_team_id = team_id WHERE #__sportsmanager_team.veranstaltung_id = #__sportsmanager_veranstaltung.veranstaltung_id)"; $query = "SELECT * FROM #__sportsmanager_veranstaltung"
. "\n WHERE veranstaltung_id = $id AND status > 0"
. "\n AND EXISTS(SELECT * FROM #__sportsmanager_team INNER JOIN #__sportsmanager_begegnung ON heim_team_id = team_id"
. "\n WHERE #__sportsmanager_team.veranstaltung_id = #__sportsmanager_veranstaltung.veranstaltung_id)";
$db->setQuery($query); $db->setQuery($query);
if (!$db->execute()) { if (!$db->execute()) {
die($db->stderr(true)); die($db->stderr(true));
@@ -1545,7 +1561,7 @@ function veranstaltung(): void
'veranstaltung' => $veranstaltung, 'veranstaltung' => $veranstaltung,
'begegnungen' => begegnungenAnzeigen($veranstaltung, NULL, NULL, 0) 'begegnungen' => begegnungenAnzeigen($veranstaltung, NULL, NULL, 0)
]; ];
if ($veranstaltung->tabellenwertung != 0) { if (!in_array($veranstaltung->tabellenwertung, [0, -1, -3, -4])) {
$table = tabelle($veranstaltung, $spieltag, true); $table = tabelle($veranstaltung, $spieltag, true);
$json['tabelle'] = $table['tabelle']; $json['tabelle'] = $table['tabelle'];
$json['modus'] = $table['modus']; $json['modus'] = $table['modus'];
@@ -1584,9 +1600,13 @@ function veranstaltung(): void
// Anzeigen // Anzeigen
HTML_sportsmanager::veranstaltungHeaderAlone($veranstaltung, $vorherige_veranstaltung_id, $naechste_veranstaltung_id, $showSeasons, $saisons, $filter_saison_id); HTML_sportsmanager::veranstaltungHeaderAlone($veranstaltung, $vorherige_veranstaltung_id, $naechste_veranstaltung_id, $showSeasons, $saisons, $filter_saison_id);
if ($veranstaltung->tabellenwertung != 0)
if (!in_array($veranstaltung->tabellenwertung, [0, -1, -3, -4]))
tabelle($veranstaltung, $spieltag, true); tabelle($veranstaltung, $spieltag, true);
if (einstellungswert("turnierbaum_zeigen") && $veranstaltung->tabellenwertung == -4)
turnierbaumAnzeigen($veranstaltung);
begegnungenAnzeigen($veranstaltung, NULL, NULL, 0); begegnungenAnzeigen($veranstaltung, NULL, NULL, 0);
HTML_sportsmanager::iCalBegegnungen(SportsManagerURL('&task=veranstaltung_begegnungen_ical&id=' . $veranstaltung->veranstaltung_id)); HTML_sportsmanager::iCalBegegnungen(SportsManagerURL('&task=veranstaltung_begegnungen_ical&id=' . $veranstaltung->veranstaltung_id));
} }
@@ -1641,7 +1661,7 @@ function tabelle($veranstaltung, $spieltag, $alleine_angezeigt, $praesentation =
$teams = getTabelleAktuellerSpieltag($veranstaltung); $teams = getTabelleAktuellerSpieltag($veranstaltung);
} else { } else {
$teams = getTabelleSpieltag($veranstaltung,$spieltag); $teams = getTabelleSpieltag($veranstaltung,$spieltag);
if ($veranstaltung->direktervergleich AND $spieltag >= $anzahl_spieltage_komplett/2){ if ($veranstaltung->direktervergleich && $spieltag >= $anzahl_spieltage_komplett/2 && $anzahl_spieltage_komplett >= 3){
$teams = getTabelleDirekterVergleich($teams,$veranstaltung,$spieltag); $teams = getTabelleDirekterVergleich($teams,$veranstaltung,$spieltag);
} }
} }
@@ -2149,6 +2169,288 @@ function getTabelleSpieltag($veranstaltung,$spieltag,$mannschaften = "",$offset_
jexit(); jexit();
} }
function erstelleSetzliste($teams)
{
$seedingPairs[4] = [[1, 4], [2, 3]];
$seedingPairs[8] = [[1, 8], [4, 5], [3, 6], [2, 7]];
$seedingPairs[16] = [[1, 16], [8, 9], [5, 12], [4, 13],
[3, 14], [6, 11], [7, 10], [2, 15]];
$seedingPairs[32] = [[1, 32], [16, 17], [9, 24], [8, 25],
[5, 28], [12, 21], [13, 20], [4, 29],
[3, 30], [14, 19], [11, 22], [6, 27],
[7, 26], [10, 23], [15, 18], [2, 31]];
$seedingPairs[64] = [[1, 64], [32, 33], [17, 48], [16, 49],
[9, 56], [24, 41], [25, 40], [8, 57],
[5, 60], [28, 37], [21, 44], [12, 53],
[13, 52], [20, 45], [29, 36], [4, 61],
[3, 62], [30, 35], [19, 46], [14, 51],
[11, 54], [22, 43], [27, 38], [6, 59],
[7, 58], [26, 39], [23, 42], [10, 55],
[15, 50], [18, 47], [31, 34], [2, 63]];
$seedingPairs[128]= [[1,128], [64,65], [33,96], [32,97], [17,112], [48,81], [49,80], [16,113],
[9,120], [56,73], [41,88], [24,105], [25,104], [40,89], [57,72], [8,121],
[5,124], [60,69], [37,92], [28,101], [21,108], [44,85], [53,76], [12,117],
[13,116], [52,77], [45,84], [20,109], [29,100], [36,93], [61,68], [4,125],
[3,126], [62,67], [35,94], [30,99], [19,110], [46,83], [51,78], [14,115],
[11,118], [54,75], [43,86], [22,107], [27,102], [38,91], [59,70], [6,123],
[7,122], [58,71], [39,90], [26,103], [23,106], [42,87], [55,74], [10,119],
[15,114], [50,79], [47,82], [18,111], [31,98], [34,95], [63,66], [2,127]];
$matches = [];
// Teams durchschütteln
$keys = array_keys($teams);
shuffle($keys);
$mannschaften = [];
$nr = 0;
foreach ($keys as $key) {
$mannschaften[++$nr] = $teams[$key];
}
$anzahlTeams = count($mannschaften);
if ($anzahlTeams >= 1 && $anzahlTeams <= 4) {
$setzliste = $seedingPairs[4];
$runden = 2;
} else if ($anzahlTeams >= 5 && $anzahlTeams <= 8){
$setzliste = $seedingPairs[8];
$runden = 3;
} else if ($anzahlTeams >= 9 && $anzahlTeams <= 16){
$setzliste = $seedingPairs[16];
$runden = 4;
} else if ($anzahlTeams >= 17 && $anzahlTeams <= 32){
$setzliste = $seedingPairs[32];
$runden = 5;
} else if ($anzahlTeams >= 33 && $anzahlTeams <= 64){
$setzliste = $seedingPairs[64];
$runden = 6;
} else if ($anzahlTeams >= 65 && $anzahlTeams <= 128){
$setzliste = $seedingPairs[128];
$runden = 7;
}
$nr = 0;
foreach($setzliste as $paarung){
$matches[1][++$nr]['heim'] = $mannschaften[$paarung[0]] ?? 'freilos';
$matches[1][$nr]['gast'] = $mannschaften[$paarung[1]] ?? 'freilos';
}
$turnier['runden'] = $runden;
$turnier['matches'] = $matches;
return $turnier;
}
function getSetzliste($anzahlRunden)
{
$maxTeams = pow(2, $anzahlRunden);
$seedingPairs[4] = [[1, 4], [2, 3]];
$seedingPairs[8] = [[1, 8], [4, 5], [3, 6], [2, 7]];
$seedingPairs[16] = [[1, 16], [8, 9], [5, 12], [4, 13],
[3, 14], [6, 11], [7, 10], [2, 15]];
$seedingPairs[32] = [[1, 32], [16, 17], [9, 24], [8, 25],
[5, 28], [12, 21], [13, 20], [4, 29],
[3, 30], [14, 19], [11, 22], [6, 27],
[7, 26], [10, 23], [15, 18], [2, 31]];
$seedingPairs[64] = [[1, 64], [32, 33], [17, 48], [16, 49],
[9, 56], [24, 41], [25, 40], [8, 57],
[5, 60], [28, 37], [21, 44], [12, 53],
[13, 52], [20, 45], [29, 36], [4, 61],
[3, 62], [30, 35], [19, 46], [14, 51],
[11, 54], [22, 43], [27, 38], [6, 59],
[7, 58], [26, 39], [23, 42], [10, 55],
[15, 50], [18, 47], [31, 34], [2, 63]];
$seedingPairs[128]= [[1,128], [64,65], [33,96], [32,97], [17,112], [48,81], [49,80], [16,113],
[9,120], [56,73], [41,88], [24,105], [25,104], [40,89], [57,72], [8,121],
[5,124], [60,69], [37,92], [28,101], [21,108], [44,85], [53,76], [12,117],
[13,116], [52,77], [45,84], [20,109], [29,100], [36,93], [61,68], [4,125],
[3,126], [62,67], [35,94], [30,99], [19,110], [46,83], [51,78], [14,115],
[11,118], [54,75], [43,86], [22,107], [27,102], [38,91], [59,70], [6,123],
[7,122], [58,71], [39,90], [26,103], [23,106], [42,87], [55,74], [10,119],
[15,114], [50,79], [47,82], [18,111], [31,98], [34,95], [63,66], [2,127]];
return $seedingPairs[$maxTeams];
}
function getAnzahlRunden($anzahlTeams)
{
if ($anzahlTeams >= 1 && $anzahlTeams <= 4) {
return 2;
} else if ($anzahlTeams >= 5 && $anzahlTeams <= 8){
return 3;
} else if ($anzahlTeams >= 9 && $anzahlTeams <= 16){
return 4;
} else if ($anzahlTeams >= 17 && $anzahlTeams <= 32){
return 5;
} else if ($anzahlTeams >= 33 && $anzahlTeams <= 64){
return 6;
} else if ($anzahlTeams >= 65 && $anzahlTeams <= 128){
return 7;
}
}
function getRundenTitel($anzahlTeams)
{
if ($anzahlTeams >= 1 && $anzahlTeams <= 2)
return Text::_('COM_SPORTSMANAGER_FINAL');
if ($anzahlTeams >= 3 && $anzahlTeams <= 4)
return Text::_('COM_SPORTSMANAGER_HALF_FINAL');
if ($anzahlTeams >= 5 && $anzahlTeams <= 8)
return Text::_('COM_SPORTSMANAGER_QUARTER_FINAL');
if ($anzahlTeams >= 9 && $anzahlTeams <= 16)
return Text::_('COM_SPORTSMANAGER_ROUND_OF_16');
if ($anzahlTeams >= 17 && $anzahlTeams <= 32)
return Text::_('COM_SPORTSMANAGER_ROUND_OF_32_ALT');
if ($anzahlTeams >= 33 && $anzahlTeams <= 64)
return Text::_('COM_SPORTSMANAGER_ROUND_OF_64_ALT');;
if ($anzahlTeams >= 65 && $anzahlTeams <= 128)
return Text::_('COM_SPORTSMANAGER_ROUND_OF_128_ALT');
return "";
}
function turnierbaumAnzeigen($veranstaltung): void
{
$db = getDatabase();
$veranstaltungId = $veranstaltung->veranstaltung_id;
if ($veranstaltungId == 0) die("Missing id!");
//Infos Veranstaltung
$query = "SELECT * FROM #__sportsmanager_veranstaltung WHERE veranstaltung_id = $veranstaltungId";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$rows = $db->loadObjectList();
if (count($rows) < 1) die("Wrong id!");
$veranstaltung = $rows[0];
//Alle Teams
$query = "SELECT *"
. "\n FROM #__sportsmanager_team"
. "\n WHERE veranstaltung_id = $veranstaltungId"
. "\n ORDER BY setzliste_nr;";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$teams_unformatiert = json_decode(json_encode($db->loadObjectList()), true);
foreach($teams_unformatiert AS $team){
$teams[$team['setzliste_nr']] = $team;
}
$anzahlTeams = count($teams);
$anzahlRunden = getAnzahlRunden($anzahlTeams);
//Alle Begegnungen vorbelegen
$anzahlSpiele = pow(2, $anzahlRunden - 1);
for($runde_nr = 1; $runde_nr <= $anzahlRunden; $runde_nr++)
{
for($spiel_nr = 1; $spiel_nr <= $anzahlSpiele; $spiel_nr++)
{
$begegnungen[$runde_nr][$spiel_nr]['heim'] = "";
$begegnungen[$runde_nr][$spiel_nr]['gast'] = "";
$begegnungen[$runde_nr][$spiel_nr]['sieger'] = 0;
$begegnungen[$runde_nr][$spiel_nr]['link'] = "";
$begegnungen[$runde_nr][$spiel_nr]['id'] = "";
$begegnungen[$runde_nr][$spiel_nr]['erg_heim'] = "";
$begegnungen[$runde_nr][$spiel_nr]['erg_gast'] = "";
$begegnungen[$runde_nr][$spiel_nr]['tooltiptext'] = "";
}
$anzahlSpiele = $anzahlSpiele / 2;
}
//Alle Begegnungen aus der Setzliste
$setzliste = getSetzliste($anzahlRunden);
$spiel_nr = 0;
foreach($setzliste AS $setzung){
$spiel_nr++;
$begegnungen[1][$spiel_nr]['sieger'] = 0;
if ($setzung[0] <= $anzahlTeams) {
$begegnungen[1][$spiel_nr]['heim'] = $teams[$setzung[0]]['teamname_kurz'] ?: $teams[$setzung[0]]['teamname'];
} else {
$begegnungen[1][$spiel_nr]['heim'] = "freilos";
$begegnungen[1][$spiel_nr]['sieger'] = 2;
}
if ($setzung[1] <= $anzahlTeams) {
$begegnungen[1][$spiel_nr]['gast'] = $teams[$setzung[0]]['teamname_kurz'] ?: $teams[$setzung[0]]['teamname'];
} else {
$begegnungen[1][$spiel_nr]['gast'] = "freilos";
$begegnungen[1][$spiel_nr]['sieger'] = 1;
}
}
//Alle Begegnungen aus Datenbank
$query = "SELECT t4.bezeichnung AS Liga, t1.zeitpunkt AS Spielstart,"
. "\n if(t2.teamname_kurz <> '',t2.teamname_kurz, t2.teamname) AS Heim,"
. "\n if(t3.teamname_kurz <> '',t3.teamname_kurz, t3.teamname) AS Gast,"
. "\n t1.heim_team_id, t1.gast_team_id, t1.spieltag_titel AS Runde, t1.spieltag AS Spieltag_Nr,"
. "\n t1.spiel_nr AS Spiel_Nr, t1.heim_punkte AS Heim_Tore, t1.gast_punkte AS Gast_Tore,"
. "\n t1.heim_spielpunkte AS Heim_Satzpunkte, t1.gast_spielpunkte AS Gast_Satzpunkte, t1.begegnung_id"
. "\n FROM #__sportsmanager_begegnung AS t1"
. "\n LEFT JOIN #__sportsmanager_team AS t2 ON t1.heim_team_id = t2.team_id"
. "\n LEFT JOIN #__sportsmanager_team AS t3 ON t1.gast_team_id = t3.team_id"
. "\n LEFT JOIN #__sportsmanager_veranstaltung AS t4 ON t2.veranstaltung_id = t4.veranstaltung_id"
. "\n WHERE t4.veranstaltung_id = $veranstaltungId"
. "\n ORDER BY t4.veranstaltung_id, t1.spieltag, t1.spiel_nr;";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$begegnungen_unformatiert = json_decode(json_encode($db->loadObjectList()), true);
foreach($begegnungen_unformatiert as $begegnung)
{
$begegnungen[$begegnung['Spieltag_Nr']][$begegnung['Spiel_Nr']]['Id'] = $begegnung['begegnung_id'];
$begegnungen[$begegnung['Spieltag_Nr']][$begegnung['Spiel_Nr']]['heim'] = $begegnung['Heim'];
$begegnungen[$begegnung['Spieltag_Nr']][$begegnung['Spiel_Nr']]['gast'] = $begegnung['Gast'];
$begegnungen[$begegnung['Spieltag_Nr']][$begegnung['Spiel_Nr']]['erg_heim'] = $begegnung['Heim_Satzpunkte'];
$begegnungen[$begegnung['Spieltag_Nr']][$begegnung['Spiel_Nr']]['erg_gast'] = $begegnung['Gast_Satzpunkte'];
$begegnungen[$begegnung['Spieltag_Nr']][$begegnung['Spiel_Nr']]['link'] = SportsManagerURL('&task=begegnung_spielplan&veranstaltungid=' . $veranstaltungId . '&id=' . $begegnung['begegnung_id']);
if ($begegnung['Heim_Satzpunkte'] > $begegnung['Gast_Satzpunkte']) {
$begegnungen[$begegnung['Spieltag_Nr']][$begegnung['Spiel_Nr']]['sieger'] = 1;
} else
if ($begegnung['Heim_Satzpunkte'] < $begegnung['Gast_Satzpunkte']) {
$begegnungen[$begegnung['Spieltag_Nr']][$begegnung['Spiel_Nr']]['sieger'] = 2;
} else {
$begegnungen[$begegnung['Spieltag_Nr']][$begegnung['Spiel_Nr']]['sieger'] = 0;
}
}
$veranstaltung->anzahlRunden = $anzahlRunden;
HTML_sportsmanager::turnierbaumAnzeigen($veranstaltung,$begegnungen);
}
function begegnungenAnzeigen($veranstaltung, $verein_id, $spielort_id, $zeitfenster, $ausgetragene_filtern = false, $auszutragende_filtern = false, $zwischenergebnisse_filtern = false, $titel = "", $umgekehrte_reihenfolge = false, $aus_uebersicht = false, $praesentation = 0, $year = NULL, $month = NULL) function begegnungenAnzeigen($veranstaltung, $verein_id, $spielort_id, $zeitfenster, $ausgetragene_filtern = false, $auszutragende_filtern = false, $zwischenergebnisse_filtern = false, $titel = "", $umgekehrte_reihenfolge = false, $aus_uebersicht = false, $praesentation = 0, $year = NULL, $month = NULL)
{ {
$db = getDatabase(); $db = getDatabase();
@@ -4991,7 +5293,7 @@ function teamstatistikAktualisieren($geaenderte_veranstaltung_id = 0, $geaendert
$aktueller_spieltag = count($spieltage) > 0 ? $spieltage[0]->spieltag : 0; $aktueller_spieltag = count($spieltage) > 0 ? $spieltage[0]->spieltag : 0;
// Direkter Vergleich, wenn mindestens die Hälfte der Spieltage gespielt sind. // Direkter Vergleich, wenn mindestens die Hälfte der Spieltage gespielt sind.
if ($veranstaltung->direktervergleich AND $anzahl_spieltage_gespielt >= $anzahl_spieltage_komplett/2){ if ($veranstaltung->direktervergleich && $anzahl_spieltage_gespielt >= $anzahl_spieltage_komplett/2 && $anzahl_spieltage_komplett >= 3){
$teams = getTabelleDirekterVergleich($teams,$veranstaltung,$aktueller_spieltag); $teams = getTabelleDirekterVergleich($teams,$veranstaltung,$aktueller_spieltag);
} }
@@ -1226,6 +1226,142 @@ static function begegnungenAnzeigen($veranstaltung, $modus, $rows, $zeitfenster,
} }
} }
static function turnierbaumAnzeigen($veranstaltung,$begegnungen): void
{
$hoehe = 50;
$breite = 200;
$abstand = 20;
$anzahlRunden = $veranstaltung->anzahlRunden;
$matches = count($begegnungen[1]);
$mannschaften = pow(2, $anzahlRunden - 1) * 2;
$fontsize = 11;
?>
<style>
.container {
position: relative;
text-align: left;
height: <?php echo $matches * $hoehe + 50; ?>px;
width: <?php echo $anzahlRunden * ($breite + $abstand); ?>px;
overflow: auto;
z-index: 1;
}
.linien{
position: absolute;
height: <?php echo $matches * $hoehe; ?>px;
width: <?php echo $anzahlRunden * ($breite + $abstand); ?>px;
top: 0;
left: 0;
stroke: lightgray;
stroke-width: 2;
}
.matchbox {
position: absolute;
white-space: nowrap;
overflow: hidden;
height: 48px;
background: white;
color: black;
border: 1.5px solid #000000;
padding: 5px;
width: <?php echo $breite - 12; ?>px;
border-radius: 12px;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
text-align: center;
font-size: <?php echo $fontsize; ?>px;
vertical-align: middle;
z-index: 10;
}
.winner {
font-weight: bold;
}
.looser {
text-decoration: line-through;
}
</style>
<div style='position: relative; text-align: left;'>
<div class="container" style="top: 0px; left: 20px;">
<?php
$anzahlSpiele = pow(2, $anzahlRunden - 1);
for ($runde = 0; $runde < $anzahlRunden; $runde++)
{
$offset = pow(2, $runde) * 25 - 25;
for ($spiel = 0; $spiel < $anzahlSpiele; $spiel++)
{
$class['heim'] = "";
$class['gast'] = "";
if ($begegnungen[$runde + 1][$spiel + 1]['sieger'] == 1) {
$class['heim'] = "winner";
$class['gast'] = "looser";
}
if ($begegnungen[$runde + 1][$spiel + 1]['sieger'] == 2) {
$class['heim'] = "looser";
$class['gast'] = "winner";
}
$oben = $hoehe * pow(2, $runde) * $spiel + $offset;
$links = ($breite + $abstand) * $runde;
echo "\n<div ";
if ($begegnungen[$runde + 1][$spiel + 1]['link'])
echo "onclick=\"window.location.href='" . $begegnungen[$runde + 1][$spiel + 1]['link'] . "';\" ";
echo "class='matchbox' style='top: " . $oben . "px; left: " . $links . "px;' title='test'>";
echo "<span class='" . $class['heim'] . "'>";
echo $begegnungen[$runde + 1][$spiel + 1]['heim'] ?? '';
echo "</span>";
echo "<br>";
echo "<span class='" . $class['gast'] . "'>";
echo $begegnungen[$runde + 1][$spiel + 1]['gast'] ?? '';
echo "</span>";
echo "</div>\n";
}
$anzahlSpiele = $anzahlSpiele/2;
}
?>
<?php
$anzahlSpiele = pow(2, $anzahlRunden - 1);
echo "\n<svg class='linien'>";
for ($runde = 0; $runde < $anzahlRunden; $runde++)
{
$offset_oben = pow(2, $runde) * 25 - 1;
$offset_links = 12;
for ($spiel = 0; $spiel < $anzahlSpiele; $spiel++)
{
$oben = $hoehe * pow(2, $runde) * $spiel + $offset_oben;
$links = $breite * ($runde + 1) + $runde * $abstand - $offset_links;
$rechts = $links - $breite - $abstand/2 + $offset_links;
$mitte = $links + $abstand/2 + $offset_links/2;
if ($spiel % 2)
$startvertikal = $oben;
else
$endevertikal = $oben;
//Linie rechts von Box
if ($runde < $anzahlRunden - 1){
echo "\n<line x1='".$links."' y1='".$oben."' x2='".$mitte."' y2='".$oben."' />";
}
//Linie links von Box
if ($runde > 0){
echo "\n<line x1='".($rechts - $offset_links/2)."' y1='".$oben."' x2='".($rechts + $abstand/2)."' y2='".$oben."' />";
}
//Vertkal Linie
if ($spiel % 2)
echo "\n<line x1='".$mitte."' y1='".$startvertikal."' x2='".$mitte."' y2='".$endevertikal."' />";
}
$anzahlSpiele = $anzahlSpiele/2;
}
?>
</svg>
</div>
</div>
<?php
}
static function begegnungSpielplan($veranstaltung, $modus, $begegnung, $heim_team, $gast_team, $spiele, $vorherige_begegnung_id, $naechste_begegnung_id, $teamansicht_team, $details_anzeigen):void static function begegnungSpielplan($veranstaltung, $modus, $begegnung, $heim_team, $gast_team, $spiele, $vorherige_begegnung_id, $naechste_begegnung_id, $teamansicht_team, $details_anzeigen):void
{ {
global $params; global $params;
@@ -12,7 +12,9 @@ defined('_JEXEC') or die('Restricted access');
require_once JPATH_SITE . '/components/com_sportsmanager/views/sportsmanager/view_tools.php'; require_once JPATH_SITE . '/components/com_sportsmanager/views/sportsmanager/view_tools.php';
require_once JPATH_SITE . '/components/com_sportsmanager/util/image.php'; require_once JPATH_SITE . '/components/com_sportsmanager/util/image.php';
function formatTimediff( $timestamp1, $timestamp2, $verbose ) { class HTML_sportsmanager_admin
{
static function formatTimediff( $timestamp1, $timestamp2, $verbose ) {
if (empty($timestamp1) || empty($timestamp2)) { if (empty($timestamp1) || empty($timestamp2)) {
return ""; return "";
} else { } else {
@@ -27,7 +29,7 @@ function formatTimediff( $timestamp1, $timestamp2, $verbose ) {
} }
} }
function formatTeamName( $team_name, $team_id, $highlight_team_id ) { static function formatTeamName( $team_name, $team_id, $highlight_team_id ) {
if ($team_id == $highlight_team_id) { if ($team_id == $highlight_team_id) {
return "<b><i>" . htmlentities_utf8($team_name) . "</i></b>"; return "<b><i>" . htmlentities_utf8($team_name) . "</i></b>";
} else { } else {
@@ -35,11 +37,7 @@ function formatTeamName( $team_name, $team_id, $highlight_team_id ) {
} }
} }
class HTML_sportsmanager_admin static function checkZeilenumbruch($Spalte_Nr, $max_Spalten)
{
static function adminUebersicht($veranstaltungen, $spielerstatistiken, $turniere, $ranglisten, $individualwettbewerbe, $statistik, $saisons, $filter_saison_id, $externe_datenbank): void
{
function checkZeilenumbruch($Spalte_Nr, $max_Spalten)
{ {
$Spalte_Nr++; $Spalte_Nr++;
if ($Spalte_Nr >= $max_Spalten){ if ($Spalte_Nr >= $max_Spalten){
@@ -49,6 +47,9 @@ class HTML_sportsmanager_admin
return $Spalte_Nr; return $Spalte_Nr;
} }
static function adminUebersicht($veranstaltungen, $spielerstatistiken, $turniere, $ranglisten, $individualwettbewerbe, $statistik, $saisons, $filter_saison_id, $externe_datenbank): void
{
global $params; global $params;
?> ?>
<div class="componentheading<?php echo $params->get('pageclass_sfx'); ?>" style='font-weight: bold;'> <div class="componentheading<?php echo $params->get('pageclass_sfx'); ?>" style='font-weight: bold;'>
@@ -66,7 +67,7 @@ class HTML_sportsmanager_admin
<a href="<?php echo SportsManagerURL('&task=admin_spieler'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_PLAYERS'); ?></a> <a href="<?php echo SportsManagerURL('&task=admin_spieler'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_PLAYERS'); ?></a>
</td> </td>
<?php <?php
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten); $Spalte_Nr = self::checkZeilenumbruch($Spalte_Nr, $max_Spalten);
} }
if (benutzerZugriff("vereine_aendern")) { if (benutzerZugriff("vereine_aendern")) {
?> ?>
@@ -74,7 +75,7 @@ class HTML_sportsmanager_admin
<a href="<?php echo SportsManagerURL('&task=admin_vereine'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_CLUBS'); ?></a> <a href="<?php echo SportsManagerURL('&task=admin_vereine'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_CLUBS'); ?></a>
</td> </td>
<?php <?php
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten); $Spalte_Nr = self::checkZeilenumbruch($Spalte_Nr, $max_Spalten);
} }
if (benutzerZugriff("organisationen_aendern")) { if (benutzerZugriff("organisationen_aendern")) {
?> ?>
@@ -82,7 +83,7 @@ class HTML_sportsmanager_admin
<a href="<?php echo SportsManagerURL('&task=admin_veranstalter'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_ORGANISATIONS'); ?></a> <a href="<?php echo SportsManagerURL('&task=admin_veranstalter'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_ORGANISATIONS'); ?></a>
</td> </td>
<?php <?php
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten); $Spalte_Nr = self::checkZeilenumbruch($Spalte_Nr, $max_Spalten);
} }
if (benutzerZugriff("kategorien_aendern")) { if (benutzerZugriff("kategorien_aendern")) {
?> ?>
@@ -90,7 +91,7 @@ class HTML_sportsmanager_admin
<a href="<?php echo SportsManagerURL('&task=admin_kategorien'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_CATEGORIES'); ?></a> <a href="<?php echo SportsManagerURL('&task=admin_kategorien'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_CATEGORIES'); ?></a>
</td> </td>
<?php <?php
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten); $Spalte_Nr = self::checkZeilenumbruch($Spalte_Nr, $max_Spalten);
} }
if (benutzerZugriff("moderatoren_aendern")) { if (benutzerZugriff("moderatoren_aendern")) {
?> ?>
@@ -98,7 +99,7 @@ class HTML_sportsmanager_admin
<a href="<?php echo SportsManagerURL('&task=admin_moderatoren'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_MODERATORS'); ?></a> <a href="<?php echo SportsManagerURL('&task=admin_moderatoren'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_MODERATORS'); ?></a>
</td> </td>
<?php <?php
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten); $Spalte_Nr = self::checkZeilenumbruch($Spalte_Nr, $max_Spalten);
} }
if (benutzerZugriff("einstufungen_aendern")) { if (benutzerZugriff("einstufungen_aendern")) {
?> ?>
@@ -106,7 +107,7 @@ class HTML_sportsmanager_admin
<a href="<?php echo SportsManagerURL('&task=admin_einstufungen'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_CLASSIFICATIONS'); ?></a> <a href="<?php echo SportsManagerURL('&task=admin_einstufungen'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_CLASSIFICATIONS'); ?></a>
</td> </td>
<?php <?php
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten); $Spalte_Nr = self::checkZeilenumbruch($Spalte_Nr, $max_Spalten);
} }
if (benutzerZugriff("basiseinstellungen_aendern")) { if (benutzerZugriff("basiseinstellungen_aendern")) {
?> ?>
@@ -114,13 +115,13 @@ class HTML_sportsmanager_admin
<a href="<?php echo SportsManagerURL('&task=admin_einstellungen'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_SETTINGS'); ?></a> <a href="<?php echo SportsManagerURL('&task=admin_einstellungen'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_SETTINGS'); ?></a>
</td> </td>
<?php <?php
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten); $Spalte_Nr = self::checkZeilenumbruch($Spalte_Nr, $max_Spalten);
?> ?>
<td style="padding-right: 15px" nowrap> <td style="padding-right: 15px" nowrap>
<a href="<?php echo SportsManagerURL('&task=admin_datenbank'); ?>"><?php echo $externe_datenbank ? Text::_('COM_SPORTSMANAGER_DATABASE_EXTERNAL') : Text::_('COM_SPORTSMANAGER_DATABASE_LOCAL'); ?></a> <a href="<?php echo SportsManagerURL('&task=admin_datenbank'); ?>"><?php echo $externe_datenbank ? Text::_('COM_SPORTSMANAGER_DATABASE_EXTERNAL') : Text::_('COM_SPORTSMANAGER_DATABASE_LOCAL'); ?></a>
</td> </td>
<?php <?php
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten); $Spalte_Nr = self::checkZeilenumbruch($Spalte_Nr, $max_Spalten);
} }
if (benutzerZugriff("termine_aendern")) { if (benutzerZugriff("termine_aendern")) {
?> ?>
@@ -128,7 +129,7 @@ class HTML_sportsmanager_admin
<a href="<?php echo SportsManagerURL('&task=admin_termine'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_APPOINTMENTS'); ?></a> <a href="<?php echo SportsManagerURL('&task=admin_termine'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_APPOINTMENTS'); ?></a>
</td> </td>
<?php <?php
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten); $Spalte_Nr = self::checkZeilenumbruch($Spalte_Nr, $max_Spalten);
} }
if (benutzerZugriff("verteiler_aendern") || benutzerZugriff("verteiler_lesen")) { if (benutzerZugriff("verteiler_aendern") || benutzerZugriff("verteiler_lesen")) {
?> ?>
@@ -136,7 +137,7 @@ class HTML_sportsmanager_admin
<a href="<?php echo SportsManagerURL('&task=admin_verteiler'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_MAILING_LISTS'); ?></a> <a href="<?php echo SportsManagerURL('&task=admin_verteiler'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_MAILING_LISTS'); ?></a>
</td> </td>
<?php <?php
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten); $Spalte_Nr = self::checkZeilenumbruch($Spalte_Nr, $max_Spalten);
} }
if (benutzerZugriff("rechnungen_aendern") && $statistik["saisons"] > 0) { if (benutzerZugriff("rechnungen_aendern") && $statistik["saisons"] > 0) {
?> ?>
@@ -144,7 +145,7 @@ class HTML_sportsmanager_admin
<a href="<?php echo SportsManagerURL('&task=admin_rechnungen'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_INVOICES'); ?></a> <a href="<?php echo SportsManagerURL('&task=admin_rechnungen'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_INVOICES'); ?></a>
</td> </td>
<?php <?php
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten); $Spalte_Nr = self::checkZeilenumbruch($Spalte_Nr, $max_Spalten);
} }
if (benutzerZugriff("spielorte_aendern")) { if (benutzerZugriff("spielorte_aendern")) {
?> ?>
@@ -152,7 +153,7 @@ class HTML_sportsmanager_admin
<a href="<?php echo SportsManagerURL('&task=admin_spielorte'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_LOCATIONS'); ?></a> <a href="<?php echo SportsManagerURL('&task=admin_spielorte'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_LOCATIONS'); ?></a>
</td> </td>
<?php <?php
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten); $Spalte_Nr = self::checkZeilenumbruch($Spalte_Nr, $max_Spalten);
} }
if (benutzerZugriff("saisons_aendern")) { if (benutzerZugriff("saisons_aendern")) {
?> ?>
@@ -160,7 +161,7 @@ class HTML_sportsmanager_admin
<a href="<?php echo SportsManagerURL('&task=admin_saisons'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_SEASONS'); ?></a> <a href="<?php echo SportsManagerURL('&task=admin_saisons'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_SEASONS'); ?></a>
</td> </td>
<?php <?php
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten); $Spalte_Nr = self::checkZeilenumbruch($Spalte_Nr, $max_Spalten);
} }
if (benutzerZugriff("mannschaftsspielplaene_aendern")) { if (benutzerZugriff("mannschaftsspielplaene_aendern")) {
?> ?>
@@ -168,7 +169,7 @@ class HTML_sportsmanager_admin
<a href="<?php echo SportsManagerURL('&task=admin_teamspiel_modi'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_TEAM_PLANS'); ?></a> <a href="<?php echo SportsManagerURL('&task=admin_teamspiel_modi'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_TEAM_PLANS'); ?></a>
</td> </td>
<?php <?php
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten); $Spalte_Nr = self::checkZeilenumbruch($Spalte_Nr, $max_Spalten);
} }
if (benutzerZugriff("verschieberegeln_aendern")) { if (benutzerZugriff("verschieberegeln_aendern")) {
?> ?>
@@ -176,7 +177,7 @@ class HTML_sportsmanager_admin
<a href="<?php echo SportsManagerURL('&task=admin_verschieben_modi'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_POSTPONE_RULES'); ?></a> <a href="<?php echo SportsManagerURL('&task=admin_verschieben_modi'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_POSTPONE_RULES'); ?></a>
</td> </td>
<?php <?php
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten); $Spalte_Nr = self::checkZeilenumbruch($Spalte_Nr, $max_Spalten);
} }
if (benutzerZugriff("ranglistenwertungen_aendern")) { if (benutzerZugriff("ranglistenwertungen_aendern")) {
?> ?>
@@ -184,7 +185,7 @@ class HTML_sportsmanager_admin
<a href="<?php echo SportsManagerURL('&task=admin_ranglistensysteme'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_RANKING_RATING'); ?></a> <a href="<?php echo SportsManagerURL('&task=admin_ranglistensysteme'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_RANKING_RATING'); ?></a>
</td> </td>
<?php <?php
$Spalte_Nr = checkZeilenumbruch($Spalte_Nr, $max_Spalten); $Spalte_Nr = self::checkZeilenumbruch($Spalte_Nr, $max_Spalten);
} }
?> ?>
</tr> </tr>
@@ -605,19 +606,23 @@ class HTML_sportsmanager_admin
static function adminEinstellungen($einstellungen): void static function adminEinstellungen($einstellungen): void
{ {
global $params; global $params;
?> ?>
<style>
</style>
<div <div
class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_SETTINGS'); ?> class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_SETTINGS'); ?>
: <?php echo Text::_('COM_SPORTSMANAGER_CHANGING'); ?></div> : <?php echo Text::_('COM_SPORTSMANAGER_CHANGING'); ?></div>
<form action="<?php echo SportsManagerURL(); ?>" method="post" name="adminForm" id="adminForm"> <form action="<?php echo SportsManagerURL(); ?>" method="post" name="adminForm" id="adminForm">
<div class="uk-overflow-auto"> <div class="uk-overflow-auto">
<table class="uk-table" style="width: 100%"> <table style="width: 100%">
<tr> <tr>
<td nowrap style="width: 60%; vertical-align: top"> <td nowrap style="width: 60%; vertical-align: top">
<div class="uk-overflow-auto"> <div class="uk-overflow-auto">
<table class="uk-table" style="width: 100%"> <table style="width: 100%">
<tr> <tr>
<td nowrap style="width: 20%; text-align: right"> <td nowrap style="width: 20%; text-align: right">
<label <label
@@ -625,8 +630,8 @@ class HTML_sportsmanager_admin
:</label> :</label>
</td> </td>
<td nowrap> <td nowrap>
<input class="inputbox" type="text" name="basis_spielernr" <input class="uk-select uk-form-width-medium" type="text" name="basis_spielernr"
id="base_playerid" size="30" maxlength="30" id="base_playerid" size="30" maxlength="30" style="height: 36px;"
value="<?php if (isset($einstellungen["basis_spielernr"])) echo htmlentities_utf8($einstellungen["basis_spielernr"]); ?>"/> value="<?php if (isset($einstellungen["basis_spielernr"])) echo htmlentities_utf8($einstellungen["basis_spielernr"]); ?>"/>
</td> </td>
</tr> </tr>
@@ -701,6 +706,24 @@ class HTML_sportsmanager_admin
</select> </select>
</td> </td>
</tr> </tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label
for="show_tournament_bracket"><?php echo Text::_('COM_SPORTSMANAGER_SHOW_TOURNAMENT_BRACKET'); ?>
:</label>
</td>
<td nowrap>
<select class="uk-select uk-form-width-medium" name="turnierbaum_zeigen"
id="show_tournament_bracket" size="1">
<?php
$turnierbaum_zeigen = array(1 => Text::_('JYES'), 0 => Text::_('JNO'));
foreach ($turnierbaum_zeigen as $wert => $bezeichnung) {
echo "<option value=\"" . $wert . "\"" . (isset($einstellungen["turnierbaum_zeigen"]) && $einstellungen["turnierbaum_zeigen"] == $wert ? " selected" : "") . ">" . htmlentities_utf8($bezeichnung) . "</option>";
}
?>
</select>
</td>
</tr>
<tr> <tr>
<td nowrap style="width: 20%; text-align: right"> <td nowrap style="width: 20%; text-align: right">
<label <label
@@ -7196,7 +7219,9 @@ class HTML_sportsmanager_admin
10 => Text::_('COM_SPORTSMANAGER_ONLY_DETAILED_RATING_POINT_DIFFERENCE'), 10 => Text::_('COM_SPORTSMANAGER_ONLY_DETAILED_RATING_POINT_DIFFERENCE'),
11 => Text::_('COM_SPORTSMANAGER_ONLY_DETAILED_POINTS_AFTER_POINTSRATE'), 11 => Text::_('COM_SPORTSMANAGER_ONLY_DETAILED_POINTS_AFTER_POINTSRATE'),
-1 => Text::_('COM_SPORTSMANAGER_KO_SIMPLE_FULL'), -1 => Text::_('COM_SPORTSMANAGER_KO_SIMPLE_FULL'),
-2 => Text::_('COM_SPORTSMANAGER_MANUAL_PRO_TEAMS') -2 => Text::_('COM_SPORTSMANAGER_MANUAL_PRO_TEAMS'),
-3 => Text::_('COM_SPORTSMANAGER_CUP_DRAW_EVERY_ROUND'),
-4 => Text::_('COM_SPORTSMANAGER_CUP_USING_SEEDING_LIST')
); );
foreach ($typ as $typ_wert => $typ_bezeichnung) foreach ($typ as $typ_wert => $typ_bezeichnung)
echo "<option value=\"" . $typ_wert . "\"" . ($row != null ? ($row->tabellenwertung == $typ_wert ? " selected" : "") : "") . ">" . htmlentities_utf8($typ_bezeichnung) . "</option>"; echo "<option value=\"" . $typ_wert . "\"" . ($row != null ? ($row->tabellenwertung == $typ_wert ? " selected" : "") : "") . ">" . htmlentities_utf8($typ_bezeichnung) . "</option>";
@@ -7238,6 +7263,24 @@ class HTML_sportsmanager_admin
</select> </select>
</td> </td>
</tr> </tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label
for="spieltag_titel_zeigen"><?php echo Text::_('COM_SPORTSMANAGER_SHOW_MATCHDAY_TITLE'); ?>
:</label>
</td>
<td nowrap>
<select class="uk-select uk-form-width-medium" name="spieltag_titel_zeigen"
id="elo_rating" size="1">
<?php
$spieltag_titel_zeigen = array(Text::_('COM_SPORTSMANAGER_NO'), Text::_('COM_SPORTSMANAGER_YES'));
for ($i = 0; $i <= 1; $i++) {
echo "<option value=\"" . $i . "\"" . ($row != null ? ($row->spieltag_titel_zeigen == $i ? " selected" : "") : "") . ">" . htmlentities_utf8($spieltag_titel_zeigen[$i]) . "</option>";
}
?>
</select>
</td>
</tr>
<tr> <tr>
<td nowrap style="width: 20%; text-align: right"> <td nowrap style="width: 20%; text-align: right">
<label <label
@@ -7388,8 +7431,7 @@ class HTML_sportsmanager_admin
</div> </div>
<input type="submit" name="save" value="<?php echo Text::_('COM_SPORTSMANAGER_SAVE'); ?>" class="button"/> <input type="submit" name="save" value="<?php echo Text::_('COM_SPORTSMANAGER_SAVE'); ?>" class="button"/>
<input type="submit" name="cancel" value="<?php echo Text::_('COM_SPORTSMANAGER_CANCEL'); ?>" <input type="submit" name="cancel" value="<?php echo Text::_('COM_SPORTSMANAGER_CANCEL'); ?>" class="button"/>
class="button"/>
<input type="hidden" name="vorlage" value="<?php echo $vorlage; ?>"/> <input type="hidden" name="vorlage" value="<?php echo $vorlage; ?>"/>
<input type="hidden" name="task" value="admin_veranstaltung_save"/> <input type="hidden" name="task" value="admin_veranstaltung_save"/>
<input type="hidden" name="id" value="<?php echo($row != null ? $row->veranstaltung_id : "0"); ?>"/> <input type="hidden" name="id" value="<?php echo($row != null ? $row->veranstaltung_id : "0"); ?>"/>
@@ -7529,6 +7571,11 @@ class HTML_sportsmanager_admin
{ {
global $params; global $params;
?> ?>
<style>
td {
padding: 2px;
}
</style>
<div <div
class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_TEAM_TO_COMPETE'); ?> class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_TEAM_TO_COMPETE'); ?>
'<?php echo htmlentities_utf8($veranstaltung->bezeichnung); ?> '<?php echo htmlentities_utf8($veranstaltung->bezeichnung); ?>
@@ -7537,22 +7584,33 @@ class HTML_sportsmanager_admin
<form action="<?php echo SportsManagerURL(); ?>" method="post" name="adminForm" id="adminForm" <form action="<?php echo SportsManagerURL(); ?>" method="post" name="adminForm" id="adminForm"
enctype="multipart/form-data"> enctype="multipart/form-data">
<div class="uk-overflow-auto"> <div class="uk-overflow-auto">
<table class="uk-table" style="width: 100%"> <table class="" style="width: 100%;padding-top: 20px;">
<tr> <tr>
<td nowrap style="width: 60%; vertical-align: top"> <td nowrap style="width: 60%; vertical-align: top;">
<div class="uk-overflow-auto"> <div class="uk-overflow-auto">
<table class="uk-table" style="width: 100%"> <table class="" style="width: 100%;">
<tr> <tr>
<td nowrap style="width: 20%; text-align: right"> <td nowrap style="width: 20%; text-align: right;">
<label for="team_name"><?php echo Text::_('COM_SPORTSMANAGER_TEAM_NAME'); ?> <label for="team_name"><?php echo Text::_('COM_SPORTSMANAGER_TEAM_NAME'); ?>
:</label> :</label>
</td> </td>
<td nowrap> <td nowrap>
<input class="inputbox" type="text" name="teamname" id="team_name" size="50" <input class="uk-select uk-form-width-medium" type="text" name="teamname" id="team_name"
maxlength="50" size="50" maxlength="50" style="height: 34px; width: 370px;"
value="<?php if ($row != null) echo htmlentities_utf8($row->teamname); ?>"/> value="<?php if ($row != null) echo htmlentities_utf8($row->teamname); ?>"/>
</td> </td>
</tr> </tr>
<tr>
<td nowrap style="width: 20%; text-align: right;">
<label for="team_name"><?php echo Text::_('COM_SPORTSMANAGER_TEAM_NAME_SHORT'); ?>
:</label>
</td>
<td nowrap>
<input class="uk-select uk-form-width-medium" type="text" name="teamname_kurz" id="team_name_kurz"
size="50" maxlength="24" style="height: 34px; width: 370px;"
value="<?php if ($row != null) echo htmlentities_utf8($row->teamname_kurz); ?>"/>
</td>
</tr>
<?php <?php
if ($veranstaltung->tabellenwertung == -2) { if ($veranstaltung->tabellenwertung == -2) {
?> ?>
@@ -7562,7 +7620,7 @@ class HTML_sportsmanager_admin
:</label> :</label>
</td> </td>
<td nowrap> <td nowrap>
<input class="inputbox" type="text" name="platz" id="place" size="5" <input class="uk-select uk-form-width-medium" type="text" name="platz" id="place" size="5"
maxlength="6" maxlength="6"
value="<?php if ($row != null) echo htmlentities_utf8($row->platz); ?>"/> value="<?php if ($row != null) echo htmlentities_utf8($row->platz); ?>"/>
</td> </td>
@@ -7576,7 +7634,7 @@ class HTML_sportsmanager_admin
</td> </td>
<td nowrap> <td nowrap>
<select class="uk-select uk-form-width-medium" name="verein_id" id="club" <select class="uk-select uk-form-width-medium" name="verein_id" id="club"
size="1"> style="width: 370px;" size="1">
<option <option
value="0"><?php echo Text::_('COM_SPORTSMANAGER_NONE'); ?></option> value="0"><?php echo Text::_('COM_SPORTSMANAGER_NONE'); ?></option>
<?php <?php
@@ -7603,8 +7661,8 @@ class HTML_sportsmanager_admin
:</label> :</label>
</td> </td>
<td nowrap> <td nowrap>
<input class="inputbox" type="text" name="tischtyp" id="table_type" <input class="uk-select uk-form-width-medium" type="text" name="tischtyp" id="table_type"
size="50" maxlength="200" size="50" maxlength="200" style="height: 34px; width: 370px;"
value="<?php if ($row != null) echo htmlentities_utf8($row->tischtyp); ?>"/> value="<?php if ($row != null) echo htmlentities_utf8($row->tischtyp); ?>"/>
</td> </td>
</tr> </tr>
@@ -7615,9 +7673,8 @@ class HTML_sportsmanager_admin
:</label> :</label>
</td> </td>
<td nowrap> <td nowrap>
<input class="inputbox" type="text" name="tischeigenschaften" <input class="uk-select uk-form-width-medium" type="text" name="tischeigenschaften" id="table_characteristics"
id="table_characteristics" size="50" size="24" maxlength="50" style="height: 34px; width: 370px;"
maxlength="200"
value="<?php if ($row != null) echo htmlentities_utf8($row->tischeigenschaften); ?>"/> value="<?php if ($row != null) echo htmlentities_utf8($row->tischeigenschaften); ?>"/>
</td> </td>
</tr> </tr>
@@ -7626,8 +7683,8 @@ class HTML_sportsmanager_admin
<?php echo Text::_('COM_SPORTSMANAGER_HOME_MATCH_TIME'); ?>: <?php echo Text::_('COM_SPORTSMANAGER_HOME_MATCH_TIME'); ?>:
</td> </td>
<td nowrap> <td nowrap>
<select class="uk-select uk-form-width-medium" name="heimspiel_wochentag" <select class="uk-select uk-form-width-small" name="heimspiel_wochentag"
size="1" style="width: 160px;" size="1"
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_HOME_MATCH_TIME'); ?>"> aria-label="<?php echo Text::_('COM_SPORTSMANAGER_HOME_MATCH_TIME'); ?>">
<?php <?php
$wochentag = $row != null ? $row->heimspiel_wochentag : 0; $wochentag = $row != null ? $row->heimspiel_wochentag : 0;
@@ -7638,9 +7695,9 @@ class HTML_sportsmanager_admin
} }
?> ?>
</select> </select>
<select class="uk-select uk-form-width-medium" <select class="uk-select uk-form-width-small"
name="heimspiel_uhrzeit_stunden" name="heimspiel_uhrzeit_stunden"
size="1" style="width: 100px;" size="1"
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_HOME_MATCH_TIME'); ?>"> aria-label="<?php echo Text::_('COM_SPORTSMANAGER_HOME_MATCH_TIME'); ?>">
<?php <?php
$stunden = $row != null ? floor($row->heimspiel_uhrzeit / 100) : -1; $stunden = $row != null ? floor($row->heimspiel_uhrzeit / 100) : -1;
@@ -7650,9 +7707,9 @@ class HTML_sportsmanager_admin
} }
?> ?>
</select> </select>
<select class="uk-select uk-form-width-medium" <select class="uk-select uk-form-width-small"
name="heimspiel_uhrzeit_minuten" name="heimspiel_uhrzeit_minuten"
size="1" style="width: 100px;" size="1"
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_HOME_MATCH_TIME'); ?>"> aria-label="<?php echo Text::_('COM_SPORTSMANAGER_HOME_MATCH_TIME'); ?>">
<?php <?php
$minuten = $row != null ? $row->heimspiel_uhrzeit % 100 : -1; $minuten = $row != null ? $row->heimspiel_uhrzeit % 100 : -1;
@@ -7671,7 +7728,7 @@ class HTML_sportsmanager_admin
:</label> :</label>
</td> </td>
<td nowrap> <td nowrap>
<select class="uk-select uk-form-width-medium" name="heimspielort_id" <select class="uk-select uk-form-width-medium" name="heimspielort_id" style="width: 370px;"
id="home_venue" size="1"> id="home_venue" size="1">
<option <option
value="0"><?php echo Text::_('COM_SPORTSMANAGER_NONE'); ?></option> value="0"><?php echo Text::_('COM_SPORTSMANAGER_NONE'); ?></option>
@@ -7699,7 +7756,7 @@ class HTML_sportsmanager_admin
:</label> :</label>
</td> </td>
<td nowrap> <td nowrap>
<select class="uk-select uk-form-width-medium" name="nichtraucherschutz" <select class="uk-select uk-form-width-medium" name="nichtraucherschutz" style="width: 370px;"
id="non_smoker_protection" size="1"> id="non_smoker_protection" size="1">
<?php <?php
$typ = array( $typ = array(
@@ -7730,7 +7787,7 @@ class HTML_sportsmanager_admin
:</label> :</label>
</td> </td>
<td nowrap> <td nowrap>
<select class="uk-select uk-form-width-medium" name="zusatzpunkte" <select class="uk-select uk-form-width-medium" name="zusatzpunkte" style="width: 370px;"
id="penality_points" size="1"> id="penality_points" size="1">
<?php <?php
echo "<option value=\"0\">0</option>"; echo "<option value=\"0\">0</option>";
@@ -7775,7 +7832,7 @@ class HTML_sportsmanager_admin
echo "<input type=\"hidden\" name=\"weitere_veranstaltung_id_" . $i . "\" value=\"" . $veranstaltungen_beruecksichtigt[$i] . "\">"; echo "<input type=\"hidden\" name=\"weitere_veranstaltung_id_" . $i . "\" value=\"" . $veranstaltungen_beruecksichtigt[$i] . "\">";
} else { } else {
?> ?>
<select class="uk-select uk-form-width-medium" <select class="uk-select uk-form-width-medium" style="width: 370px;"
name="weitere_veranstaltung_id_<?php echo $i; ?>" name="weitere_veranstaltung_id_<?php echo $i; ?>"
id="further_competition" size="1"> id="further_competition" size="1">
<option value="0"></option> <option value="0"></option>
@@ -7891,8 +7948,8 @@ class HTML_sportsmanager_admin
$berechtigte = $berechtigt_fuer_team != null ? count($berechtigt_fuer_team) : 0; $berechtigte = $berechtigt_fuer_team != null ? count($berechtigt_fuer_team) : 0;
for ($nummer = 1; $nummer <= 6; $nummer++) { for ($nummer = 1; $nummer <= 6; $nummer++) {
?> ?>
<td nowrap> <tr><td nowrap>
<select class="uk-select uk-form-width-medium" <select class="uk-select uk-form-width-medium" style="width: 370px;"
name="berechtigt_fuer_team_user_<?php echo $nummer; ?>_id" name="berechtigt_fuer_team_user_<?php echo $nummer; ?>_id"
size="1" size="1"
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_ELIGIBLE_FOR_TEAM'); ?>"> aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_ELIGIBLE_FOR_TEAM'); ?>">
@@ -7902,9 +7959,8 @@ class HTML_sportsmanager_admin
echo "<option value=\"" . $user->id . "\"" . ($nummer <= $berechtigte && $berechtigt_fuer_team[$nummer - 1]->berechtigt_user_id == $user->id ? "selected" : "") . ">" . htmlentities_utf8($user->name) . ($user->username != $user->name ? (" (" . htmlentities_utf8($user->username) . ")") : "") . "</option>"; echo "<option value=\"" . $user->id . "\"" . ($nummer <= $berechtigte && $berechtigt_fuer_team[$nummer - 1]->berechtigt_user_id == $user->id ? "selected" : "") . ">" . htmlentities_utf8($user->name) . ($user->username != $user->name ? (" (" . htmlentities_utf8($user->username) . ")") : "") . "</option>";
?> ?>
</select> </select>
</td> </td></tr>
<?php <?php
if ($nummer != 0 && $nummer % 2 == 0) echo "</tr><tr>";
} }
?> ?>
</tr> </tr>
@@ -8622,39 +8678,52 @@ class HTML_sportsmanager_admin
static function adminBegegnungen($veranstaltung, $modus, $rows): void static function adminBegegnungen($veranstaltung, $modus, $rows): void
{ {
global $params; global $params;
$max_Spalten = 4;
$Spalte_Nr = 0;
?> ?>
<div <div
class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_ENCOUNTERS'); ?> class="componentheading<?php echo $params->get('pageclass_sfx'); ?>">
<?php echo Text::_('COM_SPORTSMANAGER_ENCOUNTERS'); ?>
'<?php echo htmlentities_utf8($veranstaltung->bezeichnung); ?> '<?php echo htmlentities_utf8($veranstaltung->bezeichnung); ?>
': <?php echo Text::_('COM_SPORTSMANAGER_JOOMLA_MANAGEMENT'); ?></div> ': <?php echo Text::_('COM_SPORTSMANAGER_JOOMLA_MANAGEMENT'); ?></div>
<table style="border-spacing: 10px">
<table style="border-spacing: 10px; width: 100%;">
<tr> <tr>
<td nowrap> <td colspan="3" nowrap>
<a href="<?php echo SportsManagerURL('&task=admin_uebersicht'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_BACK'); ?></a> <a href="<?php echo SportsManagerURL('&task=admin_uebersicht'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_BACK'); ?></a>
</td> </td>
</tr> </tr>
<tr>
<td nowrap> <td nowrap>
<a href="<?php echo SportsManagerURL('&task=admin_begegnung_edit&veranstaltungid=' . $veranstaltung->veranstaltung_id); ?>"><?php echo Text::_('COM_SPORTSMANAGER_ADD_MEETING'); ?></a> <a href="<?php echo SportsManagerURL('&task=admin_begegnung_edit&veranstaltungid=' . $veranstaltung->veranstaltung_id); ?>"><?php echo Text::_('COM_SPORTSMANAGER_ADD_MEETING'); ?></a>
</td> </td>
<?php $Spalte_Nr = self::checkZeilenumbruch($Spalte_Nr, $max_Spalten); ?>
<?php if ($veranstaltung->tabellenwertung == -3 || $veranstaltung->tabellenwertung == -4){ ?>
<td nowrap> <td nowrap>
<a href="<?php echo SportsManagerURL('&task=admin_begegnungen_runde_erzeugen_form&veranstaltungid=' . $veranstaltung->veranstaltung_id); ?>"><?php echo $veranstaltung->unterteilung == 0 ? Text::_('COM_SPORTSMANAGER_GAMEDAY') : Text::_('COM_SPORTSMANAGER_ROUND_GENERATION'); ?></a> <a href="<?php echo SportsManagerURL('&task=admin_begegnungen_pokalrunde_auslosen_form&veranstaltungid=' . $veranstaltung->veranstaltung_id); ?>"><?php echo Text::_('COM_SPORTSMANAGER_CUP_ROUND_GENERATION'); ?></a>
</td> </td>
<?php $Spalte_Nr = self::checkZeilenumbruch($Spalte_Nr, $max_Spalten); ?>
<?php } else { ?>
<td nowrap>
<a href="<?php echo SportsManagerURL('&task=admin_begegnungen_runde_erzeugen_form&veranstaltungid=' . $veranstaltung->veranstaltung_id); ?>"><?php echo $veranstaltung->unterteilung == 0 ? Text::_('COM_SPORTSMANAGER_GAMEDAY_GENERATION') : Text::_('COM_SPORTSMANAGER_ROUND_GENERATION'); ?></a>
</td>
<?php $Spalte_Nr = self::checkZeilenumbruch($Spalte_Nr, $max_Spalten); ?>
<td nowrap> <td nowrap>
<a href="<?php echo SportsManagerURL('&task=admin_begegnungen_generieren_form&veranstaltungid=' . $veranstaltung->veranstaltung_id); ?>"><?php echo Text::_('COM_SPORTSMANAGER_GENERATE_GROUP_GAME'); ?></a> <a href="<?php echo SportsManagerURL('&task=admin_begegnungen_generieren_form&veranstaltungid=' . $veranstaltung->veranstaltung_id); ?>"><?php echo Text::_('COM_SPORTSMANAGER_GENERATE_GROUP_GAME'); ?></a>
</td> </td>
<?php $Spalte_Nr = self::checkZeilenumbruch($Spalte_Nr, $max_Spalten); ?>
<td nowrap> <td nowrap>
<a href="<?php echo SportsManagerURL('&task=admin_begegnungen_importieren_form&veranstaltungid=' . $veranstaltung->veranstaltung_id); ?>"><?php echo Text::_('COM_SPORTSMANAGER_IMPORT_GROUP_GAME'); ?></a> <a href="<?php echo SportsManagerURL('&task=admin_begegnungen_importieren_form&veranstaltungid=' . $veranstaltung->veranstaltung_id); ?>"><?php echo Text::_('COM_SPORTSMANAGER_IMPORT_GROUP_GAME'); ?></a>
</td> </td>
<?php $Spalte_Nr = self::checkZeilenumbruch($Spalte_Nr, $max_Spalten); ?>
<?php } ?>
<td nowrap> <td nowrap>
<a href="<?php echo SportsManagerURL('&task=admin_begegnungen_alle_entfernen&veranstaltungid=' . $veranstaltung->veranstaltung_id); ?>" <a href="<?php echo SportsManagerURL('&task=admin_begegnungen_alle_entfernen&veranstaltungid=' . $veranstaltung->veranstaltung_id); ?>"
onclick="return confirm('<?php echo Text::_('COM_SPORTSMANAGER_REMOVE_ALL_ENCOUNTERS'); ?>');"><?php echo Text::_('COM_SPORTSMANAGER_REMOVE_ALL_MATCHES'); ?></a> onclick="return confirm('<?php echo Text::_('COM_SPORTSMANAGER_REMOVE_ALL_ENCOUNTERS'); ?>');"><?php echo Text::_('COM_SPORTSMANAGER_REMOVE_ALL_MATCHES'); ?></a>
</td> </td>
<?php $Spalte_Nr = self::checkZeilenumbruch($Spalte_Nr, $max_Spalten); ?>
<td nowrap> <td nowrap>
<a href="<?php echo SportsManagerURL('&task=admin_begegnungen_export_form&veranstaltungid=' . $veranstaltung->veranstaltung_id); ?>"><?php echo Text::_('COM_SPORTSMANAGER_EXPORT'); ?></a> <a href="<?php echo SportsManagerURL('&task=admin_begegnungen_export_form&veranstaltungid=' . $veranstaltung->veranstaltung_id); ?>"><?php echo Text::_('COM_SPORTSMANAGER_EXPORT'); ?></a>
</td> </td>
</tr>
</table> </table>
<?php <?php
@@ -8692,13 +8761,21 @@ class HTML_sportsmanager_admin
<?php <?php
if ($veranstaltung->unterteilung == 0 || $veranstaltung->unterteilung == 1) { if ($veranstaltung->unterteilung == 0 || $veranstaltung->unterteilung == 1) {
?> ?>
<td nowrap style="text-align: center"> <td nowrap style="text-align: center;">
<a id="id<?php echo $row->begegnung_id; ?>"></a> <a id="id<?php echo $row->begegnung_id; ?>"></a>
<?php <?php
if ($veranstaltung->spieltag_titel_zeigen == 0){
if ($spieltag != $row->spieltag) { if ($spieltag != $row->spieltag) {
$spieltag = $row->spieltag; $spieltag = $row->spieltag;
echo htmlentities_utf8(Rundenbezeichnung($spieltag, $veranstaltung->unterteilung == 0, true)); 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, $veranstaltung->unterteilung == 0, true);
}
}
?> ?>
</td> </td>
<?php <?php
@@ -8721,8 +8798,8 @@ class HTML_sportsmanager_admin
echo "<br/><small>" . Text::_('COM_SPORTSMANAGER_MATCH_TABLE') . ": " . htmlentities_utf8($row->tisch) . "</small>"; echo "<br/><small>" . Text::_('COM_SPORTSMANAGER_MATCH_TABLE') . ": " . htmlentities_utf8($row->tisch) . "</small>";
?> ?>
</td> </td>
<td nowrap><?php echo formatTeamName($row->heim_name, $row->heim_team_id, $row->verantwortliches_team); ?></td> <td nowrap><?php echo self::formatTeamName($row->heim_name, $row->heim_team_id, $row->verantwortliches_team); ?></td>
<td nowrap><?php echo formatTeamName($row->gast_name, $row->gast_team_id, $row->verantwortliches_team); ?></td> <td nowrap><?php echo self::formatTeamName($row->gast_name, $row->gast_team_id, $row->verantwortliches_team); ?></td>
<td nowrap style="text-align: center"><a <td nowrap style="text-align: center"><a
href="<?php echo SportsManagerURL('&task=admin_begegnung_spielplan_edit&veranstaltungid=' . $veranstaltung->veranstaltung_id . '&id=' . $row->begegnung_id); ?>"><?php if ($ergebnis_vorhanden) echo $row->heim_punkte . " : " . $row->gast_punkte; else echo "_ : _" ?></a><?php if ($row->unbestaetigtes_ergebnis_id != null) echo "<br /><small>" . ($row->zwischenergebnis ? "live" : "unbest&auml;tigt") . "</small>"; else if ($row->fehlende_spieler > 0) echo " (*)"; ?> href="<?php echo SportsManagerURL('&task=admin_begegnung_spielplan_edit&veranstaltungid=' . $veranstaltung->veranstaltung_id . '&id=' . $row->begegnung_id); ?>"><?php if ($ergebnis_vorhanden) echo $row->heim_punkte . " : " . $row->gast_punkte; else echo "_ : _" ?></a><?php if ($row->unbestaetigtes_ergebnis_id != null) echo "<br /><small>" . ($row->zwischenergebnis ? "live" : "unbest&auml;tigt") . "</small>"; else if ($row->fehlende_spieler > 0) echo " (*)"; ?>
</td> </td>
@@ -8730,9 +8807,9 @@ class HTML_sportsmanager_admin
style="text-align: center"><?php if ($ergebnis_vorhanden) echo $row->heim_spielpunkte . " : " . $row->gast_spielpunkte; else echo "_ : _" ?><?php if ($row->unbestaetigtes_ergebnis_id != null) echo "<br /><small>" . ($row->zwischenergebnis ? "live" : "unbest&auml;tigt") . "</small>"; ?></td> style="text-align: center"><?php if ($ergebnis_vorhanden) echo $row->heim_spielpunkte . " : " . $row->gast_spielpunkte; else echo "_ : _" ?><?php if ($row->unbestaetigtes_ergebnis_id != null) echo "<br /><small>" . ($row->zwischenergebnis ? "live" : "unbest&auml;tigt") . "</small>"; ?></td>
<td nowrap align="center"> <td nowrap align="center">
<?php echo <?php echo
formatTimediff($row->termin_spiel, $row->ergebnis_vorgeschlagen, false) self::formatTimediff($row->termin_spiel, $row->ergebnis_vorgeschlagen, false)
. " / " . " / "
. formatTimediff($row->ergebnis_vorgeschlagen, $row->ergebnis_akzeptiert, false); . self::formatTimediff($row->ergebnis_vorgeschlagen, $row->ergebnis_akzeptiert, false);
?> ?>
</td> </td>
<td nowrap><small><a <td nowrap><small><a
@@ -9806,21 +9883,22 @@ class HTML_sportsmanager_admin
static function adminBegegnungenImportieren($veranstaltung): void static function adminBegegnungenImportieren($veranstaltung): void
{ {
//Jürgen Meyer 07.03.2025
global $params; global $params;
?> ?>
<div class="componentheading<?php echo $params->get('pageclass_sfx'); ?>" <div class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"
style='background-color: blue; width: 500px; color: white;'> style='background-color: blue; width: 600px; color: white;'>
<?php echo Text::_('COM_SPORTSMANAGER_Import_GROUP_GAME2'); ?>&nbsp; <?php echo Text::_('COM_SPORTSMANAGER_Import_GROUP_GAME2'); ?>&nbsp;
<?php echo htmlentities_utf8($veranstaltung->bezeichnung); ?></div> <?php echo htmlentities_utf8($veranstaltung->bezeichnung); ?></div>
<div class="componentheading<?php echo $params->get('pageclass_sfx'); ?>" <div class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"
style='background-color:#0066CC; width: 500px; color: white;font-size: 12px;'> style='background-color:#0066CC; width: 600px; color: white;font-size: 14px;'>
Die Datei muss die Spalten Spieltag_Nr;Spielstart;Heim;Gast enthalten!<br> Die Datei muss die Spalten Spieltag_Nr;Spielstart;Heim;Gast enthalten!<br>
Die Daten müssen mit Semikolon getrennt sein<br> Die Daten müssen mit Semikolon getrennt sein!<br>
Die Spieltag_Nr muss eine Zahl zwischen 1 und 99 sein!<br> Die Spieltag_Nr muss eine Zahl zwischen 1 und 99 sein!<br>
Spielstart muss das Format TT.MM.JJJJ hh:mm:ss oder YYYY-MM-DD hh:mm:ss haben!<br> Spielstart muss das Format TT.MM.JJJJ hh:mm:ss oder YYYY-MM-DD hh:mm:ss haben!<br>
Die Mannschaften Heim und Gast m&uuml;ssen in der Gruppe enthalten sein! Optional kann auch Kalenderwoche und Spieljahr importiert werden.<br>
Die Mannschaften Heim und Gast m&uuml;ssen in der Gruppe enthalten sein!<br>
Als zusätzliche Option kann auch Spiel_Nr und Spieltag_Titel importiert werden.
</div> </div>
<div class="uk-overflow-auto"> <div class="uk-overflow-auto">
@@ -10092,6 +10170,202 @@ class HTML_sportsmanager_admin
<?php <?php
} }
static function adminBegegnungenPokalrundeAuslosenForm($veranstaltung,$auswahl_rundentitel): void
{
global $params;
$sperren = false;
$Fehlertext = "";
if ($veranstaltung->tabellenwertung == -3)
$task = "admin_begegnungen_pokalrunde_auslosen";
if ($veranstaltung->tabellenwertung == -4)
$task = "admin_begegnungen_pokalrunde_setzliste";
if ($veranstaltung->nicht_abgeschlossene_spiele){
$Fehlertext = "Es wurden noch nicht alle Spiele der vorherigen Runden abgeschlossen!!!";
$sperren = true;
}
if ($veranstaltung->letzteRunde < $veranstaltung->naechsteRunde){
$Fehlertext = "Es wurden alle Runden ausgelost!!!";
$sperren = true;
$veranstaltung->naechsteRunde = "";
$veranstaltung->titelVorschlag = "";
}
?>
<style>
td {
padding: 3px;
}
</style>
<div
class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_COMPETITION'); ?>
'<?php echo htmlentities_utf8($veranstaltung->bezeichnung); ?>
': <?php echo $veranstaltung->unterteilung == 0 ? Text::_('COM_SPORTSMANAGER_GAMEDAY') : Text::_('COM_SPORTSMANAGER_ROUND'); ?>
generieren
</div>
<form action="<?php echo SportsManagerURL(); ?>" method="post" name="adminForm" id="adminForm">
<div class="uk-overflow-auto">
<table class="" style="width: 100%">
<tr>
<td nowrap style="width: 60%; vertical-align: top">
<div class="uk-overflow-auto">
<table class="" style="width: 100%">
<tr>
<td nowrap style="width: 20%; text-align: right">
<label
for="schedule_date"><?php echo Text::_('COM_SPORTSMANAGER_SCHEDULE_DATE'); ?>
:</label>
</td>
<td nowrap>
<script type="text/javascript">
function tag_changed() {
if (document.adminForm.datum_tag.value <= 0) {
document.adminForm.datum_monat.style.display = 'none';
document.adminForm.uhrzeit_stunden.style.display = 'none';
document.adminForm.uhrzeit_minuten.style.display = 'none';
} else {
document.adminForm.datum_monat.style.display = '';
document.adminForm.uhrzeit_stunden.style.display = '';
document.adminForm.uhrzeit_minuten.style.display = '';
}
}
</script>
<select class="uk-select uk-form-width-small" name="datum_tag"
id="schedule_date" size="1"
onchange="tag_changed();">
<?php
$datum = "0000-00-00";
if ($row != null)
if ($row->zeitpunkt != null)
$datum = substr($row->zeitpunkt, 0, 10);
$datum_tag = substr($datum, 8, 2);
echo "<option value=\"\"></option>";
echo "<optgroup label=\"" . Text::_('COM_SPORTSMANAGER_DAY') . "\" />";
for ($i = 1; $i <= 31; $i++) {
echo "<option value=\"" . $i . "\" " . ($datum_tag == $i ? "selected" : "") . ">" . $i . "</option>";
}
echo "<optgroup label=\"" . Text::_('COM_SPORTSMANAGER_CALENDAR_WEEK') . "\" />";
for ($i = 0; $i <= 53; $i++) {
echo "<option value=\"-" . $i . "\">" . Text::_('COM_SPORTSMANAGER_CALENDAR_WEEK_SHORTCUT') . " " . $i . "</option>";
}
?>
</select>
<select class="uk-select uk-form-width-small" name="datum_monat" size="1"
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_SCHEDULE_DATE_MONTH'); ?>">
<?php
$datum_monat = substr($datum, 5, 2);
echo "<option value=\"\"></option>";
$monate = 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'));
for ($i = 1; $i <= 12; $i++) {
echo "<option value=\"" . $i . "\" " . ($datum_monat == $i ? "selected" : "") . ">" . htmlentities_utf8($monate[$i - 1]) . "</option>";
}
?>
</select>
<select class="uk-select uk-form-width-small" name="datum_jahr" size="1"
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_SCHEDULE_DATE_YEAR'); ?>">
<?php
$datum_jahr = substr($datum, 0, 4);
echo "<option value=\"\"></option>";
for ($i = (int)Date("Y") + 5; $i >= 2000; $i--) {
echo "<option value=\"" . $i . "\" " . ($datum_jahr == $i ? "selected" : "") . ">" . $i . "</option>";
}
?>
</select>
<select class="uk-select uk-form-width-small" name="uhrzeit_stunden" size="1"
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_SCHEDULE_DATE_HOUR'); ?>">
<?php
$stunden = -1;
if ($row != null)
if ($row->zeitpunkt != null)
$stunden = intval(substr($row->zeitpunkt, 11, 2));
echo "<option value=\"\"></option>";
for ($i = 0; $i <= 23; $i++) {
echo "<option value=\"" . $i . "\" " . ($datum_jahr > 0 && $stunden == $i ? "selected" : "") . ">" . sprintf("%02d", $i) . "</option>";
}
?>
</select>
<select class="uk-select uk-form-width-small" name="uhrzeit_minuten" size="1" value=""
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_SCHEDULE_DATE_MINUTE'); ?>">
<?php
$minuten = -1;
if ($row != null)
if ($row->zeitpunkt != null)
$minuten = intval(substr($row->zeitpunkt, 14, 2));
echo "<option value=\"\"></option>";
for ($i = 0; $i <= 59; $i += 5) {
echo "<option value=\"" . $i . "\" " . ($datum_jahr > 0 && $minuten == $i ? "selected" : "") . ">" . sprintf("%02d", $i) . "</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<?php echo Text::_('COM_SPORTSMANAGER_ROUND'); ?>
:
</td>
<td nowrap>
<input class="uk-select uk-form-width-xsmall" style="height: 34px; text-align: left;"
name="runde" type="text" readonly value="<?php echo $veranstaltung->naechsteRunde; ?>"/>
</td>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<?php echo Text::_('COM_SPORTSMANAGER_ROUND_TITLE'); ?>
:
</td>
<td nowrap>
<input list="auswahl_rundentitel" class="uk-select uk-form-width-large"
style="height: 34px; text-align: left;" type="text" name="rundentitel" size="32" maxlength="32"
value="<?php echo $veranstaltung->titelVorschlag; ?>"/>
<datalist id="auswahl_rundentitel" >
<?php if ($auswahl_rundentitel){ ?>
<?php foreach($auswahl_rundentitel AS $rundentitel){ ?>
<option value="<?= htmlspecialchars($rundentitel->spieltag_titel, ENT_QUOTES) ?>"></option>
<?php } ?>
<?php } ?>
</datalist>
</td>
</tr>
<?php if ($veranstaltung->letzteRunde == $veranstaltung->naechsteRunde) {$display = "";} else {$display = "none";} ?>
<tr style='display: <?php echo $display; ?>;'>
<td nowrap style="width: 20%; text-align: right">
<label for="spielumplatz3"><?php echo Text::_('COM_SPORTSMANAGER_MATCH_PLACE3'); ?>
:</label>
</td>
<td nowrap>
<select class="uk-select uk-form-width-medium" name="spielumplatz3" id="spielumplatz3" size="1">
<?php
$direktervergleich = array(Text::_('COM_SPORTSMANAGER_NO'), Text::_('COM_SPORTSMANAGER_YES'));
for ($i = 0; $i <= 1; $i++) {
echo "<option value=\"" . $i . "\"" . ($row != null ? ($row->direktervergleich == $i ? " selected" : "") : "") . ">" . htmlentities_utf8($direktervergleich[$i]) . "</option>";
}
?>
</select>
</td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</div>
<?php if (!$sperren){ ?>
<input type="submit" name="save" value="<?php echo Text::_('COM_SPORTSMANAGER_SAVE'); ?>" class="button"/>
<?php } ?>
<input type="submit" name="cancel" value="<?php echo Text::_('COM_SPORTSMANAGER_CANCEL'); ?>" class="button"/>
<input type="hidden" name="task" value="<?php echo $task; ?>"/>
<input type="hidden" name="veranstaltungid" value="<?php echo $veranstaltung->veranstaltung_id; ?>"/>
</form>
<?php
if ($sperren == true)
echo "<span style='display: inline-block; height: 30px; background: red; color: white;vertical-align: middle;'>
$Fehlertext</span>\n";
}
static function adminBegegnungenExport($veranstaltung,$saison): void static function adminBegegnungenExport($veranstaltung,$saison): void
{ {
global $params; global $params;
@@ -21,6 +21,7 @@ COM_SPORTSMANAGER_LOCATIONS="Spielorte"
COM_SPORTSMANAGER_SEASONS="Saisons" COM_SPORTSMANAGER_SEASONS="Saisons"
COM_SPORTSMANAGER_TEAM_PLANS="Mannschaftsspielpl&auml;ne" COM_SPORTSMANAGER_TEAM_PLANS="Mannschaftsspielpl&auml;ne"
COM_SPORTSMANAGER_TEAM_NAME="Mannschaftsname" COM_SPORTSMANAGER_TEAM_NAME="Mannschaftsname"
COM_SPORTSMANAGER_TEAM_NAME_SHORT="Mannschaftsname kurz (max 24)"
COM_SPORTSMANAGER_TEAM_NAME2="Vereinsname" COM_SPORTSMANAGER_TEAM_NAME2="Vereinsname"
COM_SPORTSMANAGER_TEAM_SEAT="Vereinssitz" COM_SPORTSMANAGER_TEAM_SEAT="Vereinssitz"
COM_SPORTSMANAGER_POSTPONE_RULES="Verschieberegeln" COM_SPORTSMANAGER_POSTPONE_RULES="Verschieberegeln"
@@ -130,10 +131,13 @@ COM_SPORTSMANAGER_QUARTER_FINAL_SHORTCUT="1/4"
COM_SPORTSMANAGER_ROUND_OF_16="Achtelfinale" COM_SPORTSMANAGER_ROUND_OF_16="Achtelfinale"
COM_SPORTSMANAGER_ROUND_OF_16_SHORTCUT="1/8" COM_SPORTSMANAGER_ROUND_OF_16_SHORTCUT="1/8"
COM_SPORTSMANAGER_ROUND_OF_32="Sechzehntelfinale" COM_SPORTSMANAGER_ROUND_OF_32="Sechzehntelfinale"
COM_SPORTSMANAGER_ROUND_OF_32_ALT="16-tel-Finale"
COM_SPORTSMANAGER_ROUND_OF_32_SHORTCUT="1/16" COM_SPORTSMANAGER_ROUND_OF_32_SHORTCUT="1/16"
COM_SPORTSMANAGER_ROUND_OF_64="Zweiunddreißigstelfinale" COM_SPORTSMANAGER_ROUND_OF_64="Zweiunddreißigstelfinale"
COM_SPORTSMANAGER_ROUND_OF_64_ALT="32-tel-Finale"
COM_SPORTSMANAGER_ROUND_OF_64_SHORTCUT="1/32" COM_SPORTSMANAGER_ROUND_OF_64_SHORTCUT="1/32"
COM_SPORTSMANAGER_ROUND_OF_128="Vierundsechzigstelfinale" COM_SPORTSMANAGER_ROUND_OF_128="Vierundsechzigstelfinale"
COM_SPORTSMANAGER_ROUND_OF_128_ALT="64-tel-Finale"
COM_SPORTSMANAGER_ROUND_OF_128_SHORTCUT="1/64" COM_SPORTSMANAGER_ROUND_OF_128_SHORTCUT="1/64"
COM_SPORTSMANAGER_DAY_0_SHORTCUT="So." COM_SPORTSMANAGER_DAY_0_SHORTCUT="So."
COM_SPORTSMANAGER_DAY_1_SHORTCUT="Mo." COM_SPORTSMANAGER_DAY_1_SHORTCUT="Mo."
@@ -311,6 +315,7 @@ COM_SPORTSMANAGER_FOR_OTHER_CONTACT="F&uuml;r andere Ansprechpartner"
COM_SPORTSMANAGER_DATES_REGISTERED_USERS="Termine beantragten durch angemeldete Benutzer" COM_SPORTSMANAGER_DATES_REGISTERED_USERS="Termine beantragten durch angemeldete Benutzer"
COM_SPORTSMANAGER_VIEW_ELO_RATING="Elo-Wertung anzeigen" COM_SPORTSMANAGER_VIEW_ELO_RATING="Elo-Wertung anzeigen"
COM_SPORTSMANAGER_VIEW_SPORTSMANAGER_LIZENZ="Lizenz anzeigen" COM_SPORTSMANAGER_VIEW_SPORTSMANAGER_LIZENZ="Lizenz anzeigen"
COM_SPORTSMANAGER_SHOW_TOURNAMENT_BRACKET="Turnierbaum anzeigen"
COM_SPORTSMANAGER_PLAYER_DETAILS="Spielerdetails" COM_SPORTSMANAGER_PLAYER_DETAILS="Spielerdetails"
COM_SPORTSMANAGER_PLAYER_LIST_DETAILS="Spielerliste/-details" COM_SPORTSMANAGER_PLAYER_LIST_DETAILS="Spielerliste/-details"
COM_SPORTSMANAGER_PLAYER_EDIT="Spielerdaten durch Organisations-/Vereinsansprechpartner bearbeiten" COM_SPORTSMANAGER_PLAYER_EDIT="Spielerdaten durch Organisations-/Vereinsansprechpartner bearbeiten"
@@ -605,7 +610,10 @@ COM_SPORTSMANAGER_ONLY_DETAILED_RATING_POINT_DIFFERENCE="Nur Detailwertung nach
COM_SPORTSMANAGER_ONLY_DETAILED_POINTS_AFTER_POINTSRATE="Nur Detailwertung nach Punktequote" COM_SPORTSMANAGER_ONLY_DETAILED_POINTS_AFTER_POINTSRATE="Nur Detailwertung nach Punktequote"
COM_SPORTSMANAGER_KO_SIMPLE_FULL="K.O. (einfach oder vollstaendige Ausspielung aller Plaetze)" COM_SPORTSMANAGER_KO_SIMPLE_FULL="K.O. (einfach oder vollstaendige Ausspielung aller Plaetze)"
COM_SPORTSMANAGER_MANUAL_PRO_TEAMS="Manuell (pro Mannschaft)" COM_SPORTSMANAGER_MANUAL_PRO_TEAMS="Manuell (pro Mannschaft)"
COM_SPORTSMANAGER_CUP_DRAW_EVERY_ROUND="Pokal: Jede Runde wird neu gelost"
COM_SPORTSMANAGER_CUP_USING_SEEDING_LIST="Pokal: Losen einer Setzliste"
COM_SPORTSMANAGER_SUBDIVISION="Unterteilung" COM_SPORTSMANAGER_SUBDIVISION="Unterteilung"
COM_SPORTSMANAGER_SHOW_MATCHDAY_TITLE="Titel von Spieltag zeigen"
COM_SPORTSMANAGER_ELO_RATING="ELO-Wertung" COM_SPORTSMANAGER_ELO_RATING="ELO-Wertung"
COM_SPORTSMANAGER_ELIGIBLE_FOR_EVENT="Berechtigte f&uuml;r Veranstaltung" COM_SPORTSMANAGER_ELIGIBLE_FOR_EVENT="Berechtigte f&uuml;r Veranstaltung"
COM_SPORTSMANAGER_TITLE_LOGO="Titel-Logo" COM_SPORTSMANAGER_TITLE_LOGO="Titel-Logo"
@@ -633,6 +641,8 @@ COM_SPORTSMANAGER_GAMEDAY="Spieltag"
COM_SPORTSMANAGER_GAMEDAYS="Spieltage" COM_SPORTSMANAGER_GAMEDAYS="Spieltage"
COM_SPORTSMANAGER_ROUND="Runde" COM_SPORTSMANAGER_ROUND="Runde"
COM_SPORTSMANAGER_ROUNDS="Runden" COM_SPORTSMANAGER_ROUNDS="Runden"
COM_SPORTSMANAGER_ROUND_TITLE="Runde Bezeichnung"
COM_SPORTSMANAGER_MATCH_PLACE3="Spiel um Platz 3"
COM_SPORTSMANAGER_MONTH="Monat" COM_SPORTSMANAGER_MONTH="Monat"
COM_SPORTSMANAGER_MONTHS="Monate" COM_SPORTSMANAGER_MONTHS="Monate"
COM_SPORTSMANAGER_PLAYER_FROM_TEAM="Spieler von Mannschaft" COM_SPORTSMANAGER_PLAYER_FROM_TEAM="Spieler von Mannschaft"
@@ -648,7 +658,9 @@ COM_SPORTSMANAGER_SO_FAR="bisher"
COM_SPORTSMANAGER_PLACEMENT_AREA="Platzierungsbereich" COM_SPORTSMANAGER_PLACEMENT_AREA="Platzierungsbereich"
COM_SPORTSMANAGER_IMAGE_WITHIN_TEAM="Bild innerhalb Mannschaft" COM_SPORTSMANAGER_IMAGE_WITHIN_TEAM="Bild innerhalb Mannschaft"
COM_SPORTSMANAGER_ADD_MEETING="Begegnung hinzuf&uuml;gen" COM_SPORTSMANAGER_ADD_MEETING="Begegnung hinzuf&uuml;gen"
COM_SPORTSMANAGER_GAMEDAY_GENERATION="Spieltag erzeugen"
COM_SPORTSMANAGER_ROUND_GENERATION="Runde erzeugen" COM_SPORTSMANAGER_ROUND_GENERATION="Runde erzeugen"
COM_SPORTSMANAGER_CUP_ROUND_GENERATION="Pokalrunde auslosen"
COM_SPORTSMANAGER_GENERATE_GROUP_GAME="Gruppenspiele erzeugen" COM_SPORTSMANAGER_GENERATE_GROUP_GAME="Gruppenspiele erzeugen"
COM_SPORTSMANAGER_IMPORT_GROUP_GAME="Gruppenspiele importieren" COM_SPORTSMANAGER_IMPORT_GROUP_GAME="Gruppenspiele importieren"
COM_SPORTSMANAGER_IMPORT_GROUP_GAME2="Gruppenspiele: Importieren" COM_SPORTSMANAGER_IMPORT_GROUP_GAME2="Gruppenspiele: Importieren"
@@ -21,6 +21,7 @@ COM_SPORTSMANAGER_LOCATIONS="Locations"
COM_SPORTSMANAGER_SEASONS="Seasons" COM_SPORTSMANAGER_SEASONS="Seasons"
COM_SPORTSMANAGER_TEAM_PLANS="Team plans" COM_SPORTSMANAGER_TEAM_PLANS="Team plans"
COM_SPORTSMANAGER_TEAM_NAME="Team name" COM_SPORTSMANAGER_TEAM_NAME="Team name"
COM_SPORTSMANAGER_TEAM_NAME_SHORT="Team name short (max 24)"
COM_SPORTSMANAGER_TEAM_NAME2="Club name" COM_SPORTSMANAGER_TEAM_NAME2="Club name"
COM_SPORTSMANAGER_TEAM_SEAT="Club location" COM_SPORTSMANAGER_TEAM_SEAT="Club location"
COM_SPORTSMANAGER_POSTPONE_RULES="Postpone rules" COM_SPORTSMANAGER_POSTPONE_RULES="Postpone rules"
@@ -129,11 +130,14 @@ COM_SPORTSMANAGER_QUARTER_FINAL="Quarter final"
COM_SPORTSMANAGER_QUARTER_FINAL_SHORTCUT="1/4" COM_SPORTSMANAGER_QUARTER_FINAL_SHORTCUT="1/4"
COM_SPORTSMANAGER_ROUND_OF_16="Round of sixteen" COM_SPORTSMANAGER_ROUND_OF_16="Round of sixteen"
COM_SPORTSMANAGER_ROUND_OF_16_SHORTCUT="1/8" COM_SPORTSMANAGER_ROUND_OF_16_SHORTCUT="1/8"
COM_SPORTSMANAGER_ROUND_OF_32="Round of thiry-two" COM_SPORTSMANAGER_ROUND_OF_32="Round of thirty-two"
COM_SPORTSMANAGER_ROUND_OF_32_ALT="Round of thirty-two"
COM_SPORTSMANAGER_ROUND_OF_32_SHORTCUT="1/16" COM_SPORTSMANAGER_ROUND_OF_32_SHORTCUT="1/16"
COM_SPORTSMANAGER_ROUND_OF_64="Round of sixty-four" COM_SPORTSMANAGER_ROUND_OF_64="Round of sixty-four"
COM_SPORTSMANAGER_ROUND_OF_64_ALT="Round of sixty-four"
COM_SPORTSMANAGER_ROUND_OF_64_SHORTCUT="1/32" COM_SPORTSMANAGER_ROUND_OF_64_SHORTCUT="1/32"
COM_SPORTSMANAGER_ROUND_OF_128="Round of 128" COM_SPORTSMANAGER_ROUND_OF_128="Round of 128"
COM_SPORTSMANAGER_ROUND_OF_128_ALT="Round of 128"
COM_SPORTSMANAGER_ROUND_OF_128_SHORTCUT="1/64" COM_SPORTSMANAGER_ROUND_OF_128_SHORTCUT="1/64"
COM_SPORTSMANAGER_DAY_0_SHORTCUT="Su." COM_SPORTSMANAGER_DAY_0_SHORTCUT="Su."
COM_SPORTSMANAGER_DAY_1_SHORTCUT="Mo." COM_SPORTSMANAGER_DAY_1_SHORTCUT="Mo."
@@ -311,6 +315,7 @@ COM_SPORTSMANAGER_FOR_OTHER_CONTACT="For other contact"
COM_SPORTSMANAGER_DATES_REGISTERED_USERS="Apply dates by registered users" COM_SPORTSMANAGER_DATES_REGISTERED_USERS="Apply dates by registered users"
COM_SPORTSMANAGER_VIEW_ELO_RATING="View Elo rating" COM_SPORTSMANAGER_VIEW_ELO_RATING="View Elo rating"
COM_SPORTSMANAGER_VIEW_SPORTSMANAGER_LIZENZ="Show License" COM_SPORTSMANAGER_VIEW_SPORTSMANAGER_LIZENZ="Show License"
COM_SPORTSMANAGER_SHOW_TOURNAMENT_BRACKET="Show Tournament Bracket"
COM_SPORTSMANAGER_PLAYER_DETAILS="Player details" COM_SPORTSMANAGER_PLAYER_DETAILS="Player details"
COM_SPORTSMANAGER_PLAYER_LIST_DETAILS="Player list details" COM_SPORTSMANAGER_PLAYER_LIST_DETAILS="Player list details"
COM_SPORTSMANAGER_PLAYER_EDIT="Edit player data by organisation/club contacts" COM_SPORTSMANAGER_PLAYER_EDIT="Edit player data by organisation/club contacts"
@@ -605,7 +610,10 @@ COM_SPORTSMANAGER_ONLY_DETAILED_RATING_POINT_DIFFERENCE="Only detailed ranking b
COM_SPORTSMANAGER_ONLY_DETAILED_POINTS_AFTER_POINTSRATE="Only detailed ranking by points rate" COM_SPORTSMANAGER_ONLY_DETAILED_POINTS_AFTER_POINTSRATE="Only detailed ranking by points rate"
COM_SPORTSMANAGER_KO_SIMPLE_FULL="K.O. (singles or full playout of all places)" COM_SPORTSMANAGER_KO_SIMPLE_FULL="K.O. (singles or full playout of all places)"
COM_SPORTSMANAGER_MANUAL_PRO_TEAMS="Manual (per team)" COM_SPORTSMANAGER_MANUAL_PRO_TEAMS="Manual (per team)"
COM_SPORTSMANAGER_CUP_DRAW_EVERY_ROUND="Cup: draw every round"
COM_SPORTSMANAGER_CUP_USING_SEEDING_LIST="Cup: draw seeding list"
COM_SPORTSMANAGER_SUBDIVISION="Subdivision" COM_SPORTSMANAGER_SUBDIVISION="Subdivision"
COM_SPORTSMANAGER_SHOW_MATCHDAY_TITLE="Show title matchday"
COM_SPORTSMANAGER_ELO_RATING="Elo rating" COM_SPORTSMANAGER_ELO_RATING="Elo rating"
COM_SPORTSMANAGER_ELIGIBLE_FOR_EVENT="Eligibles for competition" COM_SPORTSMANAGER_ELIGIBLE_FOR_EVENT="Eligibles for competition"
COM_SPORTSMANAGER_TITLE_LOGO="Title logo" COM_SPORTSMANAGER_TITLE_LOGO="Title logo"
@@ -633,6 +641,8 @@ COM_SPORTSMANAGER_GAMEDAY="Gameday"
COM_SPORTSMANAGER_GAMEDAYS="Gamedays" COM_SPORTSMANAGER_GAMEDAYS="Gamedays"
COM_SPORTSMANAGER_ROUND="Round" COM_SPORTSMANAGER_ROUND="Round"
COM_SPORTSMANAGER_ROUNDS="Rounds" COM_SPORTSMANAGER_ROUNDS="Rounds"
COM_SPORTSMANAGER_ROUND_TITLE="Round Title"
COM_SPORTSMANAGER_MATCH_PLACE3="Match for place 3"
COM_SPORTSMANAGER_MONTH="Month" COM_SPORTSMANAGER_MONTH="Month"
COM_SPORTSMANAGER_MONTHS="Months" COM_SPORTSMANAGER_MONTHS="Months"
COM_SPORTSMANAGER_PLAYER_FROM_TEAM="Player of team" COM_SPORTSMANAGER_PLAYER_FROM_TEAM="Player of team"
@@ -648,7 +658,9 @@ COM_SPORTSMANAGER_SO_FAR="so far"
COM_SPORTSMANAGER_PLACEMENT_AREA="Placement area" COM_SPORTSMANAGER_PLACEMENT_AREA="Placement area"
COM_SPORTSMANAGER_IMAGE_WITHIN_TEAM="Image within team" COM_SPORTSMANAGER_IMAGE_WITHIN_TEAM="Image within team"
COM_SPORTSMANAGER_ADD_MEETING="Add match" COM_SPORTSMANAGER_ADD_MEETING="Add match"
COM_SPORTSMANAGER_GAMEDAY_GENERATION="Generate gameday"
COM_SPORTSMANAGER_ROUND_GENERATION="Generate round" COM_SPORTSMANAGER_ROUND_GENERATION="Generate round"
COM_SPORTSMANAGER_CUP_ROUND_GENERATION="Generate cup round"
COM_SPORTSMANAGER_GENERATE_GROUP_GAME="Generate group games" COM_SPORTSMANAGER_GENERATE_GROUP_GAME="Generate group games"
COM_SPORTSMANAGER_Import_GROUP_GAME="Import group games" COM_SPORTSMANAGER_Import_GROUP_GAME="Import group games"
COM_SPORTSMANAGER_Import_GROUP_GAME2="Group games: Import" COM_SPORTSMANAGER_Import_GROUP_GAME2="Group games: Import"