From c21d20e53282c68b2ef40b66e907b3bf5b632383 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Meyer?= Date: Tue, 27 Jan 2026 07:00:54 +0100 Subject: [PATCH 01/13] Bei csv-Export wird Semikolon im Text durch Komma ersetzt (bei Export von Ligabetrieb, Ordnungsstrafen und Spielverlegungen) --- src/structure/components/com_sportsmanager/admin.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/structure/components/com_sportsmanager/admin.php b/src/structure/components/com_sportsmanager/admin.php index 59e6d65..495bf63 100644 --- a/src/structure/components/com_sportsmanager/admin.php +++ b/src/structure/components/com_sportsmanager/admin.php @@ -123,11 +123,12 @@ function CSVfromArray($rows,$dateiname) $data = ""; $trennzeichen = ";"; + $replace = ","; $header = ""; - $header .= implode(';', array_keys($rows[0])); + $header .= implode($trennzeichen, array_keys($rows[0])); foreach ($rows as $row) { - $data .= implode(';', $row)."\n"; + $data .= implode($trennzeichen, str_replace($trennzeichen,$replace,$row))."\n"; } echo $header . "\n" . utf8_decode(trim($data)); @@ -12249,6 +12250,7 @@ function adminBegegnungenExportForm(): void $data = ""; $trennzeichen = ";"; + $replace = ","; $spalte = 0; $header = ""; @@ -12266,7 +12268,7 @@ function adminBegegnungenExportForm(): void if ($spalte != 0) { $line .= $trennzeichen; } - $line .= $value; + $line .= str_replace($trennzeichen,$replace,$value); $spalte++; } $data .= trim($line) . "\n"; From 218436c0658a355e16786b81f1045441530afdb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Meyer?= Date: Tue, 27 Jan 2026 13:02:51 +0100 Subject: [PATCH 02/13] CSV Export Funktion mittels KI komplett neu erstellt. --- .../components/com_sportsmanager/admin.php | 106 +++++++++--------- 1 file changed, 51 insertions(+), 55 deletions(-) diff --git a/src/structure/components/com_sportsmanager/admin.php b/src/structure/components/com_sportsmanager/admin.php index 495bf63..d6fad97 100644 --- a/src/structure/components/com_sportsmanager/admin.php +++ b/src/structure/components/com_sportsmanager/admin.php @@ -112,28 +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 = ";"; - $replace = ","; - $header = ""; - - $header .= implode($trennzeichen, array_keys($rows[0])); - foreach ($rows as $row) { - $data .= implode($trennzeichen, str_replace($trennzeichen,$replace,$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 @@ -5042,7 +5072,7 @@ function adminEditSpielverlegung(): void $zeile++; } - CSVfromArray($rows,"Spielverlegungen.csv"); + exportCSV($rows,"Spielverlegungen.csv"); } function adminSpielverlegungMailen(): void @@ -12241,42 +12271,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 = ";"; - $replace = ","; - $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 .= str_replace($trennzeichen,$replace,$value); - $spalte++; - } - $data .= trim($line) . "\n"; - } - - echo $header . "\n" . utf8_decode($data); - - die(); + + exportCSV($rows, $dateiname); } function adminEditTurnier(): void From 70563bc8e4d387d09fda2d25adea1c2651439eb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Meyer?= Date: Tue, 27 Jan 2026 14:57:43 +0100 Subject: [PATCH 03/13] =?UTF-8?q?Formulare=20f=C3=BCr=20Spielerimport=20an?= =?UTF-8?q?gepasst.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../views/sportsmanager/view_admin.php | 228 ++++++++---------- 1 file changed, 106 insertions(+), 122 deletions(-) diff --git a/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php b/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php index 690e996..3fd42d5 100644 --- a/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php +++ b/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php @@ -2268,28 +2268,20 @@ class HTML_sportsmanager_admin
- - -
-
- - - - - - - - + +
- : - - -
  + + + + + + + - -
+ : + + +
  -
- -
@@ -2340,109 +2332,101 @@ class HTML_sportsmanager_admin
- - - - - - - - @@ -2381,7 +2369,7 @@ class HTML_sportsmanager_admin From ea0515e827ed864a2873efe2a072d9a645a9273a Mon Sep 17 00:00:00 2001 From: jmeyer26 Date: Wed, 28 Jan 2026 17:00:52 +0100 Subject: [PATCH 07/13] Update src/structure/language/en-GB/en-GB.com_sportsmanager.ini Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- src/structure/language/en-GB/en-GB.com_sportsmanager.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/structure/language/en-GB/en-GB.com_sportsmanager.ini b/src/structure/language/en-GB/en-GB.com_sportsmanager.ini index db24054..b6a3a79 100644 --- a/src/structure/language/en-GB/en-GB.com_sportsmanager.ini +++ b/src/structure/language/en-GB/en-GB.com_sportsmanager.ini @@ -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.\nIf a license number already exists, the license number and the year of birth will not be overwritten." +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.
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." From 90cf2cc4ca2ac34f2d9cf5310cbc93988f40fb2e Mon Sep 17 00:00:00 2001 From: jmeyer26 Date: Wed, 28 Jan 2026 17:01:07 +0100 Subject: [PATCH 08/13] Update src/structure/language/de-DE/de-DE.com_sportsmanager.ini Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- src/structure/language/de-DE/de-DE.com_sportsmanager.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/structure/language/de-DE/de-DE.com_sportsmanager.ini b/src/structure/language/de-DE/de-DE.com_sportsmanager.ini index e79dc77..521babb 100644 --- a/src/structure/language/de-DE/de-DE.com_sportsmanager.ini +++ b/src/structure/language/de-DE/de-DE.com_sportsmanager.ini @@ -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ßlich Spielerdaten zum Verein %s enthalten. Soll ausschließlich der Spielerbestand des einen Vereins aktualisiert werden, muss der zugehörige Verein unten ausgewählt werden. Beinhaltet der Import den gesamten Spielerbestand einer Organisation, muss die zugehörige Organisation gewählt werden.\nBei schon vorhandener Lizenznumme wird die Lizenznummer und das Geburtsjahr nicht überschrieben!" +COM_SPORTSMANAGER_IMPORT_MESSAGE="Im Import sind ausschließlich Spielerdaten zum Verein %s enthalten. Soll ausschließlich der Spielerbestand des einen Vereins aktualisiert werden, muss der zugehörige Verein unten ausgewählt werden. Beinhaltet der Import den gesamten Spielerbestand einer Organisation, muss die zugehörige Organisation gewählt werden.
Bei schon vorhandener Lizenznumme wird die Lizenznummer und das Geburtsjahr nicht überschrieben!" COM_SPORTSMANAGER_CHECK="Prü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" From 50d332cd45cc6765898d2da9d0fcf3e5105a2cf2 Mon Sep 17 00:00:00 2001 From: jmeyer26 Date: Wed, 28 Jan 2026 17:58:09 +0100 Subject: [PATCH 09/13] Update src/structure/language/en-GB/en-GB.com_sportsmanager.ini Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- src/structure/language/en-GB/en-GB.com_sportsmanager.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/structure/language/en-GB/en-GB.com_sportsmanager.ini b/src/structure/language/en-GB/en-GB.com_sportsmanager.ini index b6a3a79..ee0e151 100644 --- a/src/structure/language/en-GB/en-GB.com_sportsmanager.ini +++ b/src/structure/language/en-GB/en-GB.com_sportsmanager.ini @@ -1070,4 +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="Not actualized data" \ No newline at end of file +COM_SPORTSMANAGER_NOT_ACTUALIZED_DATA="Data not updated" \ No newline at end of file From 8890ca35d2bc11665e96aac79682763044a7da0e Mon Sep 17 00:00:00 2001 From: jmeyer26 Date: Wed, 28 Jan 2026 17:59:23 +0100 Subject: [PATCH 10/13] Update src/structure/components/com_sportsmanager/views/sportsmanager/view.html.php Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../com_sportsmanager/views/sportsmanager/view.html.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/structure/components/com_sportsmanager/views/sportsmanager/view.html.php b/src/structure/components/com_sportsmanager/views/sportsmanager/view.html.php index ddc495d..3366c06 100644 --- a/src/structure/components/com_sportsmanager/views/sportsmanager/view.html.php +++ b/src/structure/components/com_sportsmanager/views/sportsmanager/view.html.php @@ -4538,7 +4538,7 @@ if ($bild != null) {
From 33c94ae907030999e78b7f9c8b079e284f17ee4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Meyer?= Date: Wed, 28 Jan 2026 18:04:26 +0100 Subject: [PATCH 11/13] Rechtschreibkorrketur --- src/structure/language/de-DE/de-DE.com_sportsmanager.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/structure/language/de-DE/de-DE.com_sportsmanager.ini b/src/structure/language/de-DE/de-DE.com_sportsmanager.ini index 521babb..3009007 100644 --- a/src/structure/language/de-DE/de-DE.com_sportsmanager.ini +++ b/src/structure/language/de-DE/de-DE.com_sportsmanager.ini @@ -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ßlich Spielerdaten zum Verein %s enthalten. Soll ausschließlich der Spielerbestand des einen Vereins aktualisiert werden, muss der zugehörige Verein unten ausgewählt werden. Beinhaltet der Import den gesamten Spielerbestand einer Organisation, muss die zugehörige Organisation gewählt werden.
Bei schon vorhandener Lizenznumme wird die Lizenznummer und das Geburtsjahr nicht überschrieben!" +COM_SPORTSMANAGER_IMPORT_MESSAGE="Im Import sind ausschließlich Spielerdaten zum Verein %s enthalten. Soll ausschließlich der Spielerbestand des einen Vereins aktualisiert werden, muss der zugehörige Verein unten ausgewählt werden. Beinhaltet der Import den gesamten Spielerbestand einer Organisation, muss die zugehörige Organisation gewählt werden.
Bei schon vorhandener Lizenznummer wird die Lizenznummer und das Geburtsjahr nicht überschrieben!" COM_SPORTSMANAGER_CHECK="Prü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" From c5ffbed4da92e1290f1896e629a25b759e830aeb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Meyer?= Date: Sat, 31 Jan 2026 18:49:25 +0100 Subject: [PATCH 12/13] =?UTF-8?q?Fehler=20bei=20Begegnung=20hinzuf=C3=BCge?= =?UTF-8?q?n=20gefixt.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com_sportsmanager/views/sportsmanager/view_admin.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php b/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php index 690e996..cd20e7d 100644 --- a/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php +++ b/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php @@ -10325,14 +10325,14 @@ class HTML_sportsmanager_admin :
-
- - - - - - - - - - - - - - - - + +
- - - -
- - -
- - - + + + + + + + + + + + + + + - - - - + + + + - -
+ + + +
+ + +
+ + + -
  + } + ?> + +
  -
- -
From 1479fc7e20b87e5cabbbb1df28770ea9c71c51d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Meyer?= Date: Tue, 27 Jan 2026 18:27:28 +0100 Subject: [PATCH 04/13] Importfunktion angepasst --- .../components/com_sportsmanager/admin.php | 34 +++++++++++++++---- .../views/sportsmanager/view_admin.php | 31 ++++++++++++++++- .../de-DE/de-DE.com_sportsmanager.ini | 3 +- .../en-GB/en-GB.com_sportsmanager.ini | 3 +- 4 files changed, 62 insertions(+), 9 deletions(-) diff --git a/src/structure/components/com_sportsmanager/admin.php b/src/structure/components/com_sportsmanager/admin.php index 59e6d65..d2740e8 100644 --- a/src/structure/components/com_sportsmanager/admin.php +++ b/src/structure/components/com_sportsmanager/admin.php @@ -2319,7 +2319,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; } @@ -2757,6 +2757,8 @@ function adminImportSpieler(): void } $aktualisierungen = 0; + $index_nicht_akt_unt = 0; + $nicht_aktualisierter_unterschiede = array(); $spielerHinzugefuegt = array(); $vereineHinzugefuegt = 0; $vereineManuell = array(); @@ -2806,17 +2808,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 +2844,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 +3083,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 diff --git a/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php b/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php index 3fd42d5..18c270a 100644 --- a/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php +++ b/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php @@ -2657,7 +2657,7 @@ class HTML_sportsmanager_admin get('pageclass_sfx'); ?>">  + + + + +
+ + + + + + + + + + +
spieler); ?>feld); ?>db); ?>csv); ?>
+   + Date: Wed, 28 Jan 2026 12:10:42 +0100 Subject: [PATCH 05/13] Checkbox Lizenznummer erhalten entfernt. --- .../components/com_sportsmanager/admin.php | 5 ++--- .../views/sportsmanager/view_admin.php | 21 +++---------------- .../de-DE/de-DE.com_sportsmanager.ini | 2 +- .../en-GB/en-GB.com_sportsmanager.ini | 2 +- 4 files changed, 7 insertions(+), 23 deletions(-) diff --git a/src/structure/components/com_sportsmanager/admin.php b/src/structure/components/com_sportsmanager/admin.php index d2740e8..7e7f158 100644 --- a/src/structure/components/com_sportsmanager/admin.php +++ b/src/structure/components/com_sportsmanager/admin.php @@ -2575,7 +2575,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 +2605,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" @@ -2758,7 +2757,7 @@ function adminImportSpieler(): void $aktualisierungen = 0; $index_nicht_akt_unt = 0; - $nicht_aktualisierter_unterschiede = array(); + $nichtAktualisierteUnterschiede = array(); $spielerHinzugefuegt = array(); $vereineHinzugefuegt = 0; $vereineManuell = array(); diff --git a/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php b/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php index 18c270a..31f8380 100644 --- a/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php +++ b/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php @@ -2357,18 +2357,6 @@ class HTML_sportsmanager_admin
- - -
- - + diff --git a/src/structure/language/de-DE/de-DE.com_sportsmanager.ini b/src/structure/language/de-DE/de-DE.com_sportsmanager.ini index af41c63..e79dc77 100644 --- a/src/structure/language/de-DE/de-DE.com_sportsmanager.ini +++ b/src/structure/language/de-DE/de-DE.com_sportsmanager.ini @@ -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ßlich Spielerdaten zum Verein %s enthalten. Soll ausschließlich der Spielerbestand des einen Vereins aktualisiert werden, muss der zugehörige Verein unten ausgewählt werden. Beinhaltet der Import den gesamten Spielerbestand einer Organisation, muss die zugehörige Organisation gewählt werden." +COM_SPORTSMANAGER_IMPORT_MESSAGE="Im Import sind ausschließlich Spielerdaten zum Verein %s enthalten. Soll ausschließlich der Spielerbestand des einen Vereins aktualisiert werden, muss der zugehörige Verein unten ausgewählt werden. Beinhaltet der Import den gesamten Spielerbestand einer Organisation, muss die zugehörige Organisation gewählt werden.\nBei schon vorhandener Lizenznumme wird die Lizenznummer und das Geburtsjahr nicht überschrieben!" COM_SPORTSMANAGER_CHECK="Prü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" diff --git a/src/structure/language/en-GB/en-GB.com_sportsmanager.ini b/src/structure/language/en-GB/en-GB.com_sportsmanager.ini index 15fd97d..db24054 100644 --- a/src/structure/language/en-GB/en-GB.com_sportsmanager.ini +++ b/src/structure/language/en-GB/en-GB.com_sportsmanager.ini @@ -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.\nIf 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." From a868d5645016d3de9b1b5623a2f260b3a3b18870 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Meyer?= Date: Wed, 28 Jan 2026 16:51:52 +0100 Subject: [PATCH 06/13] Spielerstatus im Verein in Spielerdetails --- src/structure/components/com_sportsmanager/sportsmanager.php | 4 +++- .../com_sportsmanager/views/sportsmanager/view.html.php | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/structure/components/com_sportsmanager/sportsmanager.php b/src/structure/components/com_sportsmanager/sportsmanager.php index 05de63e..367e16a 100644 --- a/src/structure/components/com_sportsmanager/sportsmanager.php +++ b/src/structure/components/com_sportsmanager/sportsmanager.php @@ -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 " diff --git a/src/structure/components/com_sportsmanager/views/sportsmanager/view.html.php b/src/structure/components/com_sportsmanager/views/sportsmanager/view.html.php index 95f2e51..ddc495d 100644 --- a/src/structure/components/com_sportsmanager/views/sportsmanager/view.html.php +++ b/src/structure/components/com_sportsmanager/views/sportsmanager/view.html.php @@ -4536,9 +4536,9 @@ if ($bild != null) { : - vereinsname) . "
"; + echo htmlentities_utf8($verein->vereinsname) . " (" . $verein->status . ")
"; ?>
vereinsname) . " (" . $verein->status . ")
"; + echo htmlentities_utf8($verein->vereinsname) . " (" . htmlentities_utf8($verein->status) . ")
"; ?>
- spiel_nr = "";} ?> + spiel_nr ?? null); ?> From 991d0501df45e6acace92a51a3231b19d18e79c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Meyer?= Date: Sat, 31 Jan 2026 19:04:08 +0100 Subject: [PATCH 13/13] Tipp des Copiloten benutzt :) --- .../com_sportsmanager/views/sportsmanager/view_admin.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php b/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php index cd20e7d..5fa2833 100644 --- a/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php +++ b/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php @@ -10325,7 +10325,7 @@ class HTML_sportsmanager_admin : - spiel_nr ?? null); ?> + spiel_nr ?? null); ?>