Merge pull request #254 from Deutscher-Tischfussballbund/sportsmanager2-stage

stage to prod merge
This commit is contained in:
MarvinF
2026-02-03 19:17:18 +01:00
committed by GitHub
6 changed files with 219 additions and 198 deletions
@@ -112,27 +112,58 @@ function renderTemplate($template, $vars = []): string
);
}
function CSVfromArray($rows,$dateiname)
function exportCSV(array $rows, string $dateiname): void
{
$dateiname = bereinigterDateiname($dateiname);
ob_end_clean(); // Wegen UTF-8-Zeichen, die in der ausgabe vorhanden sind
Header("Content-Type: text/x-csv");
Header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
Header('Content-Disposition: attachment; filename="' . $dateiname . '"');
Header("Pragma: no-cache");
$data = "";
$trennzeichen = ";";
$header = "";
$header .= implode(';', array_keys($rows[0]));
foreach ($rows as $row) {
$data .= implode(';', $row)."\n";
if (empty($rows)) {
// Keine Daten → nichts exportieren
return;
}
echo $header . "\n" . utf8_decode(trim($data));
// Dateiname absichern
$dateiname = bereinigterDateiname($dateiname);
die();
// Output Buffer nur beenden, wenn aktiv
if (ob_get_level() > 0) {
ob_end_clean();
}
// CSV-Header für Browser
header('Content-Type: text/csv; charset=UTF-8');
header('Content-Disposition: attachment; filename="' . $dateiname . '"; filename*=UTF-8\'\'' . rawurlencode($dateiname));
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Pragma: no-cache');
header('Expires: 0');
// BOM für Excel
echo "\xEF\xBB\xBF";
// Stream öffnen
$out = fopen('php://output', 'w');
$delimiter = ';';
$enclosure = '"';
$escape = '\\';
// Header-Zeile: keys aus erstem Datensatz (Array oder stdClass)
$firstRow = $rows[0] instanceof stdClass ? (array) $rows[0] : $rows[0];
$header = array_keys($firstRow);
fputcsv($out, $header, $delimiter, $enclosure, $escape);
// Datenzeilen
foreach ($rows as $row) {
$rowArray = $row instanceof stdClass ? (array) $row : $row;
// Sicherstellen, dass alle Header-Spalten vorhanden sind
$line = [];
foreach ($header as $key) {
$line[] = $rowArray[$key] ?? '';
}
fputcsv($out, $line, $delimiter, $enclosure, $escape);
}
fclose($out);
exit;
}
function adminUebersicht(): void
@@ -2319,7 +2350,7 @@ function adminImportSpielerDetailsForm(): void
adminDeleteSpielerImport($session_id);
HTML_sportsmanager_admin::adminImportSpielerBericht($lizenzen_aktualisiert, array(), 0, array(), array(), array(), false, redirectSessionIdEmpty() ? null : redirectSessionIdSetzen());
HTML_sportsmanager_admin::adminImportSpielerBericht($lizenzen_aktualisiert, array(), array(), 0, array(), array(), array(), false, redirectSessionIdEmpty() ? null : redirectSessionIdSetzen());
return;
}
@@ -2575,7 +2606,7 @@ function adminImportSpielerVorschau(): void
if ($import_verweigern) {
adminDeleteSpielerImport($session_id);
}
HTML_sportsmanager_admin::adminImportSpielerVorschau($import_verweigern, $spieler_import, $veranstalter, $session_id, $jInput->get('persoenliche_daten', 0, 'INT'), $jInput->get('lizenznr_beibehalten', 0, 'INT'), $jInput->get('spalten', '', 'RAW'));
HTML_sportsmanager_admin::adminImportSpielerVorschau($import_verweigern, $spieler_import, $veranstalter, $session_id, $jInput->get('persoenliche_daten', 0, 'INT'), $jInput->get('spalten', '', 'RAW'));
}
function adminImportSpieler(): void
@@ -2605,7 +2636,6 @@ function adminImportSpieler(): void
$persoenliche_daten = $jInput->get('persoenliche_daten', 0, 'INT'); // 0: "Vor- und Nachname, Geschlecht, Spielernr., Lizenznr.", 1: "Vor- und Nachname, Geschlecht, Spielernr., Lizenznr., Geburtsdatum", "Alle"
else
$persoenliche_daten = 0;
$lizenznr_beibehalten = $jInput->get('lizenznr_beibehalten', 0, 'INT');
$session_id = $jInput->get('session_id', '', 'RAW');
$query = "SELECT DISTINCT veranstalterbezeichnung"
@@ -2757,6 +2787,8 @@ function adminImportSpieler(): void
}
$aktualisierungen = 0;
$index_nicht_akt_unt = 0;
$nichtAktualisierteUnterschiede = array();
$spielerHinzugefuegt = array();
$vereineHinzugefuegt = 0;
$vereineManuell = array();
@@ -2806,17 +2838,20 @@ function adminImportSpieler(): void
// Spieler aktualisieren bzw. ergänzen
if ($spieler_id != null) { // Spieler aktualisieren
$query = "SELECT * FROM #__sportsmanager_spieler WHERE spieler_id = $spieler_id";
$spieler_buffer = loadObjectList($db, $query);
$query = "UPDATE #__sportsmanager_spieler"
. "\n SET vorname = '" . $db->escape($vorname) . "',"
. "\n nachname = '" . $db->escape($nachname) . "'";
//. "\n spielernr = '" . $db->escape($spielernr) . "'";
if (isset($spalten["lizenznr"]) && ($lizenznr_beibehalten == 0 || !empty($lizenznr)))
if (isset($spalten["lizenznr"]) && !empty($lizenznr) && empty($spieler_buffer[0]->lizenznr))
$query .= ",\n lizenznr = '" . $db->escape($lizenznr) . "'";
if (isset($spalten["pseudonym"]))
$query .= ",\n pseudonym = '" . $db->escape($pseudonym) . "'";
if (isset($spalten["geschlecht"]))
$query .= ",\n geschlecht = '" . $db->escape($geschlecht) . "'";
if ((isset($spalten["geburtsdatum"]) || isset($spalten["geburtsjahr"])) && $geburtsjahr != null)
if ((isset($spalten["geburtsdatum"]) || isset($spalten["geburtsjahr"])) && empty($spieler_buffer[0]->lizenznr) && $geburtsjahr != null)
$query .= ",\n geburtsjahr = " . ("'" . $db->escape($geburtsjahr) . "'");
if ($persoenliche_daten == 2) {
if (isset($spalten["strasse"]))
@@ -2839,7 +2874,24 @@ function adminImportSpieler(): void
if (!$db->execute()) {
die($db->stderr(true));
}
if (!empty($spieler_buffer[0]->lizenznr)){
if (isset($spalten["lizenznr"]) && !empty($lizenznr) && $lizenznr != $spieler_buffer[0]->lizenznr){
$nichtAktualisierteUnterschiede[$index_nicht_akt_unt] = new stdClass();
$nichtAktualisierteUnterschiede[$index_nicht_akt_unt]->spieler = $spieler_buffer[0]->nachname . " " . $spieler_buffer[0]->vorname;
$nichtAktualisierteUnterschiede[$index_nicht_akt_unt]->feld = "Linzenznr";
$nichtAktualisierteUnterschiede[$index_nicht_akt_unt]->db = $spieler_buffer[0]->lizenznr;
$nichtAktualisierteUnterschiede[$index_nicht_akt_unt]->csv = $lizenznr;
$index_nicht_akt_unt++;
}
if (isset($spalten["geburtsjahr"]) && !empty($geburtsjahr) && $geburtsjahr != $spieler_buffer[0]->geburtsjahr){
$nichtAktualisierteUnterschiede[$index_nicht_akt_unt] = new stdClass();
$nichtAktualisierteUnterschiede[$index_nicht_akt_unt]->spieler = $spieler_buffer[0]->nachname . " " . $spieler_buffer[0]->vorname;
$nichtAktualisierteUnterschiede[$index_nicht_akt_unt]->feld = "Geburtsjahr";
$nichtAktualisierteUnterschiede[$index_nicht_akt_unt]->db = $spieler_buffer[0]->geburtsjahr;
$nichtAktualisierteUnterschiede[$index_nicht_akt_unt]->csv = $geburtsjahr;
$index_nicht_akt_unt++;
}
}
$aktualisierungen++;
} else { // Spieler ergänzen
// Neuen Spieler anlegen
@@ -3061,7 +3113,7 @@ function adminImportSpieler(): void
einstufungAktualisieren();
}
HTML_sportsmanager_admin::adminImportSpielerBericht($aktualisierungen, $spielerHinzugefuegt, $vereineHinzugefuegt, $spieler_import, $vereineManuell, $ausgetreteneVereineMitAktivenMitgliedern, $kategorie_potentiell_geaendert, redirectSessionIdEmpty() ? null : redirectSessionIdSetzen());
HTML_sportsmanager_admin::adminImportSpielerBericht($aktualisierungen, $spielerHinzugefuegt, $nichtAktualisierteUnterschiede, $vereineHinzugefuegt, $spieler_import, $vereineManuell, $ausgetreteneVereineMitAktivenMitgliedern, $kategorie_potentiell_geaendert, redirectSessionIdEmpty() ? null : redirectSessionIdSetzen());
}
function adminExportSpielerInternationalForm(): void
@@ -5041,7 +5093,7 @@ function adminEditSpielverlegung(): void
$zeile++;
}
CSVfromArray($rows,"Spielverlegungen.csv");
exportCSV($rows,"Spielverlegungen.csv");
}
function adminSpielverlegungMailen(): void
@@ -12240,41 +12292,8 @@ function adminBegegnungenExportForm(): void
}
$dateiname .= ".csv";
$dateiname = bereinigterDateiname($dateiname);
ob_end_clean(); // Wegen UTF-8-Zeichen, die in der ausgabe vorhanden sind
Header("Content-Type: text/x-csv");
Header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
Header('Content-Disposition: attachment; filename="' . $dateiname . '"');
Header("Pragma: no-cache");
$data = "";
$trennzeichen = ";";
$spalte = 0;
$header = "";
foreach ($rows[0] as $field => $value) {
if ($spalte != 0) {
$header .= $trennzeichen;
}
$header .= $field;
$spalte++;
}
foreach ($rows as $row) {
$line = '';
$spalte = 0;
foreach ($row as $value) {
if ($spalte != 0) {
$line .= $trennzeichen;
}
$line .= $value;
$spalte++;
}
$data .= trim($line) . "\n";
}
echo $header . "\n" . utf8_decode($data);
die();
exportCSV($rows, $dateiname);
}
function adminEditTurnier(): void
@@ -3103,7 +3103,9 @@ function spielerDetails(): void
$spieler = $rows[0];
// Aktive Vereinsmitgliedschaften ermitteln
$query = "SELECT vereinsname"
$query = "SELECT vereinsname,"
. "\n CASE #__sportsmanager_mitglied_von_verein.mitgliedsstatus"
. "\n WHEN 1 THEN 'Aktiv' WHEN 2 THEN 'Eingeschränkt' END AS status"
. "\n FROM #__sportsmanager_mitglied_von_verein, #__sportsmanager_verein"
. "\n LEFT JOIN #__sportsmanager_veranstalter USING (veranstalter_id)"
. "\n WHERE #__sportsmanager_mitglied_von_verein.spieler_id = $id "
@@ -4538,7 +4538,7 @@ if ($bild != null) {
<td nowrap style="text-align: right">
<?php
foreach ($vereine as $verein)
echo htmlentities_utf8($verein->vereinsname) . "<br />";
echo htmlentities_utf8($verein->vereinsname) . " (" . htmlentities_utf8($verein->status) . ")<br />";
?>
</td>
</tr>
@@ -2268,28 +2268,20 @@ class HTML_sportsmanager_admin
<form action="<?php echo SportsManagerURL(); ?>" method="post" name="adminForm" id="adminForm"
enctype="multipart/form-data">
<div class="uk-overflow-auto">
<table class="uk-table" style="width: 100%">
<tr>
<td nowrap style="width: 60%; vertical-align: top">
<div class="uk-overflow-auto">
<table class="uk-table" style="width: 100%">
<tr>
<td nowrap style="width: 20%; text-align: right">
<?php echo Text::_('COM_SPORTSMANAGER_PLAYERS'); ?>:
</td>
<td nowrap>
<input type="file" name="daten" size="30"/>
</td>
</tr>
<tr>
<td nowrap colspan="2">&nbsp;
<table style="width: 60%">
<tr>
<td nowrap style="width: 20%; text-align: right">
<?php echo Text::_('COM_SPORTSMANAGER_PLAYERS'); ?>:
</td>
<td nowrap>
<input type="file" name="daten" size="30"/>
</td>
</tr>
<tr>
<td nowrap colspan="2">&nbsp;
</td>
</tr>
</table>
</div>
</td>
</tr>
</td>
</tr>
</table>
</div>
@@ -2340,109 +2332,89 @@ class HTML_sportsmanager_admin
<form action="<?php echo SportsManagerURL(); ?>" method="post" name="adminForm" id="adminForm"
enctype="multipart/form-data">
<div class="uk-overflow-auto">
<table class="uk-table" style="width: 100%">
<tr>
<td nowrap style="width: 60%; vertical-align: top">
<div class="uk-overflow-auto">
<table class="uk-table" style="width: 100%">
<?php
if (!$beschraenkter_zugriff || $ansprechpartner_importieren != 1) {
?>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label
for="personal_data"><?php echo Text::_('COM_SPORTSMANAGER_PERSONAL_DATA'); ?>
:</label>
</td>
<td nowrap>
<select class="uk-select uk-form-width-medium" name="persoenliche_daten"
id="personal_data"
size="1">
<?php
$status = array("0" => Text::_('COM_SPORTSMANAGER_FIRST_AND_LAST_NAME_AND_BIRTHYEAR'), "1" => Text::_('COM_SPORTSMANAGER_FIRST_AND_LAST_NAME_AND_BIRTHYEAR'), "2" => Text::_('COM_SPORTSMANAGER_FIRST_AND_LAST_NAME_AND_PSEUDONYM'));
foreach ($status as $wert => $bezeichnung) {
echo "<option value=\"" . $wert . "\"" . ($wert == $persoenliche_daten_vorauswahl ? " selected" : "") . ">" . htmlentities_utf8($bezeichnung) . "</option>";
}
?>
</select>
</td>
</tr>
<?php
}
?>
<tr>
<td nowrap style="width: 20%; text-align: right">
</td>
<td nowrap>
<label>
<input type="checkbox" name="lizenznr_beibehalten" value="1"
checked><?php echo Text::_('COM_SPORTSMANAGER_INTERNATIONAL_PLATYERS_OVERWRITE'); ?>
</label>
</td>
</tr>
<?php
$n = 1;
foreach ($veranstalter_import as $v) {
?>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label for="organizer_<?php echo $n; ?>"><?php
echo htmlentities_utf8(empty($v->veranstalterbezeichnung) ? Text::_('COM_SPORTSMANAGER_CLUB_WITHOUT_ORGANISATION') : (Text::_('COM_SPORTSMANAGER_CLUBS') . $v->veranstalterbezeichnung));
?></label>
</td>
<td nowrap>
<select class="uk-select uk-form-width-medium"
name="veranstalter_<?php echo $n; ?>_id"
id="organizer_<?php echo $n; ?>" size="1">
<option
value=""><?php echo Text::_('COM_SPORTSMANAGER_NO_IMPORT'); ?></option>
<optgroup
label="<?php echo Text::_('COM_SPORTSMANAGER_ORGANISATIONS'); ?>">
<?php
if (!$beschraenkter_zugriff) {
?>
<option
value="0"><?php echo Text::_('COM_SPORTSMANAGER_LOOSER_CLUB'); ?></option>
<?php
}
foreach ($veranstalter as $veranstalter_row) {
echo "<option value=\"" . $veranstalter_row->veranstalter_id . "\" " . (empty($verein_import) && ($v->veranstalterbezeichnung == $veranstalter_row->veranstalterbezeichnung || (isset($veranstalter_zugehoerigkeit[$v->veranstalterbezeichnung]) && $veranstalter_zugehoerigkeit[$v->veranstalterbezeichnung] == $veranstalter_row->veranstalter_id)) ? "selected" : "") . ">" . htmlentities_utf8($veranstalter_row->veranstalterbezeichnung) . "</option>";
}
?>
</optgroup>
<?php
if (!empty($verein_import)) {
$veranstalterbezeichnung = -1;
foreach ($vereine as $verein) {
if ($veranstalterbezeichnung != $verein->veranstalterbezeichnung) {
if ($veranstalterbezeichnung != -1)
echo "</optgroup>";
echo "<optgroup label=\"" . Text::_('COM_SPORTSMANAGER_CLUBS') . " " . htmlentities_utf8($verein->veranstalterbezeichnung != null ? $verein->veranstalterbezeichnung : "") . "\">";
$veranstalterbezeichnung = $verein->veranstalterbezeichnung;
}
echo "<option value=\"-" . $verein->verein_id . "\"" . ($verein_import_id == $verein->verein_id ? " selected" : "") . ">" . htmlentities_utf8($verein->vereinsname) . "</option>";
}
if ($veranstalterbezeichnung != -1)
echo "</optgroup>";
<br>
<table style="width: 100%">
<?php
if (!$beschraenkter_zugriff || $ansprechpartner_importieren != 1) {
?>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label
for="personal_data"><?php echo Text::_('COM_SPORTSMANAGER_PERSONAL_DATA'); ?>
:</label>
</td>
<td nowrap>
<select class="uk-select uk-form-width-large" name="persoenliche_daten"
style="width: 700px;" id="personal_data" size="1">
<?php
$status = array("0" => Text::_('COM_SPORTSMANAGER_FIRST_AND_LAST_NAME_AND_BIRTHYEAR'), "1" => Text::_('COM_SPORTSMANAGER_FIRST_AND_LAST_NAME_AND_BIRTHYEAR'), "2" => Text::_('COM_SPORTSMANAGER_FIRST_AND_LAST_NAME_AND_PSEUDONYM'));
foreach ($status as $wert => $bezeichnung) {
echo "<option value=\"" . $wert . "\"" . ($wert == $persoenliche_daten_vorauswahl ? " selected" : "") . ">" . htmlentities_utf8($bezeichnung) . "</option>";
}
?>
</select>
</td>
</tr>
<?php
}
$n = 1;
foreach ($veranstalter_import as $v) {
?>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label for="organizer_<?php echo $n; ?>"><?php
echo htmlentities_utf8(empty($v->veranstalterbezeichnung) ? Text::_('COM_SPORTSMANAGER_CLUB_WITHOUT_ORGANISATION') : (Text::_('COM_SPORTSMANAGER_CLUBS') . $v->veranstalterbezeichnung));
?></label>
</td>
<td nowrap>
<select class="uk-select uk-form-width-medium"
name="veranstalter_<?php echo $n; ?>_id"
id="organizer_<?php echo $n; ?>" style="width: 700px;" size="1">
<option
value=""><?php echo Text::_('COM_SPORTSMANAGER_NO_IMPORT'); ?></option>
<optgroup
label="<?php echo Text::_('COM_SPORTSMANAGER_ORGANISATIONS'); ?>">
<?php
if (!$beschraenkter_zugriff) {
?>
<option
value="0"><?php echo Text::_('COM_SPORTSMANAGER_LOOSER_CLUB'); ?></option>
<?php
}
foreach ($veranstalter as $veranstalter_row) {
echo "<option value=\"" . $veranstalter_row->veranstalter_id . "\" " . (empty($verein_import) && ($v->veranstalterbezeichnung == $veranstalter_row->veranstalterbezeichnung || (isset($veranstalter_zugehoerigkeit[$v->veranstalterbezeichnung]) && $veranstalter_zugehoerigkeit[$v->veranstalterbezeichnung] == $veranstalter_row->veranstalter_id)) ? "selected" : "") . ">" . htmlentities_utf8($veranstalter_row->veranstalterbezeichnung) . "</option>";
}
?>
</optgroup>
<?php
if (!empty($verein_import)) {
$veranstalterbezeichnung = -1;
foreach ($vereine as $verein) {
if ($veranstalterbezeichnung != $verein->veranstalterbezeichnung) {
if ($veranstalterbezeichnung != -1)
echo "</optgroup>";
echo "<optgroup label=\"" . Text::_('COM_SPORTSMANAGER_CLUBS') . " " . htmlentities_utf8($verein->veranstalterbezeichnung != null ? $verein->veranstalterbezeichnung : "") . "\">";
$veranstalterbezeichnung = $verein->veranstalterbezeichnung;
}
echo "<option value=\"-" . $verein->verein_id . "\"" . ($verein_import_id == $verein->verein_id ? " selected" : "") . ">" . htmlentities_utf8($verein->vereinsname) . "</option>";
}
if ($veranstalterbezeichnung != -1)
echo "</optgroup>";
}
?>
</select>
</td>
</tr>
<?php
$n++;
}
?>
<tr>
<td nowrap colspan="2">&nbsp;
}
?>
</select>
</td>
</tr>
<?php
$n++;
}
?>
<tr>
<td nowrap colspan="2">&nbsp;
</td>
</tr>
</table>
</div>
</td>
</tr>
</td>
</tr>
</table>
</div>
@@ -2526,7 +2498,7 @@ class HTML_sportsmanager_admin
<?php
}
static function adminImportSpielerVorschau($import_verweigern, $spieler, $veranstalter, $session_id, $persoenliche_daten, $lizenznr_beibehalten, $spalten): void
static function adminImportSpielerVorschau($import_verweigern, $spieler, $veranstalter, $session_id, $persoenliche_daten, $spalten): void
{
global $params;
$spieler_anzahl = count($spieler);
@@ -2663,17 +2635,14 @@ class HTML_sportsmanager_admin
}
?>
<input type="hidden" name="session_id" value="<?php echo htmlentities_utf8($session_id); ?>"/>
<input type="hidden" name="persoenliche_daten"
value="<?php echo htmlentities_utf8($persoenliche_daten); ?>"/>
<input type="hidden" name="lizenznr_beibehalten"
value="<?php echo htmlentities_utf8($lizenznr_beibehalten); ?>"/>
<input type="hidden" name="persoenliche_daten" value="<?php echo htmlentities_utf8($persoenliche_daten); ?>"/>
<input type="hidden" name="spalten" value="<?php echo htmlentities_utf8($spalten); ?>"/>
<input type="hidden" name="task" value="admin_spieler_import"/>
</form>
<?php
}
static function adminImportSpielerBericht($aktualisierungen, $spielerHinzugefuegt, $vereineHinzugefuegt, $spieler_import, $vereineManuell, $ausgetreteneVereineMitAktivenMitgliedern, $kategorie_potentiell_geaendert, $rsession_id): void
static function adminImportSpielerBericht($aktualisierungen, $spielerHinzugefuegt, $nichtAktualisierteUnterschiede, $vereineHinzugefuegt, $spieler_import, $vereineManuell, $ausgetreteneVereineMitAktivenMitgliedern, $kategorie_potentiell_geaendert, $rsession_id): void
{
global $params;
@@ -2905,6 +2874,35 @@ class HTML_sportsmanager_admin
<span class="article_seperator<?php echo $params->get('pageclass_sfx'); ?>">&nbsp;</span>
<?php
}
if (!empty($nichtAktualisierteUnterschiede)){
?>
<table class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr>
<th nowrap class="contentheading<?php echo $params->get('pageclass_sfx'); ?>"
style="width: 100%"><?php echo Text::_('COM_SPORTSMANAGER_NOT_ACTUALIZED_DATA'); ?></th>
</tr>
</table>
<table class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<?php
$k = 0;
foreach ($nichtAktualisierteUnterschiede as $s) {
?>
<tr class="sectiontableentry<?php echo $k + 1;
$k = ($k + 1) % 2; ?><?php echo $params->get('pageclass_sfx'); ?>">
<td nowrap style="width: 250px;"><?php echo htmlentities_utf8($s->spieler); ?></td>
<td nowrap style="width: 150px;"><?php echo htmlentities_utf8($s->feld); ?></td>
<td nowrap style="width: 120px;"><?php echo htmlentities_utf8($s->db); ?></td>
<td nowrap style="width: 120px;"><?php echo htmlentities_utf8($s->csv); ?></td>
</tr>
<?php
}
?>
</table>
<span class="article_seperator<?php echo $params->get('pageclass_sfx'); ?>">&nbsp;</span>
<?php
}
}
static function adminVerteiler($verteiler, $organisationen, $organisationen_mailverteiler, $veranstaltungen, $veranstaltungen_mailverteiler, $saisons, $filter_saison_id, $moderator_zugriff): void
@@ -10325,14 +10323,14 @@ class HTML_sportsmanager_admin
:</label>
</td>
<td nowrap>
<?php if ($neuer_eintrag) {$row->spiel_nr = "";} ?>
<?php $spiel_nr = ($neuer_eintrag || $row == null) ? null : ($row->spiel_nr ?? null); ?>
<select class="uk-select uk-form-width-xsmall" id="game_nr" size="1"
title="Spielnummer (optional)" name="spiel_nr">
<option value=""></option>
<?php
for ($i = 1; $i <= 99; $i++)
{
echo "<option value=\"" . $i . "\"" . ($row->spiel_nr == $i ? " selected" : "") . ">" . $i . "</option>";
echo "<option value=\"" . $i . "\"" . ($spiel_nr == $i ? " selected" : "") . ">" . $i . "</option>";
}
?>
</select>
@@ -415,7 +415,7 @@ COM_SPORTSMANAGER_EXPORT="Exportieren"
COM_SPORTSMANAGER_INTERNATIONAL_PLAYERS="Spieler (international)"
COM_SPORTSMANAGER_COUNTRY_CODE="Landeskennung"
COM_SPORTSMANAGER_IMPORT="Importieren"
COM_SPORTSMANAGER_IMPORT_MESSAGE="Im Import sind ausschlie&szlig;lich Spielerdaten zum Verein %s enthalten. Soll ausschlie&szlig;lich der Spielerbestand des einen Vereins aktualisiert werden, muss der zugeh&ouml;rige Verein unten ausgew&auml;hlt werden. Beinhaltet der Import den gesamten Spielerbestand einer Organisation, muss die zugeh&ouml;rige Organisation gew&auml;hlt werden."
COM_SPORTSMANAGER_IMPORT_MESSAGE="Im Import sind ausschlie&szlig;lich Spielerdaten zum Verein %s enthalten. Soll ausschlie&szlig;lich der Spielerbestand des einen Vereins aktualisiert werden, muss der zugeh&ouml;rige Verein unten ausgew&auml;hlt werden. Beinhaltet der Import den gesamten Spielerbestand einer Organisation, muss die zugeh&ouml;rige Organisation gew&auml;hlt werden.<br />Bei schon vorhandener Lizenznummer wird die Lizenznummer und das Geburtsjahr nicht &uuml;berschrieben!"
COM_SPORTSMANAGER_CHECK="Pr&uuml;fen"
COM_SPORTSMANAGER_IMPORT_CONFLICTS_MESSAGE="Im Import sind Fehler oder Konflikte enthalten, die im Vorfeld manuell beseitigt werden müssen."
COM_SPORTSMANAGER_IMPORT_DUPLICATE_MESSAGE="Versuch, Spielernr. auf eine bereits für einen anderen Spieler vergebene Spielernr. zu ändern"
@@ -1070,3 +1070,4 @@ COM_SPORTSMANAGER_NOT_VALID_TIME="Ung&uuml;ltige Uhrzeit"
COM_SPORTSMANAGER_REALLY_MATCH_RESCHEDULING="Willst Du diesen Spielverlegung wirklich entfernen?"
COM_SPORTSMANAGER_REST_DAYS="Ruhetage"
COM_SPORTSMANAGER_TRAINING_DAYS="Trainingstage"
COM_SPORTSMANAGER_NOT_ACTUALIZED_DATA="Nicht aktualisierte Daten"
@@ -415,7 +415,7 @@ COM_SPORTSMANAGER_EXPORT="Export"
COM_SPORTSMANAGER_INTERNATIONAL_PLAYERS="Players (international)"
COM_SPORTSMANAGER_COUNTRY_CODE="Country code"
COM_SPORTSMANAGER_IMPORT="Import"
COM_SPORTSMANAGER_IMPORT_MESSAGE="In the import there are only player information about club %s present. Shall only the members of that one club be updated, the associated club has to be selected down here. If the import contains all members of the organisation then the organisation must be selected."
COM_SPORTSMANAGER_IMPORT_MESSAGE="In the import there are only player information about club %s present. Shall only the members of that one club be updated, the associated club has to be selected down here. If the import contains all members of the organisation then the organisation must be selected.<br />If a license number already exists, the license number and the year of birth will not be overwritten."
COM_SPORTSMANAGER_CHECK="Check"
COM_SPORTSMANAGER_IMPORT_CONFLICTS_MESSAGE="There are faults or conflicts in the import which have to be fixed manually first."
COM_SPORTSMANAGER_IMPORT_DUPLICATE_MESSAGE="Attempt to change player number into one that is already assigned to another player."
@@ -1070,3 +1070,4 @@ COM_SPORTSMANAGER_NOT_VALID_TIME="Not valid time"
COM_SPORTSMANAGER_REALLY_MATCH_RESCHEDULING="Do you really want to remove this match rescheduling?"
COM_SPORTSMANAGER_REST_DAYS="Rest days"
COM_SPORTSMANAGER_TRAINING_DAYS="Training days"
COM_SPORTSMANAGER_NOT_ACTUALIZED_DATA="Data not updated"