Überarbeitung Teamsport Spieltag erzeugen

This commit is contained in:
Jürgen Meyer
2025-11-04 21:30:58 +01:00
parent 885d6a3191
commit 5fafcace6b
2 changed files with 60 additions and 23 deletions
@@ -7928,7 +7928,7 @@ function adminEditBegegnung(): void
if ($begegnung->heim_team_id != $heim_team_id || $begegnung->gast_team_id != $gast_team_id || if ($begegnung->heim_team_id != $heim_team_id || $begegnung->gast_team_id != $gast_team_id ||
$begegnung->zeitpunkt != $zeitpunkt || $begegnung->spieltag != $runde || $begegnung->spiel_nr != $spiel_nr || $begegnung->zeitpunkt != $zeitpunkt || $begegnung->spieltag != $runde || $begegnung->spiel_nr != $spiel_nr ||
$begegnung->spielort_id != $spielort_id || (empty($begegnung->tisch) != empty($tisch) || $begegnung->spieltag_titel != $spieltag_titel || $begegnung->spielort_id != $spielort_id || (empty($begegnung->tisch) != empty($tisch) ||
$begegnung->tisch != $tisch) || $begegnung->nichtraucherschutz != $nichtraucherschutz) { $begegnung->tisch != $tisch) || $begegnung->nichtraucherschutz != $nichtraucherschutz) {
$query = "UPDATE #__sportsmanager_begegnung" $query = "UPDATE #__sportsmanager_begegnung"
. "\n SET zeitpunkt = " . ($zeitpunkt != null ? "'$zeitpunkt'" : "NULL") . "," . "\n SET zeitpunkt = " . ($zeitpunkt != null ? "'$zeitpunkt'" : "NULL") . ","
@@ -9732,7 +9732,12 @@ function adminBegegnungenRundeErzeugenForm(): void
. "\n FROM #__sportsmanager_spielort" . "\n FROM #__sportsmanager_spielort"
. "\n ORDER BY ortsname, name, ortsteil"; . "\n ORDER BY ortsname, name, ortsteil";
$spielorte = loadObjectList($db, $query); $spielorte = loadObjectList($db, $query);
HTML_sportsmanager_admin::adminBegegnungenRundeErzeugen($veranstaltung, $rows, $row, $spielorte); $query = "SELECT spieltag_titel FROM #__sportsmanager_begegnung"
. "\n WHERE spieltag_titel IS NOT NULL"
. "\n GROUP BY spieltag_titel"
. "\n ORDER BY spieltag_titel;";
$auswahl_spieltagtitel = loadObjectList($db, $query);
HTML_sportsmanager_admin::adminBegegnungenRundeErzeugen($veranstaltung, $rows, $row, $spielorte, $auswahl_spieltagtitel);
} }
#[NoReturn] function adminBegegnungenRundeErzeugen(): void #[NoReturn] function adminBegegnungenRundeErzeugen(): void
@@ -9765,6 +9770,7 @@ function adminBegegnungenRundeErzeugenForm(): void
} }
$rundentyp = $jInput->get('rundentyp', -1, 'INT'); $rundentyp = $jInput->get('rundentyp', -1, 'INT');
$runde = max(min(abs($jInput->get('runde', 1, 'INT')), $rundentyp == -2 ? 99 : 9999), 1); $runde = max(min(abs($jInput->get('runde', 1, 'INT')), $rundentyp == -2 ? 99 : 9999), 1);
$spieltag_titel = $db->escape(trim($jInput->get('spieltag_titel', '', 'RAW')));
$platzierung_ende = max(min(abs($jInput->get('platzierung_ende', 0, 'INT')), $runde + 99), 1); $platzierung_ende = max(min(abs($jInput->get('platzierung_ende', 0, 'INT')), $runde + 99), 1);
if ($rundentyp >= 10000) if ($rundentyp >= 10000)
@@ -9784,8 +9790,10 @@ function adminBegegnungenRundeErzeugenForm(): void
$teamIds[$i] = $jInput->get('team_id_' . $i, 0, 'INT'); $teamIds[$i] = $jInput->get('team_id_' . $i, 0, 'INT');
$spielort_ids = array(); $spielort_ids = array();
for ($i = 1; $i <= $anzahlteams; $i += 2) for ($i = 1; $i <= $anzahlteams; $i += 2){
$spielort_ids[$i] = $jInput->get('spielort_id_' . $i, 0, 'INT'); $spielort_ids[$i] = $jInput->get('spielort_id_' . $i, 0, 'INT');
$spiel_nr[$i] = $jInput->get('spiel_nr_' . $i, 0, 'INT');
}
for ($teamNr = 1; $teamNr < $anzahlteams; $teamNr += 2) { for ($teamNr = 1; $teamNr < $anzahlteams; $teamNr += 2) {
$heim_team_id = $teamIds[$teamNr]; $heim_team_id = $teamIds[$teamNr];
@@ -9817,14 +9825,15 @@ function adminBegegnungenRundeErzeugenForm(): void
$zeitpunkt = sprintf("%04d-%02d-%02d %02d:%02d", $ts["year"], $ts["mon"], $ts["mday"], floor($heim_team->heimspiel_uhrzeit / 100), $heim_team->heimspiel_uhrzeit % 100); $zeitpunkt = sprintf("%04d-%02d-%02d %02d:%02d", $ts["year"], $ts["mon"], $ts["mday"], floor($heim_team->heimspiel_uhrzeit / 100), $heim_team->heimspiel_uhrzeit % 100);
} }
$query = "INSERT INTO #__sportsmanager_begegnung (zeitpunkt, spieltag, heim_team_id, gast_team_id, spielort_id)" $query = "INSERT INTO #__sportsmanager_begegnung (zeitpunkt, spieltag, spieltag_titel, spiel_nr, heim_team_id, gast_team_id, spielort_id)"
. "\n VALUES (" . ($zeitpunkt != null ? "'$zeitpunkt'" : "NULL") . ", " . ($runde != null ? "'$runde'" : "NULL") . ", '$heim_team_id', '$gast_team_id', " . ($spielort_ids[$teamNr] != 0 ? "'$spielort_ids[$teamNr]'" : "NULL") . ");"; . "\n VALUES (" . ($zeitpunkt != null ? "'$zeitpunkt'" : "NULL") . ", " . ($runde != null ? "'$runde'" : "NULL")
$db->setQuery($query); . "\n , '$spieltag_titel', " . ($spiel_nr[$teamNr] != 0 ? "'$spiel_nr[$teamNr]'" : "NULL")
. "\n , '$heim_team_id', '$gast_team_id', " . ($spielort_ids[$teamNr] != 0 ? "'$spielort_ids[$teamNr]'" : "NULL") . ");";
$db->setQuery($query);
if (!$db->execute()) { if (!$db->execute()) {
die($db->stderr(true)); die($db->stderr(true));
} }
} }
redirectSportsManagerURL('&task=admin_begegnungen&veranstaltungid=' . $veranstaltungId); redirectSportsManagerURL('&task=admin_begegnungen&veranstaltungid=' . $veranstaltungId);
} }
@@ -9106,7 +9106,6 @@ class HTML_sportsmanager_admin
</tr> </tr>
<?php <?php
} }
if ($veranstaltung->spieltag_titel_zeigen) if ($veranstaltung->spieltag_titel_zeigen)
echo "<tr>"; echo "<tr>";
else else
@@ -9120,8 +9119,6 @@ class HTML_sportsmanager_admin
<input list="auswahl_spieltagtitel" class="uk-select uk-form-width-medium" type="text" name="spieltag_titel" <input list="auswahl_spieltagtitel" class="uk-select uk-form-width-medium" type="text" name="spieltag_titel"
id="game_title" size="32" maxlength="255" style="height: 34px;" id="game_title" size="32" maxlength="255" style="height: 34px;"
value="<?php if ($row != null) echo htmlentities_utf8($row->spieltag_titel); ?>"/> value="<?php if ($row != null) echo htmlentities_utf8($row->spieltag_titel); ?>"/>
<datalist id="auswahl_spieltagtitel" > <datalist id="auswahl_spieltagtitel" >
<?php if ($auswahl_spieltagtitel){ ?> <?php if ($auswahl_spieltagtitel){ ?>
<?php foreach($auswahl_spieltagtitel AS $titel){ ?> <?php foreach($auswahl_spieltagtitel AS $titel){ ?>
@@ -9129,11 +9126,8 @@ class HTML_sportsmanager_admin
<?php } ?> <?php } ?>
<?php } ?> <?php } ?>
</datalist> </datalist>
</td> </td>
</tr> </tr>
<tr> <tr>
<td nowrap style="width: 20%; text-align: right"> <td nowrap style="width: 20%; text-align: right">
<label <label
@@ -9152,7 +9146,6 @@ class HTML_sportsmanager_admin
</select> </select>
</td> </td>
</tr> </tr>
<tr> <tr>
<td nowrap style="width: 20%; text-align: right"> <td nowrap style="width: 20%; text-align: right">
<label <label
@@ -10117,7 +10110,7 @@ class HTML_sportsmanager_admin
<?php <?php
} }
static function adminBegegnungenRundeErzeugen($veranstaltung, $rows, $row, $spielorte): void static function adminBegegnungenRundeErzeugen($veranstaltung, $rows, $row, $spielorte, $auswahl_spieltagtitel): void
{ {
global $params; global $params;
$anzahlteams = count($rows); $anzahlteams = count($rows);
@@ -10131,11 +10124,11 @@ 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">
<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
@@ -10156,7 +10149,7 @@ class HTML_sportsmanager_admin
} }
} }
</script> </script>
<select class="uk-select uk-form-width-medium" name="datum_tag" <select class="uk-select uk-form-width-xsmall" name="datum_tag"
id="schedule_date" size="1" id="schedule_date" size="1"
onchange="tag_changed();"> onchange="tag_changed();">
<?php <?php
@@ -10176,7 +10169,7 @@ class HTML_sportsmanager_admin
} }
?> ?>
</select> </select>
<select class="uk-select uk-form-width-medium" name="datum_monat" size="1" <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'); ?>"> aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_SCHEDULE_DATE_MONTH'); ?>">
<?php <?php
$datum_monat = substr($datum, 5, 2); $datum_monat = substr($datum, 5, 2);
@@ -10187,7 +10180,7 @@ class HTML_sportsmanager_admin
} }
?> ?>
</select> </select>
<select class="uk-select uk-form-width-medium" name="datum_jahr" size="1" <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'); ?>"> aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_SCHEDULE_DATE_YEAR'); ?>">
<?php <?php
$datum_jahr = substr($datum, 0, 4); $datum_jahr = substr($datum, 0, 4);
@@ -10197,7 +10190,7 @@ class HTML_sportsmanager_admin
} }
?> ?>
</select> </select>
<select class="uk-select uk-form-width-medium" name="uhrzeit_stunden" <select class="uk-select uk-form-width-xsmall" name="uhrzeit_stunden"
size="1" size="1"
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_SCHEDULE_DATE_HOUR'); ?>"> aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_SCHEDULE_DATE_HOUR'); ?>">
<?php <?php
@@ -10211,7 +10204,7 @@ class HTML_sportsmanager_admin
} }
?> ?>
</select> </select>
<select class="uk-select uk-form-width-medium" name="uhrzeit_minuten" <select class="uk-select uk-form-width-xsmall" name="uhrzeit_minuten"
size="1" size="1"
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_SCHEDULE_DATE_MINUTE'); ?>"> aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_SCHEDULE_DATE_MINUTE'); ?>">
<?php <?php
@@ -10279,14 +10272,49 @@ class HTML_sportsmanager_admin
} }
?> ?>
<?php <?php
if ($veranstaltung->spieltag_titel_zeigen)
echo "<tr>";
else
echo "<tr style='display: none;'>";
?>
<td nowrap style="width: 20%; text-align: right">
<label for="game_title"><?php echo Text::_('COM_SPORTSMANAGER_LABEL_GAME_TITLE'); ?>
:</label>
</td>
<td nowrap>
<input list="auswahl_spieltagtitel" class="uk-select uk-form-width-medium" type="text" name="spieltag_titel"
id="game_title" size="32" maxlength="255" style="height: 34px;"
value="<?php if ($row != null) echo htmlentities_utf8($row->spieltag_titel); ?>"/>
<datalist id="auswahl_spieltagtitel" >
<?php if ($auswahl_spieltagtitel){ ?>
<?php foreach($auswahl_spieltagtitel AS $titel){ ?>
<option value="<?= htmlspecialchars($titel->spieltag_titel, ENT_QUOTES) ?>"></option>
<?php } ?>
<?php } ?>
</datalist>
</td>
</tr>
<?php
$spielnummer = 0;
for ($teamnr = 1; $teamnr < $anzahlteams; $teamnr += 2) { for ($teamnr = 1; $teamnr < $anzahlteams; $teamnr += 2) {
$spielnummer++;
?> ?>
<tr> <tr>
<td nowrap style="width: 20%; text-align: right"> <td nowrap style="width: 20%; text-align: right">
<?php if ($teamnr == 1) echo Text::_('COM_SPORTSMANAGER_PAIRINGS') . ":"; ?> <?php if ($teamnr == 1) echo Text::_('COM_SPORTSMANAGER_PAIRINGS') . ":"; ?>
</td> </td>
<td nowrap> <td nowrap>
<select class="uk-select uk-form-width-xsmall" style="height: 34px;" id="game_nr"
type="number" name="spiel_nr_<?php echo $teamnr; ?>"
value=<?php echo $row->spiel_nr; ?> title="Spielnummer"/>
<option value=""></option>
<?php
for ($i = 1; $i <= 99; $i++)
{
echo "<option value=\"" . $i . "\"" . ($i == $spielnummer ? " selected " : "") . ">" . $i . "</option>";
}
?>
</select>
<select class="uk-select uk-form-width-medium" <select class="uk-select uk-form-width-medium"
name="team_id_<?php echo $teamnr; ?>" size="1" name="team_id_<?php echo $teamnr; ?>" size="1"
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_PAIRING_TEAM'); ?>"> aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_PAIRING_TEAM'); ?>">