Compare commits

...

355 Commits

Author SHA1 Message Date
MarvinF 572ccee6fd Merge pull request #267 from Deutscher-Tischfussballbund/sportsmanager2-stage
stage to prod
2026-03-10 00:13:41 +01:00
MarvinF fa03965b17 Merge branch 'sportsmanager2-prod' into sportsmanager2-stage 2026-03-10 00:13:14 +01:00
MarvinF 0376b46470 Merge pull request #266 from Deutscher-Tischfussballbund/sportsmanager2-dev
dev to stage
2026-03-10 00:11:00 +01:00
MarvinF c8f419e00a Merge branch 'sportsmanager2-stage' into sportsmanager2-dev 2026-03-10 00:10:35 +01:00
MarvinF 116e4929b2 Merge pull request #265 from Deutscher-Tischfussballbund/sportsmanager2-issue261-issue262
Optimizations for Hall of fame, gameplans, associations, game postponement and more
2026-03-10 00:09:13 +01:00
MarvinF aed4d19c47 Merge branch 'sportsmanager2-dev' into sportsmanager2-issue261-issue262 2026-03-10 00:08:54 +01:00
Jürgen Meyer 2faa38e2b8 Hilfsausgabe gelöscht 2026-03-09 07:44:59 +01:00
Jürgen Meyer dc0fcea945 Beanstandung Copilot abgearbeitet 5 2026-03-09 07:43:20 +01:00
Jürgen Meyer e139ac4fc2 Beanstandung Copilot abgearbeitet 4 2026-03-08 23:59:38 +01:00
jmeyer26 5919994a3e Update src/structure/components/com_sportsmanager/admin.php
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-08 23:02:02 +01:00
jmeyer26 eccecedf95 Update src/structure/language/de-DE/de-DE.com_sportsmanager.ini
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-08 22:58:31 +01:00
Jürgen Meyer 9ed58f2916 Beanstandung Copilot abgearbeitet 2 2026-03-08 22:43:05 +01:00
Jürgen Meyer 1a9188c07b Beanstandung Copilot abgearbeitet 1 2026-03-08 21:46:09 +01:00
Jürgen Meyer 9435515088 Beim Löschen von Spieler bzw. Vereine werden die entsprechenden ids in Hall of Fame und Verbandsorgane gelöscht 2026-03-08 20:43:10 +01:00
Jürgen Meyer 4ada3a3b77 Bemerkungen angepasst 2026-03-08 12:23:39 +01:00
Jürgen Meyer 8391bf9df1 Automatische Spielberichtskorrektur bei doppelter Spielnummer 2026-03-08 12:19:10 +01:00
Jürgen Meyer bac4c0ada4 Funktion Spielbericht löschen hinzugefügt. 2026-03-08 09:23:27 +01:00
MarvinF ba50b0d6a4 Merge pull request #264 from Deutscher-Tischfussballbund/sportsmanager2-stage
stage to prod
2026-03-07 01:12:47 +01:00
MarvinF e4c4694dcb Merge branch 'sportsmanager2-prod' into sportsmanager2-stage 2026-03-07 01:12:18 +01:00
MarvinF e5de0030f2 Merge pull request #263 from Deutscher-Tischfussballbund/sportsmanager2-dev
dev to stage
2026-03-07 01:10:38 +01:00
MarvinF 8d364e0bfd Merge branch 'sportsmanager2-stage' into sportsmanager2-dev 2026-03-07 01:10:17 +01:00
Jürgen Meyer eed02e396d Evtl. vorhandene Ordnungsstrafen werden beim Löschen eines Spieles mitgelöscht. 2026-03-06 20:16:54 +01:00
Jürgen Meyer 40be14ad75 Heimrechttausch: Sicherheitsabfrage und speichern in Historie 2026-03-06 15:10:01 +01:00
Jürgen Meyer 54965f9ef2 Scrollbalken bei Ordnungsstrafen, Verbandsorgane und Hall of Fame 2026-03-06 10:43:46 +01:00
jmeyer26 8780229435 Merge pull request #260 from Deutscher-Tischfussballbund/sportsmanager2-250
Hall of Fame hinzugefügt
2026-03-02 19:51:09 +01:00
Jürgen Meyer a856a979aa Hall of Fame hinzugefügt 2026-03-02 19:49:22 +01:00
Jürgen Meyer 578fb76ead Klammer in update.php fehlte nach resolve conflicts 2026-02-25 11:00:02 +01:00
jmeyer26 b199b73d6f Merge pull request #258 from Deutscher-Tischfussballbund/sportsmanager2-issue070
Sportsmanager2 issue070
2026-02-25 09:42:22 +01:00
jmeyer26 0d61e9a823 Merge branch 'sportsmanager2-dev' into sportsmanager2-issue070 2026-02-25 09:40:39 +01:00
jmeyer26 299b0bef4e Merge pull request #257 from Deutscher-Tischfussballbund/sportsmanager2-explicit-penalties
Explicit penalties for league teams
2026-02-25 09:30:49 +01:00
Jürgen Meyer 57c158a770 Kleine Korrekturen 2026-02-24 18:49:29 +01:00
Wieland Hagen 84d07aecb1 Explicit penalties for league teams (3): add moderator_user_id 2026-02-23 16:18:35 +01:00
Wieland Hagen 5bd0735708 Explicit penalties for league teams (2): resolved issues in PR 2026-02-23 15:43:29 +01:00
Jürgen Meyer 69e2032916 Letzte Änderung 2026-02-13 11:00:11 +01:00
jmeyer26 e5aede7cac Update src/structure/components/com_sportsmanager/admin.php
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-13 10:35:07 +01:00
jmeyer26 7f8f842796 Update src/structure/components/com_sportsmanager/admin.php
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-13 08:53:21 +01:00
jmeyer26 112511aa12 Update src/structure/components/com_sportsmanager/sportsmanager.php
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-13 08:49:51 +01:00
jmeyer26 eacb0dc165 Update src/structure/components/com_sportsmanager/views/sportsmanager/view.html.php
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-13 08:47:22 +01:00
Jürgen Meyer 67f5f38d1a Vorschläge des Copiloten umgesetzt 2026-02-13 08:10:35 +01:00
jmeyer26 f65ec6be88 Update src/structure/components/com_sportsmanager/database/update.php
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-13 06:54:41 +01:00
jmeyer26 427bd545af Update src/structure/script.php
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-13 06:54:20 +01:00
jmeyer26 986cd6d99e Update src/structure/components/com_sportsmanager/admin.php
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-13 06:42:58 +01:00
Jürgen Meyer 66baeb0f77 update.php und script.php erweitert 2026-02-12 17:04:26 +01:00
Jürgen Meyer 46474c6c40 Verteilerliste erweitert 2026-02-12 15:58:23 +01:00
Jürgen Meyer a583131162 Exportfunktion und ein paar Korrekturen 2026-02-12 15:06:38 +01:00
Jürgen Meyer cb8b6ebe06 Einige Optimierungen 2026-02-12 11:33:29 +01:00
Jürgen Meyer d41376494f Bilder hinzugefügt und ein paar Optimierungen 2026-02-11 17:03:02 +01:00
Jürgen Meyer d462137424 Frontend für Verbandsorgane erstellt. 2026-02-11 13:58:12 +01:00
Jürgen Meyer 3cb3fa2b28 Formulare für Mitglieder Verbandsorgane erstellt. 2026-02-10 16:23:57 +01:00
Jürgen Meyer 10807c7ea8 Organisation hinzugefügt und kleine Korrekturen. 2026-02-10 10:00:46 +01:00
Jürgen Meyer e469e70b97 Formulare für Tabelle Verbandsorgane erstellt 2026-02-09 17:20:45 +01:00
Wieland Hagen 522369bb14 Explicit penalties for league teams 2026-02-09 11:09:02 +01:00
MarvinF 91caf76a71 Merge pull request #256 from Deutscher-Tischfussballbund/sportsmanager2-stage
stage to prod
2026-02-03 19:27:41 +01:00
MarvinF 12037f9bac Merge branch 'sportsmanager2-prod' into sportsmanager2-stage 2026-02-03 19:27:10 +01:00
MarvinF b1af98df54 Merge pull request #255 from Deutscher-Tischfussballbund/sportsmanager2-dev
dev to stage
2026-02-03 19:25:43 +01:00
MarvinF fe885160d9 Merge branch 'sportsmanager2-stage' into sportsmanager2-dev 2026-02-03 19:25:22 +01:00
MarvinF 308bbd4d76 Update build_release.yml
remove teams notification
2026-02-03 19:23:19 +01:00
MarvinF 89bbba9c1c Merge pull request #254 from Deutscher-Tischfussballbund/sportsmanager2-stage
stage to prod merge
2026-02-03 19:17:18 +01:00
MarvinF aa07d51cd3 Merge branch 'sportsmanager2-prod' into sportsmanager2-stage 2026-02-03 19:09:48 +01:00
MarvinF 5ca5015eb4 Merge pull request #253 from Deutscher-Tischfussballbund/sportsmanager2-dev
dev to stage merge
2026-02-03 19:09:10 +01:00
MarvinF a0ef2bda54 Merge branch 'sportsmanager2-stage' into sportsmanager2-dev 2026-02-03 19:08:43 +01:00
MarvinF 3300a66c19 Merge pull request #249 from Deutscher-Tischfussballbund/sportsmanager2-issue244
Sportsmanager2 issue244
2026-02-03 19:02:44 +01:00
MarvinF cd60c9f42a Merge branch 'sportsmanager2-dev' into sportsmanager2-issue244 2026-02-03 19:02:23 +01:00
MarvinF 692fd0a676 Merge pull request #248 from Deutscher-Tischfussballbund/sportsmanager2-issue247
remove delimiter on csv-export
2026-02-02 18:56:41 +01:00
MarvinF b8e21aa8ee Merge branch 'sportsmanager2-dev' into sportsmanager2-issue247 2026-02-02 18:56:04 +01:00
MarvinF 1d66905488 Merge pull request #251 from Deutscher-Tischfussballbund/Sportsmanager2-issue250
fix error "spiel_nr on null" in team tournament encounter
2026-02-02 17:00:30 +01:00
Jürgen Meyer 991d0501df Tipp des Copiloten benutzt :) 2026-01-31 19:04:08 +01:00
Jürgen Meyer c5ffbed4da Fehler bei Begegnung hinzufügen gefixt. 2026-01-31 18:49:25 +01:00
Jürgen Meyer 33c94ae907 Rechtschreibkorrketur 2026-01-28 18:04:26 +01:00
jmeyer26 8890ca35d2 Update src/structure/components/com_sportsmanager/views/sportsmanager/view.html.php
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-28 17:59:23 +01:00
jmeyer26 50d332cd45 Update src/structure/language/en-GB/en-GB.com_sportsmanager.ini
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-28 17:58:09 +01:00
jmeyer26 90cf2cc4ca Update src/structure/language/de-DE/de-DE.com_sportsmanager.ini
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-28 17:01:07 +01:00
jmeyer26 ea0515e827 Update src/structure/language/en-GB/en-GB.com_sportsmanager.ini
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-28 17:00:52 +01:00
Jürgen Meyer a868d56450 Spielerstatus im Verein in Spielerdetails 2026-01-28 16:51:52 +01:00
Jürgen Meyer eaaa75d584 Checkbox Lizenznummer erhalten entfernt. 2026-01-28 12:10:42 +01:00
Jürgen Meyer 1479fc7e20 Importfunktion angepasst 2026-01-27 18:27:28 +01:00
Jürgen Meyer 70563bc8e4 Formulare für Spielerimport angepasst. 2026-01-27 14:57:43 +01:00
Jürgen Meyer 218436c065 CSV Export Funktion mittels KI komplett neu erstellt. 2026-01-27 13:02:51 +01:00
Jürgen Meyer c21d20e532 Bei csv-Export wird Semikolon im Text durch Komma ersetzt (bei Export von Ligabetrieb, Ordnungsstrafen und Spielverlegungen) 2026-01-27 07:00:54 +01:00
MarvinF 8b22eb886d Merge pull request #246 from Deutscher-Tischfussballbund/sportsmanager2-stage
stage to prod
2026-01-26 17:59:27 +01:00
MarvinF ae05c42209 Merge branch 'sportsmanager2-prod' into sportsmanager2-stage 2026-01-26 17:59:03 +01:00
MarvinF 3bc1324b4b Merge pull request #245 from Deutscher-Tischfussballbund/sportsmanager2-dev
dev to stage
2026-01-26 17:57:36 +01:00
MarvinF 23ceb2e272 Merge branch 'sportsmanager2-stage' into sportsmanager2-dev 2026-01-26 17:56:42 +01:00
MarvinF 5b26295ebf Merge pull request #243 from Deutscher-Tischfussballbund/sportsmanager2-issue242
Sportsmanager2 issue242
2026-01-26 17:51:55 +01:00
Jürgen Meyer 9d3cd6b959 Telefonnummer Spielort in Team Details 2026-01-26 11:28:21 +01:00
Jürgen Meyer 6b7c5e7a3b Export Teamdaten implementiert. 2026-01-22 14:45:37 +01:00
Jürgen Meyer ab6f776b96 Tabellen Spielorte, Teams um die Felder telefon, EMail, Ruhetage und Trainingstage erweitert. 2026-01-22 11:31:27 +01:00
jmeyer26 8fed3c217f Merge pull request #241 from Deutscher-Tischfussballbund/sportsmanager2-issue240
Sportsmanager2 issue240
2026-01-22 09:18:25 +01:00
jmeyer26 633ec1f1cb Merge pull request #238 from Deutscher-Tischfussballbund/sportsmanager2-issue234
Sportsmanager2 issue234
2026-01-22 09:17:18 +01:00
Jürgen Meyer 41e229340d Formulare optimiert 2026-01-14 18:22:02 +01:00
Jürgen Meyer 379427d4c4 json Import implementiert. csv-Import um Lizenznummer erweitert. 2026-01-13 19:42:08 +01:00
Jürgen Meyer a2808b7db0 Erst mal ein bisschen aufgeräumt 2026-01-13 11:17:32 +01:00
Jürgen Meyer c3cec6c93c SQL-Anweisungen übersichtlicher gestaltet. 2026-01-06 16:53:19 +01:00
Jürgen Meyer 9913279519 Benutzerrechte für OS und SV angepasst 2026-01-06 13:10:40 +01:00
Jürgen Meyer 0c78ed8b63 Fehler bei Insert Antragsteller korrigiert 2026-01-04 13:29:29 +01:00
Jürgen Meyer 4a448cb61d Letzter Feinschliff 2026-01-04 12:14:21 +01:00
Jürgen Meyer 825ff04a89 script.php angepasst und noch ein paar kleine Korrekturen 2026-01-03 17:45:35 +01:00
Jürgen Meyer 8b7ca05fc1 Mailen von Spielverlegung und Export von Spielverlegungen 2026-01-02 23:12:45 +01:00
Jürgen Meyer 76f0ef5f55 Anlegen und Löschen von Spielverlegungen 2026-01-01 18:31:09 +01:00
Jürgen Meyer f76f1185f5 Abfragen optimiert 2025-12-30 18:53:44 +01:00
Jürgen Meyer 7253426b51 Menüstruktur für admin Spielverlegungen erstellt 2025-12-29 17:45:21 +01:00
Jürgen Meyer 4686f5d8db Liste Spielverlegungen in Frontend 2025-12-29 12:44:50 +01:00
Jürgen Meyer db80f584cd Verschiebereln erweitert. Kategoriefilter optimiert. 2025-12-25 13:20:54 +01:00
MarvinF 275693ecb3 Merge pull request #232 from Deutscher-Tischfussballbund/sportsmanager-issue069
implemented disciplinary penalties for clubs
2025-12-23 13:25:33 +01:00
MarvinF fb3c088835 Merge branch 'sportsmanager2-dev' into sportsmanager-issue069 2025-12-23 13:23:00 +01:00
jmeyer26 ddca0066bf Update src/structure/components/com_sportsmanager/admin.php
Co-authored-by: MarvinF <B3r@users.noreply.github.com>
2025-12-23 13:00:55 +01:00
MarvinF bc56e30682 Merge pull request #237 from Deutscher-Tischfussballbund/sportsmanager-issue236
Wrong winner when doing draw for cup
2025-12-23 12:39:19 +01:00
Jürgen Meyer 2fe9acb01c Änderungen gecheckt, Absender in joomlamail hinzugefügt. 2025-12-22 10:16:09 +01:00
Jürgen Meyer de3705ca65 Änderungen nach Kommentaren 2025-12-22 09:19:19 +01:00
Marvin Flock 947a150b06 fix: apply minor fixes to deprecated config and redundant variable assignment 2025-12-22 00:09:50 +01:00
Jürgen Meyer c8199abee1 Bei Pokalauslosung werden jetzt die richtigen Sieger erkannt 2025-12-21 18:35:44 +01:00
Jürgen Meyer 6c1a6aa0de Änderungen nach Kommentar vorgenommen 2025-12-21 05:21:36 +01:00
Marvin Flock 626b9c503a Merge branch 'sportsmanager2-dev' into sportsmanager-issue069
# Conflicts:
#	src/structure/components/com_sportsmanager/database/update.php
2025-12-20 17:21:54 +01:00
Jürgen Meyer 964ab1ca8b E-Mail über joomla. Status Überarbeitung. 2025-12-20 10:03:05 +01:00
Jürgen Meyer 783cffaf2b Kommemtar entfernt 2025-12-12 15:48:20 +01:00
Jürgen Meyer 12cb9a0e67 Fehler bei Export korrigiert. 2025-12-12 15:29:20 +01:00
Jürgen Meyer 49c8037dbf Export Ordnungsstrafen. Unnötige Tags entfernt. 2025-12-12 12:11:24 +01:00
Jürgen Meyer e7dbfa6402 Ordnungsstrafen implementiert 2025-12-11 17:52:36 +01:00
MarvinF b21e11be59 Merge pull request #231 from Deutscher-Tischfussballbund/sportsmanager2-stage
stage to prod
2025-12-09 19:11:57 +01:00
MarvinF f119316561 Merge branch 'sportsmanager2-prod' into sportsmanager2-stage 2025-12-09 19:11:36 +01:00
MarvinF 06070a1d47 Merge pull request #230 from Deutscher-Tischfussballbund/sportsmanager2-dev
dev to stage merge
2025-12-09 19:11:01 +01:00
MarvinF 5bf3fa3501 Merge branch 'sportsmanager2-stage' into sportsmanager2-dev 2025-12-09 19:10:17 +01:00
MarvinF a2cdc68578 Merge pull request #229 from Deutscher-Tischfussballbund/sportsmanager-issue225
administrators can't see player profiles of inactive players
2025-12-09 19:09:12 +01:00
MarvinF b34aa63872 Merge pull request #228 from Deutscher-Tischfussballbund/sportsmanager-issue227
Saving a tournament will overwrite the dates of its disciplines
2025-12-09 19:07:57 +01:00
Jürgen Meyer ddb7e3a1bd Korreketur datenbank-version 2025-12-09 05:46:28 +01:00
Jürgen Meyer e3fb99000c Korrektur Fehler beim Speichern Datum Disziplin 2025-12-09 05:43:23 +01:00
Jürgen Meyer 9cd84108e4 Spielerstatistik in adminSpieler um Vereinlose Spieler erweitert 2025-12-04 15:19:00 +01:00
Jürgen Meyer 3b721e3c82 Formular Spieler verschönert. 2025-12-04 14:08:14 +01:00
Jürgen Meyer fec866fa5d Profil von inaktiven Spieler kann mit bestimmten Rechten wieder angezeigt werden. 2025-12-04 13:31:33 +01:00
Marvin Flock d17280edb1 chore!: remove malicious fs package 2025-11-27 10:12:47 +01:00
MarvinF 287dcb0074 Merge pull request #224 from Deutscher-Tischfussballbund/sportsmanager2-stage
stage to prod
2025-11-17 17:16:48 +01:00
MarvinF 2e596dfcaa Merge branch 'sportsmanager2-prod' into sportsmanager2-stage 2025-11-17 17:16:28 +01:00
MarvinF 6c96125da4 Merge pull request #223 from Deutscher-Tischfussballbund/sportsmanager2-dev
dev to stage merge
2025-11-17 17:15:39 +01:00
MarvinF 01c7e5bb63 Merge branch 'sportsmanager2-stage' into sportsmanager2-dev 2025-11-17 17:15:00 +01:00
MarvinF 0116fd0860 Merge pull request #222 from Deutscher-Tischfussballbund/sportsmanager2-v230
Small design fixes
2025-11-16 20:17:39 +01:00
Jürgen Meyer ec61daa5c7 Kleine kosmetsiche Korrekturen 2025-11-15 11:28:53 +01:00
MarvinF e692edcb99 Merge pull request #220 from Deutscher-Tischfussballbund/sportsmanager2-issue217
Sportsmanager2 issue217
2025-11-14 11:25:37 +01:00
Marvin Flock c1196c9fd9 Merge branch 'sportsmanager2-dev' into sportsmanager2-issue217
# Conflicts:
#	src/structure/components/com_sportsmanager/database/update.php
2025-11-14 11:25:01 +01:00
MarvinF 4cc403536e Merge pull request #219 from Deutscher-Tischfussballbund/sportsmanager2-issue192
Playoffs optimization: KO games with game number and matchday title
2025-11-14 11:20:19 +01:00
Jürgen Meyer 1032af51f5 Kleine Korrektur 2025-11-14 07:28:36 +01:00
Jürgen Meyer 33d748303d Bei eintägiger Veranstaltung wird Datum in Formular Disziplin versteckt 2025-11-14 07:18:06 +01:00
Jürgen Meyer 331d4cfd85 Kleine Korrektur 2025-11-14 06:38:07 +01:00
Jürgen Meyer 6b1aa25c1b Comments in Review abgearbeitet 2025-11-14 06:33:11 +01:00
MarvinF 6b9f81f1c7 Merge pull request #221 from Deutscher-Tischfussballbund/sportsmanager2-issue218
MonsterDYP imports throw error
2025-11-13 21:52:06 +01:00
Jürgen Meyer e498981bc4 Datumsabgleich zwischen Turnier und Turnierdisziplin optimiert. 2025-11-13 17:13:43 +01:00
Jürgen Meyer 54d73a61e0 Hilfsausgabe gelöscht 2025-11-13 10:55:15 +01:00
Jürgen Meyer bd491add2e Unterdrückung der Speicherung von Turnierspielen bei Monstr-DYP 2025-11-13 10:51:11 +01:00
Jürgen Meyer 30c8ba9bfa Erweiterter Export für STFV 2025-11-12 11:56:35 +01:00
Jürgen Meyer 555f1de1b5 Verbandskürzel zu Einstellungen hinzugefügt 2025-11-12 11:17:21 +01:00
Jürgen Meyer a823e029d0 Live-Ticker angepasst 2025-11-10 16:32:19 +01:00
Jürgen Meyer 5627282a53 Vorbelegung Spielnummer entfernt. 2025-11-10 15:39:11 +01:00
Jürgen Meyer d73d081780 Ansicht Begegnungen im Frontend überarbeitet 2025-11-05 16:44:32 +01:00
Jürgen Meyer e3bd06257d Kleinen Programmierfehler beseitigt. 2025-11-05 12:43:32 +01:00
Jürgen Meyer 2a87c93c17 Anischt Begegnungen im admin-Bereich überarbeitet 2025-11-05 12:36:29 +01:00
Jürgen Meyer 5fafcace6b Überarbeitung Teamsport Spieltag erzeugen 2025-11-04 21:30:58 +01:00
MarvinF 12fd3a3ff0 Merge pull request #215 from Deutscher-Tischfussballbund/sportsmanager2-issue214
Add background color on hover for tournament trees
2025-11-04 18:47:30 +01:00
Jürgen Meyer 885d6a3191 Überarbeitung Begegnung hinzufügen bzw. editieren 2025-11-04 18:39:08 +01:00
MarvinF c50833ebe4 Merge pull request #216 from Deutscher-Tischfussballbund/sportsmanager2-issue213
Anzahl Kategorein auf 100 erhöht.
2025-11-04 00:05:18 +01:00
Jürgen Meyer 8242bd09cc Anzahl Kategorien Spielerstatistiken auf 100 erhöht 2025-11-03 15:32:14 +01:00
Jürgen Meyer 3886cc88d3 Anzahl Sortierreihenfolge Team Veranstaltungen auf 100 gesetzt. 2025-11-03 12:25:34 +01:00
Jürgen Meyer 96eff9f189 Anzahl Kategorein auf 100 erhöht. 2025-11-03 12:18:31 +01:00
Jürgen Meyer 1c2a0abcc2 Hintergrundfarbe bei Mouseover in Turnierbaum 2025-11-03 11:42:34 +01:00
MarvinF 24f4195403 Merge pull request #212 from Deutscher-Tischfussballbund/sportsmanager2-stage
stage to prod
2025-10-14 20:25:23 +02:00
MarvinF c1b7cb1e8c Merge pull request #211 from Deutscher-Tischfussballbund/sportsmanager2-dev
dev to stage merge
2025-10-14 20:23:35 +02:00
MarvinF 878cacd8cd Merge pull request #210 from Deutscher-Tischfussballbund/sportsmanager2-issue207
Sportsmanager2 issue207
2025-10-13 15:51:55 +02:00
MarvinF 5f830602ef Merge pull request #209 from Deutscher-Tischfussballbund/sportsmanager2-issue208
Vereinszuordnung Spieler korrigiert.
2025-10-12 23:31:46 +02:00
Jürgen Meyer eef105895b Spieleliste in Verein Details auskommentiert 2025-10-10 11:56:01 +02:00
Jürgen Meyer c0bdbb4bde Fehlerhaften Link Sortierung Vereine korrigiert. 2025-10-10 10:36:24 +02:00
Jürgen Meyer d05f3c5d7f Vereinszuordnung Spieler korrigiert. 2025-10-09 13:14:13 +02:00
MarvinF 0c334d897d Merge pull request #204 from Deutscher-Tischfussballbund/sportsmanager2-stage
downward merge stage to dev
2025-10-06 23:18:12 +02:00
MarvinF 79efed156b Merge pull request #203 from Deutscher-Tischfussballbund/sportsmanager2-prod
downward merge prod to stage
2025-10-06 23:17:24 +02:00
MarvinF 7984ea73aa Merge pull request #202 from Deutscher-Tischfussballbund/sportsmanager2-issue201
Zeileneinrückung in view.html.php korrigiert
2025-09-28 03:31:42 +02:00
Jürgen Meyer 7d07aee916 Zeileneinrückung in view.html.php korrigiert 2025-09-27 12:19:59 +02:00
MarvinF 43acc01861 Merge pull request #200 from Deutscher-Tischfussballbund/sportsmanager2-stage
stage to prod
2025-09-26 17:01:25 +02:00
MarvinF fa374986ca Merge pull request #199 from Deutscher-Tischfussballbund/sportsmanager2-dev
dev to stage
2025-09-26 17:00:10 +02:00
MarvinF aa68992d45 Merge pull request #197 from Deutscher-Tischfussballbund/fix/ranking_bug
website freezing up indefinitely
2025-09-26 16:52:53 +02:00
MarvinF 0d4381fc7f Merge pull request #84 from Deutscher-Tischfussballbund/feature/auto-email-missing-results
email reminder for tournament results
2025-09-26 16:51:54 +02:00
Marvin Flock 9b4eb13d52 feat: prevent email flood on new created tournaments when email reminder are turned on in later stages 2025-09-25 23:43:11 +02:00
Marvin Flock cfe4f871f7 Merge branch 'sportsmanager2-dev' into feature/auto-email-missing-results
# Conflicts:
#	src/structure/components/com_sportsmanager/database/update.php
#	src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php
2025-09-25 18:16:42 +02:00
Marvin Flock bbe786a075 fix: update regarding code review 2025-09-25 18:13:58 +02:00
Marvin Flock 64ce39a59f feat: add email reminder functionality 2025-09-25 02:53:50 +02:00
Jürgen Meyer d0258d967d Optimierung Inserts fuer Aktualisierung Ranglisten 2025-09-24 09:44:11 +02:00
MarvinF bf99d459fb Merge pull request #189 from Deutscher-Tischfussballbund/fix/183_long-discipline-names-break-layout
Long list of disciplines break tournament view
2025-09-23 20:18:30 +02:00
MarvinF bc91be9382 Merge pull request #195 from Deutscher-Tischfussballbund/sportsmanager2-issue193
change styling/sizing of tables
2025-09-23 20:14:24 +02:00
MarvinF 5c09a35485 Merge pull request #196 from Deutscher-Tischfussballbund/sportsmanager2-issue194
date formats break in group game import
2025-09-23 20:12:18 +02:00
MarvinF f14d5a1e8c Merge pull request #191 from Deutscher-Tischfussballbund/sportsmanager2-issue190
some live results will show up twice
2025-09-23 20:04:18 +02:00
MarvinF 26fd06afef Update view.html.php 2025-09-23 19:48:03 +02:00
Marvin Flock 1f147081e1 fix: add removed part back to sportsmanager 2025-09-23 18:18:24 +02:00
Jürgen Meyer 4f89abc630 Leerzeilen in Importdatei werden ignoriert. 2025-09-22 11:34:27 +02:00
Jürgen Meyer d84c2eefcf Kleine Korrektur 2025-09-22 06:37:27 +02:00
Jürgen Meyer ba73036b02 Import Gruppenspiele optimiert (issue #194) 2025-09-22 06:32:08 +02:00
Jürgen Meyer 29a108d88c Style Manuelle Tabelle an andere Tabellen angepasst (issue #193) 2025-09-22 04:52:40 +02:00
Jürgen Meyer 11e42c2374 tfvhh durch #_ ersetzt 2025-09-18 17:10:24 +02:00
Jürgen Meyer 56776c01f0 Doppelte Live-Ergebnisse eines Spiels (issue #190) 2025-09-18 16:54:22 +02:00
Marvin Flock 6187456e31 Merge branch 'sportsmanager2-dev' into feature/auto-email-missing-results
# Conflicts:
#	src/structure/components/com_sportsmanager/sportsmanager.php
2025-09-17 21:42:29 +02:00
Marvin Flock 49e3bde816 fix: display disciplines under each other in admin and public tournament view 2025-09-17 21:23:51 +02:00
MarvinF 15347b3ab7 Merge pull request #181 from Deutscher-Tischfussballbund/sportsmanager2-issue180
Überarbeitung Pokalauslosung (issue #180)
2025-09-17 20:37:19 +02:00
MarvinF 3363ec1a77 Merge pull request #182 from Deutscher-Tischfussballbund/sportsmanager2-issue178
Überarbeitung Anzeige Vereinsliste in Frontend (issue #178)
2025-09-17 20:36:49 +02:00
MarvinF 751c1919d4 Merge pull request #188 from Deutscher-Tischfussballbund/sportsmanager2-issue179
Initialisierung neuer Einstellungen (issue #179)
2025-09-17 20:36:08 +02:00
Jürgen Meyer 9babcec39e Passive und inaktive Spieler werden im oeffentlichen Bereich nicht mehr gezeigt (issue #150) 2025-09-17 19:17:30 +02:00
Jürgen Meyer e8c4ab2d1d Korrektur Dropdown Spielorte 2025-09-17 10:41:59 +02:00
Jürgen Meyer 53ff7ab566 Initialisierung neuer Einstellungen 2025-09-17 08:54:22 +02:00
Jürgen Meyer ac8bafaa9e Label für show_member_count angepasst 2025-09-17 08:08:36 +02:00
MarvinF 4f6edb0acb Merge pull request #187 from Deutscher-Tischfussballbund/sportsmanager2-stage
stage to prod
2025-09-16 20:37:44 +02:00
MarvinF 822708356b Merge pull request #186 from Deutscher-Tischfussballbund/sportsmanager2-dev
dev to stage
2025-09-16 20:36:49 +02:00
MarvinF 7c302d4ded Merge pull request #185 from Deutscher-Tischfussballbund/fix/live-encounters
live encounters missing in live ticker
2025-09-16 20:35:45 +02:00
Marvin Flock 1e63f2b542 fix: add live encounters to live ticker 2025-09-16 19:50:34 +02:00
Jürgen Meyer 1d9aa13300 Überarbeitung Anzeige Vereinsliste in Frontend (issue #178) 2025-09-12 10:56:25 +02:00
Jürgen Meyer ea85f102a5 Änderungen nach issue #180 2025-09-11 10:22:52 +02:00
MarvinF ebfd6ee4e9 Merge pull request #177 from Deutscher-Tischfussballbund/sportsmanager2-stage
stage to prod
2025-09-04 22:24:49 +02:00
MarvinF a503325ca4 Merge pull request #176 from Deutscher-Tischfussballbund/sportsmanager2-dev
dev to stage
2025-09-04 22:23:53 +02:00
MarvinF 218dc138fb Update build_release.yml 2025-09-04 22:22:18 +02:00
MarvinF eed53841cf Merge pull request #175 from Deutscher-Tischfussballbund/sportsmanager2-stage
stage to prod
2025-09-04 22:05:16 +02:00
MarvinF dbc79096d4 Merge pull request #174 from Deutscher-Tischfussballbund/sportsmanager2-dev
dev to stage
2025-09-04 22:04:25 +02:00
Marvin Flock 3e93e27f72 chore: add notification to teams 2025-09-04 22:02:39 +02:00
MarvinF 8c022f831a Merge pull request #173 from Deutscher-Tischfussballbund/sportsmanager2-stage
stage to prod
2025-09-04 21:56:02 +02:00
MarvinF 2ab429f949 Merge pull request #172 from Deutscher-Tischfussballbund/sportsmanager2-dev
dev to stage
2025-09-04 21:55:00 +02:00
MarvinF 6e53017158 Create teams_integration.yml 2025-09-04 21:40:02 +02:00
MarvinF 8764b0a337 Merge pull request #171 from Deutscher-Tischfussballbund/sportsmanager2-stage
stage to prod
2025-09-04 21:13:28 +02:00
MarvinF 07611a0087 Merge pull request #170 from Deutscher-Tischfussballbund/sportsmanager2-dev
dev to stage
2025-09-04 21:11:56 +02:00
MarvinF bc57da1eff Merge pull request #169 from Deutscher-Tischfussballbund/sportsmanager2-issue165
issue #165 gefixt. Tabelle wird falsch gespeichert bei Direkter Vergl…
2025-09-04 21:08:11 +02:00
MarvinF 1c380928f0 Merge branch 'sportsmanager2-dev' into sportsmanager2-issue165 2025-09-04 21:07:37 +02:00
Jürgen Meyer 1ddcfd87db issue #165 gefixt. Tabelle wird falsch gespeichert bei Direkter Vergleich. 2025-09-03 02:51:40 +02:00
Marvin Flock cb1493954f chore: update release date in manifest file on release build 2025-09-02 23:36:20 +02:00
MarvinF 9637f2a92a Merge pull request #168 from Deutscher-Tischfussballbund/sportsmanager2-issue166
issue #166 gefixt (Filter Land in Termine)
2025-09-02 23:21:33 +02:00
MarvinF a977343544 Merge branch 'sportsmanager2-dev' into sportsmanager2-issue166 2025-09-02 23:19:17 +02:00
MarvinF 1f5593d3e8 Merge pull request #167 from Deutscher-Tischfussballbund/sportsmanager2-issue164
Issue #164 - Fehler Export Spielberichte
2025-09-02 23:15:54 +02:00
Jürgen Meyer fff5f97971 issue #166 gefixt (Filter Land in Termine) 2025-09-02 16:01:09 +02:00
Jürgen Meyer 546b9c3af9 Issue #164 - Fehler Export Spielberichte 2025-09-02 13:23:54 +02:00
MarvinF 4ad93a8cf6 Merge pull request #162 from Deutscher-Tischfussballbund/sportsmanager2-stage
stage 2 prod pr
2025-09-02 01:48:44 +02:00
MarvinF 1b5e070026 Merge pull request #161 from Deutscher-Tischfussballbund/sportsmanager2-dev
dev 2 stage pr
2025-09-02 01:47:42 +02:00
MarvinF 114eba3a9c Merge pull request #160 from Deutscher-Tischfussballbund/temp_releasenotes
resize parameters of images are not working
2025-09-02 01:45:51 +02:00
Marvin Flock 9fb592ccbc chore: dummy commit for release notes 2025-09-02 01:44:07 +02:00
MarvinF f76ab18d4b Merge pull request #159 from Deutscher-Tischfussballbund/temp_releasenotes
optimize club details page for mobile
2025-09-02 01:43:08 +02:00
Marvin Flock 02e27d7747 chore: dummy commit for release notes 2025-09-02 01:41:00 +02:00
MarvinF 5375950049 Merge pull request #158 from Deutscher-Tischfussballbund/temp_releasenotes
locations can be reused for event creation
2025-09-02 01:39:52 +02:00
Marvin Flock 050b246fef chore: dummy commit for release notes 2025-09-02 01:38:18 +02:00
MarvinF 55b8cc52c7 Merge pull request #157 from Deutscher-Tischfussballbund/temp_releasenotes
improved the list of clubs with sorting and more configuration options
2025-09-02 01:37:19 +02:00
Marvin Flock aad70e5ab2 chore: dummy commit for release notes 2025-09-02 01:32:45 +02:00
MarvinF 37a98edbad Merge pull request #156 from Deutscher-Tischfussballbund/temp_releasenotes
while generating group games, the second encounter for two teams was ordered the same (home/guest) as the first encounter
2025-09-02 01:28:06 +02:00
Marvin Flock 228f68f90c chore: dummy commit for release notes 2025-09-02 01:22:03 +02:00
MarvinF 4f9df2ce89 Merge pull request #155 from Deutscher-Tischfussballbund/temp_releasenotes
team dropdown while generating group games shows a team twice
2025-09-02 01:20:56 +02:00
Marvin Flock 1a364a4e30 chore: dummy commit for release notes 2025-09-02 01:16:26 +02:00
MarvinF f3bf69c9ca Merge pull request #154 from Deutscher-Tischfussballbund/temp_releasenotes
When using direct comparison, if there are no encounters yet, an error is thrown
2025-09-02 01:13:58 +02:00
Marvin Flock cc81b97569 chore: dummy commit for release notes 2025-09-02 01:09:54 +02:00
MarvinF aaa5aaac1d Merge pull request #153 from Deutscher-Tischfussballbund/temp_releasenotes
Import options improvement: calendar week, matchday title, match number
2025-09-02 01:08:09 +02:00
Marvin Flock f9f9e58881 chore: dummy commit for release notes 2025-09-02 01:04:53 +02:00
MarvinF 671dfb7e8d Merge pull request #145 from Deutscher-Tischfussballbund/sportsmanager2-issue052
Änderungen für issue #52, issue #131 und issue #143
2025-09-02 00:23:13 +02:00
Marvin Flock 3ae15e2e70 Merge branch 'sportsmanager2-dev' into sportsmanager2-issue052
# Conflicts:
#	src/structure/components/com_sportsmanager/admin.php
#	src/structure/components/com_sportsmanager/database/update.php
#	src/structure/components/com_sportsmanager/views/sportsmanager/view.html.php
#	src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php
#	src/structure/language/de-DE/de-DE.com_sportsmanager.ini
#	src/structure/language/en-GB/en-GB.com_sportsmanager.ini
#	src/structure/script.php
2025-09-02 00:21:11 +02:00
MarvinF ee0c19efe3 Merge pull request #147 from Deutscher-Tischfussballbund/sportsmanager2-issue125
Änderungen für issue #125, issue #116 und issue #117
2025-09-02 00:06:41 +02:00
MarvinF 87c9ec82fd Merge branch 'sportsmanager2-dev' into sportsmanager2-issue125 2025-09-02 00:06:05 +02:00
Jürgen Meyer 71d8460cd6 Entscheidung ob Verband angezeigt wird liegt allein bei Web Admin. 2025-09-01 20:56:57 +02:00
Jürgen Meyer d97713e73d Fehler bei Erstellung Spieleplen mit 4 Mannschaften mit Setzliste behoben. 2025-09-01 20:34:14 +02:00
Marvin Flock b16638ed47 fix: code review changes 2025-09-01 18:02:20 +02:00
MarvinF b511badad2 Merge pull request #144 from Deutscher-Tischfussballbund/fix/bayern-missing-argument
missing parameter in player details with ELO runs into error
2025-08-30 13:18:19 +02:00
Jürgen Meyer 42ff1155f3 Probleme mit Sonderzeichen in Turnierbaum gefixt. 2025-08-29 16:28:06 +02:00
Jürgen Meyer 17a9bfdd2e issue #151 2025-08-29 12:00:08 +02:00
Jürgen Meyer 3aa20036dc Issue #152 Heimrechtwechsel in Rückrunde 2025-08-29 11:22:13 +02:00
Jürgen Meyer fc1ce3bdd6 Alle offenen Mängel beseitigt. 2025-08-29 10:34:31 +02:00
Marvin Flock cf52c718e8 chore: some review fixes 2025-08-28 22:24:13 +02:00
Marvin Flock 8b29c8eba6 chore: some review fixes 2025-08-28 22:19:11 +02:00
Marvin Flock e9460ef8cc Merge branch 'sportsmanager2-dev' into sportsmanager2-issue052
# Conflicts:
#	src/structure/components/com_sportsmanager/admin.php
#	src/structure/components/com_sportsmanager/sportsmanager.php
#	src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php
2025-08-28 21:58:43 +02:00
Marvin Flock 3ac38abb92 chore: some review fixes 2025-08-28 21:42:52 +02:00
Marvin Flock 19ff8ebd08 chore: some review fixes 2025-08-28 21:20:20 +02:00
Marvin Flock 3ab2ae9206 chore: some review fixes 2025-08-28 21:18:23 +02:00
Marvin Flock 4820f82253 chore: some review fixes 2025-08-28 21:16:34 +02:00
Marvin Flock 0a06321a72 chore: remove unused style tag 2025-08-28 20:31:42 +02:00
Marvin Flock 60232d95b3 chore: remove empty class attributes, fix label for input 2025-08-28 20:18:52 +02:00
Marvin Flock f27b87a0d8 chore: add return types to methods 2025-08-28 20:01:58 +02:00
Jürgen Meyer bc6c44e82a Eingeschränkte Spieler erscheinen jetzt auch in Vereinsdetails. 2025-08-27 06:41:25 +02:00
Jürgen Meyer 01ac642de5 Passive Vereinsmitglieder werden in Vereinsdetails nicht mehr angezeigt. 2025-08-26 06:27:43 +02:00
Jürgen Meyer 825a072ace Änderungen zu issue #149 (Resize in yoothemeBild) 2025-08-19 10:07:12 +02:00
Jürgen Meyer 1aa9b924d7 Noch ein paar kleine Änderungen 2025-08-17 18:11:46 +02:00
Jürgen Meyer 4a96d9f0a9 Fehler in script.php und update.php behoben 2025-08-16 18:05:35 +02:00
Jürgen Meyer 7a59020e64 Änderungen für issue #125, issue #116 und issue #117 2025-08-16 17:48:14 +02:00
Jürgen Meyer 3f816235c8 Änderungen für issue #52, issue #131 und issue #143 2025-08-15 13:54:04 +02:00
Marvin Flock 4f264ed72d fix: add previously deleted parameter back into sprintf again with reference to $spieler 2025-08-14 22:34:33 +02:00
MarvinF a6f302cb63 Merge pull request #142 from Deutscher-Tischfussballbund/chore/automatic-version-update-in-manifest-xml
chore: update manifest xml sportsmanager version with pipeline
2025-08-12 20:44:48 +02:00
Marvin Flock 22c50e688a chore: update manifest xml sportsmanager version with pipeline 2025-08-12 01:44:13 +02:00
MarvinF fbd7e05abb Merge pull request #141 from Deutscher-Tischfussballbund/chore/add-release-process-to-readme
chore: update readme with more details to release process
2025-08-12 01:18:15 +02:00
MarvinF a36edeedca Merge branch 'sportsmanager2-dev' into chore/add-release-process-to-readme 2025-08-12 01:17:56 +02:00
Marvin Flock ea9fd038f3 chore: update readme with more details to release process 2025-08-12 01:17:00 +02:00
MarvinF e55d925034 Merge pull request #140 from Deutscher-Tischfussballbund/chore/add-release-process-to-readme
chore: add release process to readme
2025-08-12 01:14:05 +02:00
Marvin Flock 48d0bca1c6 chore: add release process to readme 2025-08-12 01:12:57 +02:00
MarvinF ba9c84dfe7 Merge pull request #139 from Deutscher-Tischfussballbund/sportsmanager2-stage
stage to prod merge
2025-08-12 00:31:56 +02:00
MarvinF f424dfe024 Merge pull request #138 from Deutscher-Tischfussballbund/sportsmanager2-dev
dev to stage merge
2025-08-12 00:31:06 +02:00
MarvinF f382c3a208 Merge pull request #137 from Deutscher-Tischfussballbund/chore/version
chore: read correct tag version
2025-08-12 00:30:13 +02:00
Marvin Flock 2d7fb27ee1 chore: read correct tag version 2025-08-12 00:03:51 +02:00
MarvinF 93769df3ac Merge pull request #136 from Deutscher-Tischfussballbund/sportsmanager2-stage
Sportsmanager2 stage
2025-08-11 23:55:48 +02:00
MarvinF ee6d559a7f Merge pull request #135 from Deutscher-Tischfussballbund/sportsmanager2-dev
dev to stage merge
2025-08-11 23:54:51 +02:00
MarvinF 6e9b2c4f5e Merge pull request #134 from Deutscher-Tischfussballbund/chore/version
chore: debug tag versions
2025-08-11 23:53:51 +02:00
Marvin Flock f713362c3e chore: debug tag versions 2025-08-11 23:51:45 +02:00
MarvinF 71dd59c3d8 Merge pull request #133 from Deutscher-Tischfussballbund/sportsmanager2-stage
stage to prod merge
2025-08-11 23:23:53 +02:00
MarvinF 9594ec84e2 Merge pull request #132 from Deutscher-Tischfussballbund/sportsmanager2-dev
dev to stage merge
2025-08-11 23:22:20 +02:00
MarvinF 79adb9efd2 Merge pull request #123 from Deutscher-Tischfussballbund/sportsmanager2-issue121
Sportsmanager2 issue121
2025-08-11 23:16:22 +02:00
MarvinF 7d7f162dde Merge branch 'sportsmanager2-dev' into sportsmanager2-issue121 2025-08-11 23:14:29 +02:00
MarvinF 1538738722 Merge pull request #124 from Deutscher-Tischfussballbund/feature/issue-85-query-performance-improv
Refactor: remove execute() on reading queries
2025-08-11 23:11:44 +02:00
Jürgen Meyer eb4bcf38d9 Änderungen nach review 2025-08-11 18:31:07 +02:00
Marvin Flock 0d8e61b3ca Merge branch 'sportsmanager2-dev' into feature/issue-85-query-performance-improv
# Conflicts:
#	src/structure/components/com_sportsmanager/admin.php
#	src/structure/components/com_sportsmanager/sportsmanager.php
2025-08-11 18:30:06 +02:00
MarvinF 3f26a340dc Merge pull request #112 from Deutscher-Tischfussballbund/fix/issue-6-sql-syntax-error
Issue 6: fix sql syntax error
2025-08-11 17:59:14 +02:00
MarvinF 87d9449417 Merge branch 'sportsmanager2-dev' into fix/issue-6-sql-syntax-error 2025-08-11 17:58:53 +02:00
MarvinF e0575dc125 Merge pull request #113 from Deutscher-Tischfussballbund/sportsmanager2-issue059
Sportsmanager2 issue059
2025-08-11 17:58:26 +02:00
MarvinF b1f67d1d13 Merge pull request #127 from Deutscher-Tischfussballbund/chore/version-from-tags
chore: create version in sportsmanager from git tag
2025-08-11 17:43:27 +02:00
Marvin Flock f119cae584 chore: restore breaks in switch statement 2025-08-11 00:19:43 +02:00
jmeyer26 18d346a4e9 Merge pull request #115 from Deutscher-Tischfussballbund/sportsmanager2-issue068
Sportsmanager2 issue068
2025-08-05 21:39:20 +02:00
Marvin Flock e81600dd86 Merge branch 'sportsmanager2-dev' into sportsmanager2-issue068 2025-08-05 21:30:57 +02:00
Marvin Flock ff7314cf3f chore: create version in sportsmanager from git tag 2025-08-05 21:21:11 +02:00
Jürgen Meyer 1fe9d4bc5f Änderung nach Review durchgeführt. 2025-08-05 20:45:33 +02:00
Marvin Flock 5e3996dd5e fix: add missing line breaks 2025-08-04 18:21:47 +02:00
Marvin Flock 9861f59662 refactor: remove execute() on reading queries 2025-08-04 00:00:42 +02:00
Jürgen Meyer 9f6c026b2b Verschachtelte Tabelle entfernt. Redundante if-Anweisungen entfernt. 2025-08-01 19:34:53 +02:00
Jürgen Meyer 850fd2c079 Einige Optimierungen durchgeführt. 2025-08-01 16:02:32 +02:00
MarvinF 762bf50f62 Merge pull request #111 from Deutscher-Tischfussballbund/fix/issue45-duplicate-license-on-ranking-duplication
Fix: duplicate Ranglisten should also duplicate license checkbox values of the duplicate source rangliste
2025-08-01 01:31:39 +02:00
MarvinF 19fc2c8800 Merge branch 'sportsmanager2-dev' into fix/issue45-duplicate-license-on-ranking-duplication 2025-08-01 01:30:28 +02:00
MarvinF be1b66eb8e Merge pull request #122 from Deutscher-Tischfussballbund/fix/explode-lizenzen
Fix: refresh rankings even when there are no licenses set
2025-07-31 17:05:32 +02:00
Marvin Flock cf14997acb fix: explode of licenses only if licenses are given 2025-07-31 16:59:12 +02:00
Jürgen Meyer 0d3e54a544 Mannschaftsdetails und Spielerdetails für Mobil angepasst 2025-07-31 12:01:52 +02:00
MarvinF 7b1cc50943 Merge pull request #120 from Deutscher-Tischfussballbund/sportsmanager2-stage
Stage -> Prod merge
2025-07-29 18:30:28 +02:00
MarvinF 133a983685 Merge pull request #119 from Deutscher-Tischfussballbund/sportsmanager2-dev
Dev -> Stage merge
2025-07-29 18:28:39 +02:00
MarvinF 20b956b239 Merge pull request #118 from Deutscher-Tischfussballbund/feature/refactor-readme
refactor: remove test from readme
2025-07-29 18:21:05 +02:00
Marvin Flock fedb300d8f refactor: remove test from readme 2025-07-29 18:19:01 +02:00
MarvinF 07121c2233 Merge pull request #114 from Deutscher-Tischfussballbund/fix/issue-108-yootheme-path-fix
fix: add base url to yootheme images
2025-07-29 18:01:16 +02:00
MarvinF 8dab7fa74f Merge branch 'sportsmanager2-dev' into fix/issue-108-yootheme-path-fix 2025-07-29 17:59:55 +02:00
Jürgen Meyer 3e577f6be1 Kein Aufruf Korrekturschleife, wenn kein Array Korrektur vorhanden. 2025-07-24 16:29:13 +02:00
Jürgen Meyer 2b6563dae0 Möglichkeit Direkter Vergleich in Teamsport (issue #68) 2025-07-23 09:40:05 +02:00
jmeyer26 1bd53893a8 Merge pull request #83 from Deutscher-Tischfussballbund/sportsmanager2-juergen
Fix: #74 Player picture improvements & remove 'Ranglisten' YooTheme Lazyloading optimizations
2025-07-22 05:49:22 +02:00
Jürgen Meyer acfcbb1010 Funktion yoothemeBild in rangliste wird wieder aufgerufen. 2025-07-22 05:46:23 +02:00
Marvin Flock a6aee26211 fix: add base url to yootheme images 2025-07-21 20:17:20 +02:00
MarvinF b24203ccb9 Merge pull request #109 from Deutscher-Tischfussballbund/sportsmanager2-issue108
Mannschaftsbilder in Teamsport zu klein gefixt (issue #108)
2025-07-21 19:43:44 +02:00
Jürgen Meyer 2ff39cf086 Fehler Versatz Header Tabelle wenn Bilder fehlen gefixt. 2025-07-16 10:34:40 +02:00
Jürgen Meyer 8479691824 Optimierung Ablöschung temporärer Import-Daten 2025-07-14 17:01:21 +02:00
Jürgen Meyer ca4ce6060e Überprüfung Format Spielernummer bei Import (issue #59) 2025-07-14 08:23:34 +02:00
Jürgen Meyer 0729291afc Fehler Anführungszeichen korrigiert. 2025-07-13 23:34:51 +02:00
Marvin Flock b57c7c148d fix: abort when id is null 2025-07-13 23:17:00 +02:00
Marvin Flock b17fcffdd5 fix: replace http:// with https:// 2025-07-13 22:06:50 +02:00
Marvin Flock 97c6d9ee03 fix: duplicate licence fields when duplicating ranking 2025-07-13 21:37:28 +02:00
Jürgen Meyer f3c2040632 Mannschaftsbilder in Teamsport zu klein gefixt (issue #108) 2025-07-02 08:19:44 +02:00
Jürgen Meyer 1235edde82 Letzte Änderung wegen Konflikten rückgängig gemacht. 2025-07-01 12:37:41 +02:00
Jürgen Meyer 763fd7d386 Tabellenformatierung angepasst (issue #108) 2025-07-01 12:31:03 +02:00
MarvinF 77e2c6e910 Merge pull request #77 from Deutscher-Tischfussballbund/issues/43
fix: #43 - remove css3.js reference
2025-06-30 18:57:43 +02:00
MarvinF a2aee3b135 Merge pull request #82 from Deutscher-Tischfussballbund/issues/73_missing-dropdown-in-league
fix: add season dropdown to events, even if there is just one event
2025-06-30 18:57:10 +02:00
MarvinF 9a7f8acc3b Merge pull request #107 from Deutscher-Tischfussballbund/fix/64_division_by_zero
Fix: add division by zero check, return zero instead of exception
2025-06-30 18:55:47 +02:00
Jürgen Meyer 9091b22859 Konfilkt mit README.md 2025-06-30 00:52:54 +02:00
Jürgen Meyer 839b27756a Konflikt mit README.md 2025-06-30 00:50:03 +02:00
Jürgen Meyer 0d0ee08199 Weitere Optimierungen der Tabellen Rangliste, Turnierergebnisse und Spielerstatistik 2025-06-30 00:16:05 +02:00
Jürgen Meyer 6609a4ca78 Änderungen nach Kommentaren in PR83 überarbeitet. 2025-06-29 19:00:59 +02:00
Marvin Flock 4ecf48d02e fix: add division by zero check, return zero instead of exception 2025-06-29 16:44:18 +02:00
Tim 56679669c0 feat: extend tournament result upload window to 14 days for uploaders 2025-06-24 13:58:02 +00:00
Tim 1e8a7a3ae0 chore: add migration script for tournament reminder fields 2025-06-24 13:53:11 +00:00
Tim 269af499c8 feat: add auto-email reminder script for missing tournament results 2025-06-24 13:48:13 +00:00
Jürgen Meyer 56d8be9a55 Hilfskommentare in Programm zu issue #74 rausgelöscht. 2025-06-24 13:52:32 +02:00
Jürgen Meyer 29f0e6842b issue #74 Player image size (Details siehe issue #74) 2025-06-24 13:29:20 +02:00
Marvin Flock 22e96bf49d fix: add season dropdown to events, even if there is just one event 2025-06-23 21:12:43 +02:00
Marvin Flock 36dbfdb7c4 fix: check for null since str_starts_with is typed 2025-06-17 22:01:07 +02:00
Marvin Flock 5cfd8f3c1a fix: remove non existent css reference 2025-06-17 22:00:08 +02:00
28 changed files with 23536 additions and 16284 deletions
+19
View File
@@ -25,6 +25,25 @@ jobs:
- name: Install npm dependencies - name: Install npm dependencies
run: npm ci run: npm ci
- name: Get version from git tag
run: echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
- name: Set DATE
run: echo "DATE=$(date +'%Y-%m-%d')" >> $GITHUB_ENV
- name: Update version.php
run: |
echo "<?php" > src/structure/components/com_sportsmanager/util/version.php
echo "defined('_JEXEC') or die;" >> src/structure/components/com_sportsmanager/util/version.php
echo "return [" >> src/structure/components/com_sportsmanager/util/version.php
echo " 'version' => '${{ env.VERSION }}'," >> src/structure/components/com_sportsmanager/util/version.php
echo " 'date' => '$(date +%F)'," >> src/structure/components/com_sportsmanager/util/version.php
echo "];" >> src/structure/components/com_sportsmanager/util/version.php
echo "Updating version to $VERSION in sportsmanager.xml"
sed -i "s#<version>.*</version>#<version>$VERSION</version>#" src/structure/sportsmanager.xml
echo "Updating Date to $DATE in sportsmanager.xml"
sed -i "s#<creationDate>.*</creationDate>#<creationDate>$DATE</creationDate>#" src/structure/sportsmanager.xml
- name: Generate release notes - name: Generate release notes
id: release_notes_extension id: release_notes_extension
uses: release-drafter/release-drafter@v6 uses: release-drafter/release-drafter@v6
+20 -2
View File
@@ -84,6 +84,24 @@ JConfig: `./data/joomla_data/configuration.php`
8. (Not sure if optional) Install a browser extension by Jetbrains 8. (Not sure if optional) Install a browser extension by Jetbrains
https://chromewebstore.google.com/detail/xdebug-helper-by-jetbrain/aoelhdemabeimdhedkidlnbkfhnhgnhm https://chromewebstore.google.com/detail/xdebug-helper-by-jetbrain/aoelhdemabeimdhedkidlnbkfhnhgnhm
=======
Test ### How to release
Hint: for technical details regarding the release process have a look into .github/...
To create a release these steps need to be followed
1. make sure all needed code changes are merged from dev -> stage -> prod, since releases may only be build on prod branch
2. give pull requests meaningful names and label them enhancement/bug/chore since labels and names are used for release note generation
Hint: if a specific pull request should be ignored, add the label changelog-ignore
3. tag a commit (recommended is the latest merge on prod). The pipeline is listening for any tag fitting `v[0-9]+.[0-9]+.[0-9]+`
```shell
git tag -a v1.2.3 1a2b3c4 -m "Release version 1.2.3"
```
4. push the tag
```shell
git push origin --tags
```
5. the tag push will trigger the pipeline, and it will create the release and store in GitHub
A release can be created again anytime by deleting the release from GitHub, deleting the tag (from GitHub and additionally from git)
and repeating step 3 and 4
Further: merges from dev to stage and from stage to prod can only be done by creating pull requests. These pull requests will be automatically labeled as changelog-ignore
+2
View File
@@ -0,0 +1,2 @@
This is no official release!
The Release and the release notes will be generated by github actions
+4616 -2992
View File
File diff suppressed because it is too large Load Diff
-1
View File
@@ -122,7 +122,6 @@
"browser-sync": "^2.26.12", "browser-sync": "^2.26.12",
"core-js": "^3.6.5", "core-js": "^3.6.5",
"cross-env": "^7.0.2", "cross-env": "^7.0.2",
"fs": "0.0.1-security",
"gulp": "^4.0.2", "gulp": "^4.0.2",
"gulp-changed": "^4.0.2", "gulp-changed": "^4.0.2",
"gulp-clean": "^0.4.0", "gulp-clean": "^0.4.0",
@@ -21,12 +21,15 @@ COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_TEAMS_JOINT="Mannschaften in gem
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_CLUBS="Vereine" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_CLUBS="Vereine"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_VENUES="Spielorte" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_VENUES="Spielorte"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_APPOINTMENTS="Termine" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_APPOINTMENTS="Termine"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_MATCH_RESCHEDULING="Spielverlegungen"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_ASSOCIATION_BODIES="Verbandsorgane"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_HALL_OF_FAME="Hall Of Fame"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_TITLE="Titel" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_TITLE="Titel"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_TITLE_DESC="Titel, der im Fenster oben angezeigt wird" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_TITLE_DESC="Titel, der im Fenster oben angezeigt wird"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_DESCRIPTION="Beschreibung" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_DESCRIPTION="Beschreibung"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_DESCRIPTION_DESC="Beschreibung, die unterhalb des Titels angezeigt wird (WICHTIG: Werden HTML-Tags verwendet, müssen auch Umlaute in HTML-Code angeben werden)" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_DESCRIPTION_DESC="Beschreibung, die unterhalb des Titels angezeigt wird (WICHTIG: Werden HTML-Tags verwendet, müssen auch Umlaute in HTML-Code angeben werden)"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_CATEGORIES="Kategorien" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_CATEGORIES="Kategorien"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_CATEGORIES_DESC="Eine optionale Auswahl an durch Kommata getrennte Kategorienummern" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_CATEGORIES_DESC="Eine optionale Auswahl von Kategorienummern durch Kommata oder Spiegelstrich getrennt"
COM_SPORTSMANAGER_LAYOUT_ELO_RANKING_TITLE="Layout: Elo-Rangliste" COM_SPORTSMANAGER_LAYOUT_ELO_RANKING_TITLE="Layout: Elo-Rangliste"
COM_SPORTSMANAGER_LAYOUT_ELO_RANKING_DESC="Auflistung der Spieler sortiert nach Elo-Wertung" COM_SPORTSMANAGER_LAYOUT_ELO_RANKING_DESC="Auflistung der Spieler sortiert nach Elo-Wertung"
COM_SPORTSMANAGER_LAYOUT_ELO_RANKING_OPTION_ELO_RANKING="Elo-Rangliste" COM_SPORTSMANAGER_LAYOUT_ELO_RANKING_OPTION_ELO_RANKING="Elo-Rangliste"
@@ -21,12 +21,15 @@ COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_TEAMS_JOINT="Teams in joint list
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_CLUBS="Clubs" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_CLUBS="Clubs"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_VENUES="Venues" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_VENUES="Venues"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_APPOINTMENTS="Appointments" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_APPOINTMENTS="Appointments"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_MATCH_RESCHEDULING="Match reschedulings"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_ASSOCIATION_BODIES="Association bodies"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_HALL_OF_FAME="Hall of fame"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_TITLE="Title" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_TITLE="Title"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_TITLE_DESC="Title which will be shows on top" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_TITLE_DESC="Title which will be shows on top"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_DESCRIPTION="Description" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_DESCRIPTION="Description"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_DESCRIPTION_DESC="Description that will be shows below the titel (IMPORTANT: if html tags are used, special characters must be maskeraded)" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_DESCRIPTION_DESC="Description that will be shows below the titel (IMPORTANT: if html tags are used, special characters must be maskeraded)"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_CATEGORIES="Categories" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_CATEGORIES="Categories"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_CATEGORIES_DESC="An optional selection of category numbers seperated by commas" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_CATEGORIES_DESC="An optional selection of category numbers seperated by commas or bullet point"
COM_SPORTSMANAGER_LAYOUT_ELO_RANKING_TITLE="Layout: elo ranking" COM_SPORTSMANAGER_LAYOUT_ELO_RANKING_TITLE="Layout: elo ranking"
COM_SPORTSMANAGER_LAYOUT_ELO_RANKING_DESC="Listing of players sorted by elo rating" COM_SPORTSMANAGER_LAYOUT_ELO_RANKING_DESC="Listing of players sorted by elo rating"
COM_SPORTSMANAGER_LAYOUT_ELO_RANKING_OPTION_ELO_RANKING="Elo ranking" COM_SPORTSMANAGER_LAYOUT_ELO_RANKING_OPTION_ELO_RANKING="Elo ranking"
File diff suppressed because it is too large Load Diff
@@ -4,10 +4,8 @@
*/ */
use JetBrains\PhpStorm\NoReturn; use JetBrains\PhpStorm\NoReturn;
use Joomla\CMS\Application\AdministratorApplication;
use Joomla\CMS\Application\SiteApplication; use Joomla\CMS\Application\SiteApplication;
use Joomla\CMS\Factory; use Joomla\CMS\Factory;
use Joomla\CMS\User\UserFactory;
use Joomla\CMS\User\UserFactoryInterface; use Joomla\CMS\User\UserFactoryInterface;
use Joomla\Registry\Registry; use Joomla\Registry\Registry;
@@ -43,8 +41,7 @@ function notifyChange($data): void
try { try {
$db = getDatabase(); $db = getDatabase();
$query = "SELECT wert from #__sportsmanager_einstellungen WHERE name='api_push_key'"; $query = "SELECT wert from #__sportsmanager_einstellungen WHERE name='api_push_key'";
$db->setQuery($query); $push_key = loadResult($db, $query);
$push_key = $db->loadResult();
$push_server = !empty($push_key) && isset(_payload($push_key)->aud) ? _payload($push_key)->aud : ''; $push_server = !empty($push_key) && isset(_payload($push_key)->aud) ? _payload($push_key)->aud : '';
if ($push_server != '' && $push_key != '') { if ($push_server != '' && $push_key != '') {
$url = $push_server . (str_ends_with($push_server, '/') ? '' : '/') . 'v1/notifications/send'; $url = $push_server . (str_ends_with($push_server, '/') ? '' : '/') . 'v1/notifications/send';
@@ -137,11 +134,8 @@ function begegnungVerlegenNotify($begegnung, $users, $vorschlagendes_team_id, $h
$expires->modify('+16 hours'); $expires->modify('+16 hours');
$db = getDatabase(); $db = getDatabase();
$query = "SELECT berechtigt_team_id from #__sportsmanager_berechtigt_fuer_team where berechtigt_user_id = $user_id"; $query = "SELECT berechtigt_team_id from #__sportsmanager_berechtigt_fuer_team where berechtigt_user_id = $user_id";
$db->setQuery($query); $team_id = loadObjectList($db, $query);
if (!$db->execute()) {
abortWithError($db->stderr(true));
}
$team_id = $db->loadObjectList();
JSON_sportsmanager::JSON([ JSON_sportsmanager::JSON([
'token' => jwt_token([ 'token' => jwt_token([
'sub' => $user_id, 'sub' => $user_id,
@@ -180,8 +174,7 @@ function begegnungVerlegenNotify($begegnung, $users, $vorschlagendes_team_id, $h
$db = getDatabase(); $db = getDatabase();
$query = $db->getQuery(true); $query = $db->getQuery(true);
$query->select('id')->from('#__users')->where('username = "' . $username . '"')->setLimit(1); $query->select('id')->from('#__users')->where('username = "' . $username . '"')->setLimit(1);
$db->setQuery($query); $user_id = loadResult($db, $query);
$user_id = $db->loadResult();
$user = $container->get(UserFactoryInterface::class)->loadUserById($user_id); $user = $container->get(UserFactoryInterface::class)->loadUserById($user_id);
//TODO: pw verification modernising: use php native methods, however this also needs new pw hashing. maybe force a pw reset on all accounts //TODO: pw verification modernising: use php native methods, however this also needs new pw hashing. maybe force a pw reset on all accounts
@@ -7,6 +7,8 @@ use Joomla\Database\DatabaseInterface;
use Joomla\Database\Mysql\MysqlDriver; use Joomla\Database\Mysql\MysqlDriver;
use Joomla\Database\Mysqli\MysqliDriver; use Joomla\Database\Mysqli\MysqliDriver;
require_once JPATH_SITE . '/components/com_sportsmanager/database/util.php';
function initDatabase(): void function initDatabase(): void
{ {
global $sportsmanager_database_local; global $sportsmanager_database_local;
@@ -22,11 +24,7 @@ function initDatabase(): void
$sportsmanager_database_local = Factory::getContainer()->get(DatabaseInterface::class); $sportsmanager_database_local = Factory::getContainer()->get(DatabaseInterface::class);
$query = "SELECT * FROM #__sportsmanager_einstellungen"; $query = "SELECT * FROM #__sportsmanager_einstellungen";
$sportsmanager_database_local->setQuery($query); $rows = loadObjectList($sportsmanager_database_local, $query);
if (!$sportsmanager_database_local->execute()) {
die($sportsmanager_database_local->stderr(true));
}
$rows = $sportsmanager_database_local->loadObjectList();
$database_driver = "mysql"; $database_driver = "mysql";
$database_host = ""; $database_host = "";
@@ -75,14 +73,13 @@ function initDatabase(): void
if ($sportsmanager_database_external === NULL) { if ($sportsmanager_database_external === NULL) {
echo "<strong>" . Text::_('COM_SPORTSMANAGER_CONNECTION_EXTERNAL_DB_FAILURE') . "</strong><br><br>"; echo "<strong>" . Text::_('COM_SPORTSMANAGER_CONNECTION_EXTERNAL_DB_FAILURE') . "</strong><br><br>";
} else { } else {
$query = "SELECT wert FROM #__sportsmanager_einstellungen WHERE name = 'datenbank_version'";
$sportsmanager_database_external->setQuery($query);
try { try {
if (!$sportsmanager_database_external->execute()) { if (!$sportsmanager_database_external->execute()) {
echo "<strong>" . Text::_('COM_SPORTSMANAGER_EXTERNAL_DB_NO_SM_TABLES') . "</strong><br><br>"; echo "<strong>" . Text::_('COM_SPORTSMANAGER_EXTERNAL_DB_NO_SM_TABLES') . "</strong><br><br>";
$sportsmanager_database_external = NULL; $sportsmanager_database_external = NULL;
} else { } else {
$db_version = $sportsmanager_database_external->loadResult(); $query = "SELECT wert FROM #__sportsmanager_einstellungen WHERE name = 'datenbank_version'";
$db_version = loadResult($sportsmanager_database_external, $query);
if ($db_version < 38) { if ($db_version < 38) {
echo "<strong>" . Text::_('COM_SPORTSMANAGER_EXTERNAL_DB_NO_SM_VERSION') . "</strong><br><br>"; echo "<strong>" . Text::_('COM_SPORTSMANAGER_EXTERNAL_DB_NO_SM_VERSION') . "</strong><br><br>";
$sportsmanager_database_external = NULL; $sportsmanager_database_external = NULL;
@@ -20,27 +20,15 @@ function updateDatabase(): void
$termin_aktionen_email_setzen = false; $termin_aktionen_email_setzen = false;
$query = "SHOW TABLE STATUS WHERE name = '" . $db->getPrefix() . "tsleague_basis' || name = '" . $db->getPrefix() . "tsleague_einstellungen'"; $query = "SHOW TABLE STATUS WHERE name = '" . $db->getPrefix() . "tsleague_basis' || name = '" . $db->getPrefix() . "tsleague_einstellungen'";
$db->setQuery($query); $rows = loadObjectList($db, $query);
if (!$db->execute()) {
die($db->stderr(true));
}
$rows = $db->loadObjectList();
if (count($rows) > 0) { if (count($rows) > 0) {
$query = "SHOW TABLE STATUS WHERE name = '" . $db->getPrefix() . "tsleague_basis'"; $query = "SHOW TABLE STATUS WHERE name = '" . $db->getPrefix() . "tsleague_basis'";
$db->setQuery($query); $rows = loadObjectList($db, $query);
if (!$db->execute()) {
die($db->stderr(true));
}
$rows = $db->loadObjectList();
if (count($rows) > 0) { if (count($rows) > 0) {
$query = "SELECT * FROM #__tsleague_basis"; $query = "SELECT * FROM #__tsleague_basis";
$db->setQuery($query); $rows = loadObjectList($db, $query);
if (!$db->execute()) {
die($db->stderr(true));
}
$rows = $db->loadObjectList();
if (count($rows) == 0) if (count($rows) == 0)
die(Text::_('COM_SPORTSMANAGER_EXTERNAL_DB_INCONSISTENCY')); die(Text::_('COM_SPORTSMANAGER_EXTERNAL_DB_INCONSISTENCY'));
@@ -337,11 +325,7 @@ function updateDatabase(): void
if ($datenbank_version < 9) { if ($datenbank_version < 9) {
$query = "SELECT spieler_id, geschlecht" $query = "SELECT spieler_id, geschlecht"
. "\n FROM #__tsleague_spieler"; . "\n FROM #__tsleague_spieler";
$db->setQuery($query); $spieler = loadObjectList($db, $query);
if (!$db->execute()) {
die($db->stderr(true));
}
$spieler = $db->loadObjectList();
$query = "ALTER TABLE #__tsleague_spieler CHANGE geschlecht geschlecht char(1)"; $query = "ALTER TABLE #__tsleague_spieler CHANGE geschlecht geschlecht char(1)";
$db->setQuery($query); $db->setQuery($query);
@@ -855,11 +839,7 @@ function updateDatabase(): void
} }
$query = "SELECT * FROM #__tsleague_einstellungen WHERE name = 'datenbank_version'"; $query = "SELECT * FROM #__tsleague_einstellungen WHERE name = 'datenbank_version'";
$db->setQuery($query); $rows = loadObjectList($db, $query);
if (!$db->execute()) {
die($db->stderr(true));
}
$rows = $db->loadObjectList();
if (count($rows) == 0) if (count($rows) == 0)
die(Text::_('COM_SPORTSMANAGER_EXTERNAL_DB_INCONSISTENCY')); die(Text::_('COM_SPORTSMANAGER_EXTERNAL_DB_INCONSISTENCY'));
@@ -1728,11 +1708,7 @@ function updateDatabase(): void
} }
$query = "SELECT * FROM #__sportsmanager_einstellungen WHERE name = 'datenbank_version'"; $query = "SELECT * FROM #__sportsmanager_einstellungen WHERE name = 'datenbank_version'";
$db->setQuery($query); $rows = loadObjectList($db, $query);
if (!$db->execute()) {
die($db->stderr(true));
}
$rows = $db->loadObjectList();
if (count($rows) == 0) if (count($rows) == 0)
die(Text::_('COM_SPORTSMANAGER_EXTERNAL_DB_INCONSISTENCY')); die(Text::_('COM_SPORTSMANAGER_EXTERNAL_DB_INCONSISTENCY'));
@@ -2174,11 +2150,7 @@ function updateDatabase(): void
. "\n SELECT YEAR(erster_tag) AS jahr FROM #__sportsmanager_bestenliste WHERE NOT ISNULL(erster_tag)" . "\n SELECT YEAR(erster_tag) AS jahr FROM #__sportsmanager_bestenliste WHERE NOT ISNULL(erster_tag)"
. "\n GROUP BY jahr" . "\n GROUP BY jahr"
. "\n ORDER BY jahr"; . "\n ORDER BY jahr";
$db->setQuery($query); $jahre = loadObjectList($db, $query);
if (!$db->execute()) {
die($db->stderr(true));
}
$jahre = $db->loadObjectList();
if (count($jahre) > 0) { if (count($jahre) > 0) {
foreach ($jahre as $jahr) { foreach ($jahre as $jahr) {
@@ -2199,11 +2171,7 @@ function updateDatabase(): void
} }
$query = "SELECT * FROM #__sportsmanager_saison ORDER BY saisonbezeichnung DESC LIMIT 1"; $query = "SELECT * FROM #__sportsmanager_saison ORDER BY saisonbezeichnung DESC LIMIT 1";
$db->setQuery($query); $saisons = loadObjectList($db, $query);
if (!$db->execute()) {
die($db->stderr(true));
}
$saisons = $db->loadObjectList();
$aktuelle_saison_id = $saisons[0]->saison_id; $aktuelle_saison_id = $saisons[0]->saison_id;
// Saisons den Veranstaltungen zuordnen // Saisons den Veranstaltungen zuordnen
@@ -2644,11 +2612,7 @@ function updateDatabase(): void
. "\n INNER JOIN #__sportsmanager_veranstaltung USING (veranstaltung_id)" . "\n INNER JOIN #__sportsmanager_veranstaltung USING (veranstaltung_id)"
. "\n LEFT JOIN #__sportsmanager_saison USING (saison_id)" . "\n LEFT JOIN #__sportsmanager_saison USING (saison_id)"
. "\n ORDER BY heimspielort_name, heimspielort_anschrift"; . "\n ORDER BY heimspielort_name, heimspielort_anschrift";
$db->setQuery($query); $teams = loadObjectList($db, $query);
if (!$db->execute()) {
die($db->stderr(true));
}
$teams = $db->loadObjectList();
$heimspielort_name = ""; $heimspielort_name = "";
$heimspielort_strasse = ""; $heimspielort_strasse = "";
@@ -3020,11 +2984,7 @@ function updateDatabase(): void
$query = "SELECT * FROM #__sportsmanager_turniervoranmeldung" $query = "SELECT * FROM #__sportsmanager_turniervoranmeldung"
. "\n ORDER BY turnierdisziplin_id"; . "\n ORDER BY turnierdisziplin_id";
$db->setQuery($query); $rows = loadObjectList($db, $query);
if (!$db->execute()) {
die($db->stderr(true));
}
$rows = $db->loadObjectList();
foreach ($rows as $row) { foreach ($rows as $row) {
$query = "INSERT INTO #__sportsmanager_turniermeldung (turnierdisziplin_id, rundenstufe, platz)" $query = "INSERT INTO #__sportsmanager_turniermeldung (turnierdisziplin_id, rundenstufe, platz)"
@@ -3215,11 +3175,7 @@ function updateDatabase(): void
if ($datenbank_version < 40) { if ($datenbank_version < 40) {
$query = "SELECT * FROM #__sportsmanager_kategorie ORDER BY typ, nummer, kategorie_id DESC"; $query = "SELECT * FROM #__sportsmanager_kategorie ORDER BY typ, nummer, kategorie_id DESC";
$db->setQuery($query); $rows = loadObjectList($db, $query);
if (!$db->execute()) {
die($db->stderr(true));
}
$rows = $db->loadObjectList();
$typ = -1; $typ = -1;
$nummer = -1; $nummer = -1;
@@ -4053,11 +4009,7 @@ function updateDatabase(): void
} }
$query = "SELECT * FROM #__sportsmanager_moderator"; $query = "SELECT * FROM #__sportsmanager_moderator";
$db->setQuery($query); $rows = loadObjectList($db, $query);
if (!$db->execute()) {
die($db->stderr(true));
}
$rows = $db->loadObjectList();
foreach ($rows as $row) { foreach ($rows as $row) {
$moderator_id = $row->moderator_id; $moderator_id = $row->moderator_id;
@@ -5214,8 +5166,7 @@ function updateDatabase(): void
->from('INFORMATION_SCHEMA.COLUMNS') ->from('INFORMATION_SCHEMA.COLUMNS')
->where('TABLE_NAME = ' . $db->quote($db->replacePrefix('#__sportsmanager_rangliste'))) ->where('TABLE_NAME = ' . $db->quote($db->replacePrefix('#__sportsmanager_rangliste')))
->where('COLUMN_NAME = ' . $db->quote('lizenzen')); ->where('COLUMN_NAME = ' . $db->quote('lizenzen'));
$db->setQuery($query); $exists = (bool)loadResult($db, $query);
$exists = (bool)$db->loadResult();
if (!$exists) { if (!$exists) {
$query = "ALTER TABLE #__sportsmanager_rangliste ADD lizenzen varchar(30) DEFAULT NULL AFTER streichergebnisse"; $query = "ALTER TABLE #__sportsmanager_rangliste ADD lizenzen varchar(30) DEFAULT NULL AFTER streichergebnisse";
@@ -5230,8 +5181,7 @@ function updateDatabase(): void
->from('INFORMATION_SCHEMA.COLUMNS') ->from('INFORMATION_SCHEMA.COLUMNS')
->where('TABLE_NAME = ' . $db->quote($db->replacePrefix('#__sportsmanager_spieler'))) ->where('TABLE_NAME = ' . $db->quote($db->replacePrefix('#__sportsmanager_spieler')))
->where('COLUMN_NAME = ' . $db->quote('lizenz')); ->where('COLUMN_NAME = ' . $db->quote('lizenz'));
$db->setQuery($query); $exists = (bool)loadResult($db, $query);
$exists = (bool)$db->loadResult();
if (!$exists) { if (!$exists) {
$query = "ALTER TABLE #__sportsmanager_spieler ADD lizenz varchar(30) DEFAULT NULL AFTER lizenznr"; $query = "ALTER TABLE #__sportsmanager_spieler ADD lizenz varchar(30) DEFAULT NULL AFTER lizenznr";
@@ -5266,14 +5216,482 @@ function updateDatabase(): void
} }
} }
if ($termin_aktionen_email_setzen) { if ($datenbank_version < 104) {
$query = "SELECT aktion_user_id, termin_aktion_id"
. "\n FROM #__sportsmanager_termin_aktion"; $query = "ALTER TABLE #__sportsmanager_veranstaltung ADD direktervergleich INT(4) NOT NULL DEFAULT '0' AFTER tabellenwertung;";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$query = "ALTER TABLE #__sportsmanager_team ADD setzliste_nr INT(4) NULL DEFAULT NULL AFTER veranstaltung_id;";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$query = "ALTER TABLE #__sportsmanager_begegnung ADD spiel_nr INT(4) NULL DEFAULT NULL AFTER spieltag;";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$query = "UPDATE #__sportsmanager_einstellungen"
. "\n SET wert = '104'"
. "\n WHERE name = 'datenbank_version'";
$db->setQuery($query); $db->setQuery($query);
if (!$db->execute()) { if (!$db->execute()) {
die($db->stderr(true)); die($db->stderr(true));
} }
$rows = $db->loadObjectList(); }
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 `#__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 ($datenbank_version < 106) {
$query = "ALTER TABLE `#__sportsmanager_verein` ADD `verstecken` INT(4) NOT NULL DEFAULT '0' AFTER `ausgetreten`;";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$query = "UPDATE #__sportsmanager_einstellungen"
. "\n SET wert = '106'"
. "\n WHERE name = 'datenbank_version'";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
}
if ($datenbank_version < 107) {
$query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'anzahl_mitglieder_zeigen', wert = '0';";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'verband_anzeigen', wert = '1';";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'turnierbaum_zeigen', wert = '0';";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'spalte_mitglieder_zeigen', wert = '1';";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "UPDATE #__sportsmanager_einstellungen"
. "\n SET wert = '107'"
. "\n WHERE name = 'datenbank_version'";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
}
if ($datenbank_version < 108) {
$query = "DELETE t1 FROM #__sportsmanager_unbestaetigtes_ergebnis t1"
. "\n INNER JOIN #__sportsmanager_unbestaetigtes_ergebnis t2"
. "\n ON t1.begegnung_id = t2.begegnung_id"
. "\n AND t1.unbestaetigtes_ergebnis_id < t2.unbestaetigtes_ergebnis_id;";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = " ALTER TABLE `#__sportsmanager_unbestaetigtes_ergebnis`"
. "\n DROP INDEX `begegnung_id`, ADD UNIQUE `begegnung_id` (`begegnung_id`) USING BTREE;";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "UPDATE #__sportsmanager_einstellungen"
. "\n SET wert = '108'"
. "\n WHERE name = 'datenbank_version'";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
}
if ($datenbank_version < 109) {
$query = "ALTER TABLE #__sportsmanager_turnier ADD COLUMN `reminder_count` TINYINT DEFAULT '0'";
$db->setQuery($query);
if (!$db->execute()) { die($db->stderr(true)); }
// set all existing tournaments to 3 to prevent email flooding
$query = "UPDATE #__sportsmanager_turnier SET `reminder_count` = '3'";
$db->setQuery($query);
if (!$db->execute()) { die($db->stderr(true)); }
// 3: prevent email flood for past tournaments
$query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'enable_email_reminders', wert = '0';";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "UPDATE #__sportsmanager_einstellungen"
. "\n SET wert = '109'"
. "\n WHERE name = 'datenbank_version'";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
}
if ($datenbank_version < 110) {
$aktueller_verein_aktualisieren = true;
$query = "UPDATE #__sportsmanager_einstellungen"
. "\n SET wert = '110'"
. "\n WHERE name = 'datenbank_version'";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
}
if ($datenbank_version < 111) {
$query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'verbands_kuerzel', wert = 'tbe.';";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "UPDATE #__sportsmanager_einstellungen"
. "\n SET wert = '111'"
. "\n WHERE name = 'datenbank_version'";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
}
if ($datenbank_version < 112) {
// Korrektur Startuhrzeit in sportsmanager_turnierdisziplin bei eintägigen Veranstaltungen
$query = "UPDATE #__sportsmanager_turnierdisziplin td"
. "\n JOIN #__sportsmanager_turnier t ON td.turnier_id = t.turnier_id"
. "\n SET td.beginn = CONCAT(t.erster_tag, ' ', TIME(td.beginn))"
. "\n WHERE t.erster_tag = t.letzter_tag;";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$query = "UPDATE #__sportsmanager_einstellungen"
. "\n SET wert = '112'"
. "\n WHERE name = 'datenbank_version'";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
}
if ($datenbank_version < 113) {
// Korrektur Startuhrzeit in sportsmanager_turnierdisziplin bei eintägigen Veranstaltungen
$query = "UPDATE #__sportsmanager_turnierdisziplin td"
. "\n JOIN #__sportsmanager_turnier t ON td.turnier_id = t.turnier_id"
. "\n SET td.beginn = CONCAT(t.erster_tag, ' ', TIME(td.beginn))"
. "\n WHERE t.erster_tag = t.letzter_tag;";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$query = "UPDATE #__sportsmanager_einstellungen"
. "\n SET wert = '113'"
. "\n WHERE name = 'datenbank_version'";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
}
if ($datenbank_version < 114) {
$query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_regelwerke` ("
. "\n `regelwerke_id` int(11) NOT NULL AUTO_INCREMENT,"
. "\n `regelwerk` varchar(32) NOT NULL,"
. "\n PRIMARY KEY (`regelwerke_id`),"
. "\n UNIQUE KEY `regelwerk` (`regelwerk`)"
. "\n ) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_verstoesse` ("
. "\n `verstoesse_id` int(11) NOT NULL AUTO_INCREMENT,"
. "\n `regelwerke_id` int(11) NOT NULL DEFAULT 0,"
. "\n `paragraph_spo` varchar(32) NOT NULL DEFAULT '',"
. "\n `paragraph_go` varchar(32) NOT NULL DEFAULT '',"
. "\n `verstoss` varchar(64) NOT NULL DEFAULT '',"
. "\n `haupttext` text NOT NULL,"
. "\n `zusatztext` text NOT NULL,"
. "\n `gebuehr` smallint(3) NOT NULL DEFAULT 0,"
. "\n `zusatzgebuehr` smallint(2) NOT NULL DEFAULT 0,"
. "\n `zur_auswahl` tinyint(1) NOT NULL DEFAULT 1,"
. "\n PRIMARY KEY (`verstoesse_id`)"
. "\n ) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_ordnungsstrafen` ("
. "\n `ordnungsstrafen_id` int(11) NOT NULL AUTO_INCREMENT,"
. "\n `verstoesse_id` int(11) NOT NULL DEFAULT 0,"
. "\n `begegnung_id` int(11) NOT NULL DEFAULT 0,"
. "\n `team_id` int(11) NOT NULL DEFAULT 0,"
. "\n `aussteller_id` int(11) NOT NULL DEFAULT 0,"
. "\n `ausstelldatum` datetime NOT NULL DEFAULT current_timestamp(),"
. "\n `versender_id` int(11) DEFAULT NULL,"
. "\n `versendedatum` datetime DEFAULT NULL,"
. "\n `rechnungssteller_id` int(11) DEFAULT NULL,"
. "\n `rechnungsdatum` datetime DEFAULT NULL,"
. "\n `multiplikator` tinyint(1) NOT NULL DEFAULT 1,"
. "\n `weitere_angaben` text NOT NULL,"
. "\n PRIMARY KEY (`ordnungsstrafen_id`)"
. "\n ) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_email_vorlagen` ("
. "\n `email_vorlagen_id` int(11) NOT NULL AUTO_INCREMENT,"
. "\n `vorlage` varchar(64) NOT NULL,"
. "\n `betreff` varchar(256) NOT NULL DEFAULT '',"
. "\n `von` varchar(64) NOT NULL DEFAULT '',"
. "\n `an` varchar(256) NOT NULL DEFAULT '',"
. "\n `cc` varchar(256) NOT NULL DEFAULT '',"
. "\n `bcc` varchar(256) NOT NULL DEFAULT '',"
. "\n `email_text` text NOT NULL,"
. "\n PRIMARY KEY (`email_vorlagen_id`),"
. "\n UNIQUE KEY `vorlage` (`vorlage`)"
. "\n ) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'ordnungsstrafen_verwenden', wert = '0';";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "INSERT IGNORE INTO `#__sportsmanager_email_vorlagen` (`email_vorlagen_id`, `vorlage`) VALUES (NULL, 'Ordnungsstrafe');";
$db->setQuery($query);
if (!$db->execute()) { die($db->stderr(true)); }
$query = "ALTER TABLE `#__sportsmanager_veranstaltung` ADD COLUMN IF NOT EXISTS `regelwerke_id` INT(11) NOT NULL DEFAULT '0' AFTER `bezeichnung`;";
$db->setQuery($query);
if (!$db->execute()) { die($db->stderr(true)); }
$query = "UPDATE #__sportsmanager_einstellungen"
. "\n SET wert = '114'"
. "\n WHERE name = 'datenbank_version'";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
}
if ($datenbank_version < 115) {
// Erweiterung Tabelle #__sportsmanager_verschieberegel
$query = "ALTER TABLE `#__sportsmanager_verschieberegel`"
."\n ADD COLUMN IF NOT EXISTS `begruendung_erforderlich` INT(1) NOT NULL DEFAULT 0 AFTER `ablehnen`,"
."\n ADD COLUMN IF NOT EXISTS `vereine_berechtigt` INT(1) NOT NULL DEFAULT 1 AFTER `begruendung_erforderlich`,"
."\n ADD COLUMN IF NOT EXISTS `verband_berechtigt` INT(1) NOT NULL DEFAULT 0 AFTER `vereine_berechtigt`;";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$query = "INSERT IGNORE INTO `#__sportsmanager_email_vorlagen` (`email_vorlagen_id`, `vorlage`) VALUES (NULL, 'Spielverlegung');";
$db->setQuery($query);
if (!$db->execute()) { die($db->stderr(true)); }
$query = "UPDATE #__sportsmanager_einstellungen"
. "\n SET wert = '115'"
. "\n WHERE name = 'datenbank_version'";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
}
if ($datenbank_version < 116) {
$query = "ALTER TABLE `#__sportsmanager_spielort`"
. "\n ADD IF NOT EXISTS `telefon` VARCHAR(64) NULL DEFAULT NULL AFTER `url`,"
. "\n ADD IF NOT EXISTS `email` VARCHAR(64) NULL DEFAULT NULL AFTER `telefon`,"
. "\n ADD IF NOT EXISTS `ruhetage` VARCHAR(64) NULL DEFAULT NULL AFTER `email`;";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$query = "ALTER TABLE `#__sportsmanager_team`"
. "\n ADD IF NOT EXISTS `trainingstage` VARCHAR(64) NULL DEFAULT NULL AFTER `heimspielort_id`;";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$query = "UPDATE #__sportsmanager_einstellungen"
. "\n SET wert = '116'"
. "\n WHERE name = 'datenbank_version'";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
}
if ($datenbank_version < 117) {
$query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_team_strafen` ("
. "\n `team_strafen_id` int(11) NOT NULL AUTO_INCREMENT,"
. "\n `zeitpunkt` datetime NOT NULL,"
. "\n `moderator_user_id` int(11) DEFAULT NULL,"
. "\n `team_id` int(11) NOT NULL DEFAULT '0',"
. "\n `strafe` float(6,2) NOT NULL DEFAULT '0',"
. "\n `beschreibung` text NOT NULL,"
. "\n PRIMARY KEY (`team_strafen_id`)"
. "\n) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "ALTER TABLE #__sportsmanager_veranstaltung"
. "\n ADD IF NOT EXISTS explizite_strafen tinyint(4) DEFAULT '0' AFTER elo_wertung";
$db->setQuery($query);
if (!$db->execute()) { die($db->stderr(true)); }
$query = "UPDATE #__sportsmanager_einstellungen SET wert = '117' WHERE name = 'datenbank_version'";
$db->setQuery($query);
if (!$db->execute()) { die($db->stderr(true)); }
}
if ($datenbank_version < 118) {
$query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_verbandsorgane` ("
. "\n `verbandsorgane_id` int(11) NOT NULL AUTO_INCREMENT,"
. "\n `veranstalter_id` int(11) DEFAULT NULL,"
. "\n `verbandsorgan` varchar(32) DEFAULT NULL,"
. "\n `kategorie` int(4) DEFAULT NULL,"
. "\n `reihenfolge` int(4) DEFAULT NULL,"
. "\n `email` varchar(64) DEFAULT NULL,"
. "\n `beschreibung` text NOT NULL,"
. "\n PRIMARY KEY (`verbandsorgane_id`),"
. "\n KEY (`veranstalter_id`)"
. "\n ) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_mitglied_von_verbandsorgan` ("
. "\n `mitglied_von_verbandsorgan_id` int(11) NOT NULL AUTO_INCREMENT,"
. "\n `verbandsorgane_id` int(11) DEFAULT NULL,"
. "\n `funktion` varchar(32) DEFAULT NULL,"
. "\n `zusatzinfo` varchar(64) DEFAULT NULL,"
. "\n `spieler_id` int(11) DEFAULT NULL,"
. "\n `nachname` varchar(32) DEFAULT NULL,"
. "\n `vorname` varchar(32) DEFAULT NULL,"
. "\n `email` varchar(64) DEFAULT NULL,"
. "\n `telefon` varchar(32) DEFAULT NULL,"
. "\n `mobil` varchar(32) DEFAULT NULL,"
. "\n `reihenfolge` int(11) DEFAULT NULL,"
. "\n PRIMARY KEY (`mitglied_von_verbandsorgan_id`),"
. "\n KEY (`verbandsorgane_id`),"
. "\n KEY (`spieler_id`)"
. "\n ) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$query = "UPDATE #__sportsmanager_einstellungen"
. "\n SET wert = '118'"
. "\n WHERE name = 'datenbank_version'";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
}
if ($datenbank_version < 119) {
$query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_halloffame` ("
. "\n `halloffame_id` int(11) NOT NULL AUTO_INCREMENT,"
. "\n `veranstalter_id` int(11) DEFAULT NULL,"
. "\n `halloffame` varchar(64) DEFAULT NULL,"
. "\n `kategorie` int(4) DEFAULT NULL,"
. "\n `spielform` int(11) DEFAULT NULL,"
. "\n `reihenfolge` int(4) DEFAULT NULL,"
. "\n PRIMARY KEY (`halloffame_id`),"
. "\n KEY `veranstalter_id` (`veranstalter_id`)"
. "\n ) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_mitglied_von_halloffame` ("
. "\n `mitglied_halloffame_id` int(11) NOT NULL AUTO_INCREMENT,"
. "\n `halloffame_id` int(11) NOT NULL,"
. "\n `jahr` int(4) DEFAULT NULL,"
. "\n `platz` int(11) DEFAULT NULL,"
. "\n `verein_id` int(11) DEFAULT NULL,"
. "\n `teamname` varchar(64) DEFAULT NULL,"
. "\n `spieler1_id` int(11) DEFAULT NULL,"
. "\n `spieler1` varchar(64) DEFAULT NULL,"
. "\n `spieler2_id` int(11) DEFAULT NULL,"
. "\n `spieler2` varchar(64) DEFAULT NULL,"
. "\n PRIMARY KEY (`mitglied_halloffame_id`),"
. "\n UNIQUE KEY `halloffame_jahr_platz` (`halloffame_id`,`jahr`,`platz`),"
. "\n KEY `halloffame_id` (`halloffame_id`),"
. "\n KEY `verein_id` (`verein_id`),"
. "\n KEY `spieler1_id` (`spieler1_id`),"
. "\n KEY `spieler2_id` (`spieler2_id`)"
. "\n ) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$query = "UPDATE #__sportsmanager_einstellungen"
. "\n SET wert = '119'"
. "\n WHERE name = 'datenbank_version'";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
}
if ($termin_aktionen_email_setzen) {
$query = "SELECT aktion_user_id, termin_aktion_id"
. "\n FROM #__sportsmanager_termin_aktion";
$rows = loadObjectList($db, $query);
foreach ($rows as $row) { foreach ($rows as $row) {
$container = Factory::getContainer(); $container = Factory::getContainer();
@@ -0,0 +1,47 @@
<?php
use Joomla\CMS\Log\Log;
/**
* @param $db
* @param $query
* @return mixed
* @since 2.0.5
*/
function loadObjectList($db, $query): mixed
{
try {
$db->setQuery($query);
$objList = $db->loadObjectList();
} catch (RuntimeException $e) {
Log::add("Database error: " . $e->getMessage(), Log::ERROR, "com_sportsmanager");
if(isJson()) {
abortWithError($e->getMessage());
} else {
throw $e;
}
}
return $objList;
}
/**
* @param $db
* @param $query
* @return mixed
* @since 2.0.5
*/
function loadResult($db, $query): mixed
{
try {
$db->setQuery($query);
$result = $db->loadResult();
} catch (RuntimeException $e) {
Log::add("Database error: " . $e->getMessage(), Log::ERROR, "com_sportsmanager");
if(isJson()) {
abortWithError($e->getMessage());
} else {
throw $e;
}
}
return $result;
}
@@ -2323,6 +2323,10 @@ function mp_mult_($p1, $p2): float|int
*/ */
function mp_div_($p1, $p2): float|int function mp_div_($p1, $p2): float|int
{ {
if ($p2 == 0) {
Log::add("Division by zero detected in mp_div_: divisor was 0. Returning 0 as fallback.", Log::WARNING, "com_sportsmanager");
return 0;
}
return $p1 / $p2; return $p1 / $p2;
} }
File diff suppressed because it is too large Load Diff
@@ -10,7 +10,6 @@ use Joomla\CMS\Factory;
use Joomla\CMS\Log\Log; use Joomla\CMS\Log\Log;
use Joomla\CMS\Router\Route; use Joomla\CMS\Router\Route;
use Joomla\CMS\Uri\Uri; use Joomla\CMS\Uri\Uri;
use Joomla\CMS\User\User;
use Joomla\CMS\Version; use Joomla\CMS\Version;
defined('_JEXEC') or die('Restricted access'); defined('_JEXEC') or die('Restricted access');
@@ -186,23 +185,51 @@ function individualwettbewerbFilter($prefix): string
function kategorieFilter($prefix, $suffix = ""): string function kategorieFilter($prefix, $suffix = ""): string
{ {
global $params; global $params;
$kategorien = explode(",", $params->get('kategorien')); $kategorien = explode(",", $params->get('kategorien'));
$filter = ""; $result = [];
foreach ($kategorien as $s) {
$kategorie = intval(trim($s)); foreach ($kategorien as $item) {
if ($kategorie == 0) $item = trim($item);
continue; if ($item === '') continue;
if (!empty($filter))
$filter .= ", "; // Prüfen, ob es ein Bereich ist
$filter .= $kategorie; if (strpos($item, '-') !== false) {
$rangeParts = explode('-', $item);
// genau 2 Teile für einen gültigen Bereich
if (count($rangeParts) !== 2) continue;
$start = intval(trim($rangeParts[0]));
$end = intval(trim($rangeParts[1]));
if ($start <= 0 || $end <= 0 || $start > $end) continue;
for ($i = $start; $i <= $end; $i++) {
$result[$i] = true; // Duplikate vermeiden
}
} else {
$num = intval($item);
if ($num > 0) {
$result[$num] = true;
}
}
} }
return empty($filter) ? "" : (" " . $prefix . " (" . $filter . ") " . $suffix);
if (empty($result)) {
return "";
}
$filter = array_keys($result);
sort($filter, SORT_NUMERIC);
return " $prefix (" . implode(", ", $filter) . ") $suffix";
} }
function turnierFilter($prefix): string function turnierFilter($prefix): string
{ {
$user_id = isExternalDatabase() ? 0 : Factory::getContainer()->get(SiteApplication::class)->getIdentity()->id; $user_id = isExternalDatabase() ? 0 : Factory::getContainer()->get(SiteApplication::class)->getIdentity()->id;
return " " . $prefix . " (SELECT berechtigt_turnier_id FROM #__sportsmanager_berechtigt_fuer_turnier WHERE berechtigt_user_id = $user_id AND DATEDIFF(letzter_tag, NOW()) >= -14) "; return " " . $prefix . " (SELECT berechtigt_turnier_id FROM #__sportsmanager_berechtigt_fuer_turnier WHERE berechtigt_user_id = $user_id AND DATEDIFF(letzter_tag, NOW()) >= -21) ";
} }
function vereinFilter($prefix): string function vereinFilter($prefix): string
@@ -220,7 +247,7 @@ function veranstalterFilter($prefix): string
function veranstaltungFilter($prefix): string function veranstaltungFilter($prefix): string
{ {
$user_id = isExternalDatabase() ? 0 : Factory::getContainer()->get(SiteApplication::class)->getIdentity()->id; $user_id = isExternalDatabase() ? 0 : Factory::getContainer()->get(SiteApplication::class)->getIdentity()->id;
return " " . $prefix . " (SELECT berechtigt_veranstaltung_id FROM #__sportsmanager_berechtigt_fuer_veranstaltung INNER JOIN #__sportsmanager_veranstaltung ON veranstaltung_id = berechtigt_veranstaltung_id WHERE berechtigt_user_id = $user_id AND DATEDIFF(letzter_tag, NOW()) >= -14) "; return " " . $prefix . " (SELECT berechtigt_veranstaltung_id FROM #__sportsmanager_berechtigt_fuer_veranstaltung INNER JOIN #__sportsmanager_veranstaltung ON veranstaltung_id = berechtigt_veranstaltung_id WHERE berechtigt_user_id = $user_id AND DATEDIFF(letzter_tag, NOW()) >= -21) ";
} }
// Berechnet Datum zum Montag der ersten Kalenderwoche eines Jahres // Berechnet Datum zum Montag der ersten Kalenderwoche eines Jahres
@@ -0,0 +1,125 @@
<?php
use Joomla\CMS\Factory;
use Joomla\CMS\Log\Log;
use Joomla\CMS\Mail\MailerFactoryInterface;
use Joomla\CMS\Application\SiteApplication;
/**
* @since 2.2
* @throws Exception
*/
function sentEmailReminders(): void
{
$app = Factory::getContainer()->get(SiteApplication::class);
$db = getDatabase();
$query = $db->getQuery(true)
->select('wert')
->from('#__sportsmanager_einstellungen')
->where('name = ' . $db->quote('enable_email_reminders'));
$row = loadResult($db, $query);
if (!$row) {
return; // quit when email reminders are disabled
}
$query = $db->getQuery(true)
->select('tournament.turnier_id, tournament.turnierbezeichnung, tournament.letzter_tag, tournament.reminder_count, GROUP_CONCAT(user.email SEPARATOR ", ") as emails')
->from($db->quoteName('#__sportsmanager_turnier', 'tournament'))
->join('INNER', $db->quoteName('#__sportsmanager_berechtigt_fuer_turnier', 'entitled') . ' ON tournament.turnier_id = entitled.berechtigt_turnier_id')
->join('INNER', $db->quoteName('#__users', 'user') . ' ON entitled.berechtigt_user_id = user.id')
->where('tournament.reminder_count < 3')
->group('tournament.turnier_id, tournament.turnierbezeichnung');
$rows = loadObjectList($db, $query);
if(!empty($rows)) {
$mailFrom = $app->getCfg('mailfrom');
$fromName = $app->getCfg('fromname');
$mailer = Factory::getContainer()->get(MailerFactoryInterface::class)->createMailer();
$mailer->setSender($mailFrom, $fromName);
foreach ($rows as $row) {
$currentReminder = $row->reminder_count + 1;
if (hasResultsAlready($db, $row)) {
updateDBReminders($db, $row, 3); // do not sent any more reminders
continue;
}
if (!isset($row->emails) || $row->emails == "" || $row->emails == NULL) {
Log::add('can\'t sent ' . $currentReminder .'. email reminder for tournament ' . $row->turnierbezeichnung . ': no recipient set', Log::WARNING, 'com_sportsmanager');
continue;
}
$now = new DateTime();
$last_day = new DateTime($row->letzter_tag);
$last_day->modify('+1 day'); // start to count at the end of the day, not at the beginning
$diff = $now->getTimestamp() - $last_day->getTimestamp();
$reminderDelays = [
1 => 24*60*60, // 24h
2 => 3*24*60*60, // 3d
3 => 13*24*60*60 // 13d
];
foreach ($reminderDelays as $count => $delay) {
if ($diff >= $delay && $row->reminder_count < $count) {
$subject = ($row->reminder_count == 2 ? "Letzte " : "") . "Erinnerung: " . $row->turnierbezeichnung . " Ergebnisse einreichen!";
$body = "Hi,"
. "\n\nDies ist die " . $currentReminder . ". " . ($row->reminder_count == 2 ? "*und damit letzte* " : "") . "Erinnerung die Turnierergebnisse einzureichen."
. "\n\nTurnier: " . $row->turnierbezeichnung
. "\nTurnierende: " . FormatiertesDatum($row->letzter_tag, false, false)
. "\n\nLaut Turnierordnung müssen die Ergebnisse spätestens 24 Stunden nach Turnierende eingetragen werden. Bitte reich die Ergebnisse umgehend nach."
. "\n\nDu erhältst diese Mail, weil du als Berechtigter für das Turnier eingetragen wurdest. Falls du nicht der Veranstalter bist, leite diese Email bitte entsprechend weiter."
. "\n\nHochladen der Ergebnisse über " . SportsManagerURL('&task=admin_turnierdisziplinen&turnierid=' . $row->turnier_id, -1) . ".";
$mailer->setSubject($subject);
$mailer->setBody($body);
$emailArray = explode(", ", $row->emails);
foreach ($emailArray as $email) {
$mailer->addBcc($email);
}
$mailer->send();
updateDBReminders($db, $currentReminder, $row->turnier_id);
}
}
}
}
}
function updateDBReminders($db, $reminder, $tournamentId): void
{
$query = $db->getQuery(true)
->update($db->quoteName('#__sportsmanager_turnier'))
->set($db->quoteName('reminder_count') . ' = ' . $db->quote($reminder))
->where($db->quoteName('turnier_id') . ' = ' . $db->quote($tournamentId));
$db->setQuery($query);
$db->execute();
}
/**
* checks if a tournament has at least one result entry for a discipline
* @param $db
* @param $row mixed tournament entry
* @return bool true if at least one result is given, else false
* @since 2.2
*/
function hasResultsAlready($db, mixed $row): bool
{
$subQuery = $db->getQuery(true)
->select($db->quoteName('turnierdisziplin_id'))
->from($db->quoteName('#__sportsmanager_turnierdisziplin'))
->where($db->quoteName('turnier_id') . ' = ' . $db->quote($row->turnier_id));
$query = $db->getQuery(true)
->select('COUNT(*) AS count')
->from($db->quoteName('#__sportsmanager_turniermeldung', 'tm'))
->where($db->quoteName('tm.turnierdisziplin_id') . ' IN (' . $subQuery . ')');
$result = loadResult($db, $query);
return $result && $result[0]->count > 0;
}
@@ -7,6 +7,8 @@ use Joomla\CMS\Uri\Uri;
use Joomla\Filesystem\File; use Joomla\Filesystem\File;
use Joomla\Filesystem\Folder; use Joomla\Filesystem\Folder;
require_once JPATH_SITE . '/components/com_sportsmanager/database/util.php';
const SPORTSMANAGER_JOOMLA_PATH = JPATH_ROOT; const SPORTSMANAGER_JOOMLA_PATH = JPATH_ROOT;
define("SPORTSMANAGER_JOOMLA_URL", Uri::base()); define("SPORTSMANAGER_JOOMLA_URL", Uri::base());
@@ -241,11 +243,7 @@ function playerImage($playerId, $gender, $width = 180, $height = 240): ?string
. "\n FROM #__sportsmanager_spieler" . "\n FROM #__sportsmanager_spieler"
. "\n WHERE NOT ISNULL(aktueller_verein_id) AND NOT bild_ausblenden" . (!empty($spielernr) ? " AND spielernr = '$spielernr'" : " AND lizenznr = '$lizenznr'") . "\n WHERE NOT ISNULL(aktueller_verein_id) AND NOT bild_ausblenden" . (!empty($spielernr) ? " AND spielernr = '$spielernr'" : " AND lizenznr = '$lizenznr'")
. "\n ORDER BY spieler_id DESC"; . "\n ORDER BY spieler_id DESC";
$db->setQuery($query); $rows = loadObjectList($db, $query);
if (!$db->execute()) {
die($db->stderr(true));
}
$rows = $db->loadObjectList();
if (count($rows) < 1) { if (count($rows) < 1) {
ob_end_clean(); // Wegen UTF-8-Zeichen, die in der ausgabe vorhanden sind ob_end_clean(); // Wegen UTF-8-Zeichen, die in der ausgabe vorhanden sind
header('HTTP/1.1 404 Not Found'); header('HTTP/1.1 404 Not Found');
@@ -358,7 +356,7 @@ function bildURL($typ, $id, $fixed_width = 0, $fixed_height = 0, $max_width = 0,
#crop=250,250,left #crop=250,250,left
#crop=250,250,right #crop=250,250,right
*/ */
function yoothemeBild($typ, $id, $alternativ, $resize = '', $zusatz = ""): ?string function yoothemeBild($typ, $id, $alternativ, $zusatz = ""): ?string
{ {
$typ_exploded = explode("/", $typ); $typ_exploded = explode("/", $typ);
$typ = $typ_exploded[0]; $typ = $typ_exploded[0];
@@ -382,9 +380,9 @@ function yoothemeBild($typ, $id, $alternativ, $resize = '', $zusatz = ""): ?stri
else else
return null; return null;
$bildpfad = "/images/sportsmanager/" . $typ . "/" . $typ_prefix . $id . "." . $ext; $bildpfad = SPORTSMANAGER_JOOMLA_URL . "images/sportsmanager/" . $typ . "/" . $typ_prefix . $id . "." . $ext;
return '<img class="el-image" data-src="' . $bildpfad . $resize . '" ' . $zusatz . ' uk-img />'; return '<img class="el-image" data-src="' . $bildpfad . '" ' . $zusatz . ' uk-img />';
} }
function bildHTML($typ, $id, $fixed_width = 0, $fixed_height = 0, $max_width = 0, $max_height = 0, $zusatz = "", $alternativ = ""): ?string function bildHTML($typ, $id, $fixed_width = 0, $fixed_height = 0, $max_width = 0, $max_height = 0, $zusatz = "", $alternativ = ""): ?string
@@ -0,0 +1,6 @@
<?php // do not change this file, this is automatically updated while building releases, see .github/workflows/build_release.yml
defined('_JEXEC') or die;
return [
'version' => 'DEV',
'date' => '2025-08-05',
];
@@ -24,6 +24,9 @@
<option value="vereine"><![CDATA[COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_CLUBS]]></option> <option value="vereine"><![CDATA[COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_CLUBS]]></option>
<option value="spielorte"><![CDATA[COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_VENUES]]></option> <option value="spielorte"><![CDATA[COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_VENUES]]></option>
<option value="termine"><![CDATA[COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_APPOINTMENTS]]></option> <option value="termine"><![CDATA[COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_APPOINTMENTS]]></option>
<option value="spielverlegungen"><![CDATA[COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_MATCH_RESCHEDULING]]></option>
<option value="verbandsorgane"><![CDATA[COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_ASSOCIATION_BODIES]]></option>
<option value="hall_of_fame"><![CDATA[COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_HALL_OF_FAME]]></option>
</field> </field>
<field name="titel" <field name="titel"
type="text" type="text"
File diff suppressed because it is too large Load Diff
@@ -197,6 +197,7 @@ class JSON_sportsmanager
#[NoReturn] static function spielerDetails($spieler, $vereine, $veranstalter, $spieler_elo_verlauf_einzel, $spieler_elo_verlauf_doppel, $spielerNamen, $teamNamen, $veranstaltungBezeichnungen, $turnierdisziplinBezeichnungen, $individualwettbewerbBezeichnungen, $ranglistenplatzierungen, $turnierplatzierungen, $teams, $elo_detailliert, $statistik, $einstufungen): void #[NoReturn] static function spielerDetails($spieler, $vereine, $veranstalter, $spieler_elo_verlauf_einzel, $spieler_elo_verlauf_doppel, $spielerNamen, $teamNamen, $veranstaltungBezeichnungen, $turnierdisziplinBezeichnungen, $individualwettbewerbBezeichnungen, $ranglistenplatzierungen, $turnierplatzierungen, $teams, $elo_detailliert, $statistik, $einstufungen): void
{ {
if (count($vereine) == 0){die;}
$letzte_einzel = []; $letzte_einzel = [];
$spieler->bild = playerImage($spieler->spieler_id, $spieler->geschlecht); $spieler->bild = playerImage($spieler->spieler_id, $spieler->geschlecht);
for ($i = sizeof($spieler_elo_verlauf_einzel) - 1; $i >= max(sizeof($spieler_elo_verlauf_einzel) - 10, 0); $i--) { for ($i = sizeof($spieler_elo_verlauf_einzel) - 1; $i >= max(sizeof($spieler_elo_verlauf_einzel) - 10, 0); $i--) {
File diff suppressed because it is too large Load Diff
@@ -40,8 +40,11 @@ class HTML_sportsmanager_ticker
continue; continue;
else else
$status = 'upcoming'; $status = 'upcoming';
$spieltag = Rundenbezeichnung($begegnung->spieltag, $begegnung->unterteilung == 0, false, true); if ($begegnung->spieltag_titel)
$gewinner = $begegnung->heim_spielpunkte > $begegnung->gast_spielpunkte ? 1 : ($begegnung->heim_spielpunkte < $begegnung->gast_spielpunkte ? 2 : 0); $spieltag = $begegnung->spieltag_titel;
else
$spieltag = Rundenbezeichnung($begegnung->spieltag, $begegnung->unterteilung == 0, false, true);
$gewinner = $begegnung->heim_spielpunkte > $begegnung->gast_spielpunkte ? 1 : ($begegnung->heim_spielpunkte < $begegnung->gast_spielpunkte ? 2 : 0);
$heim_name = $begegnung->heim_name; $heim_name = $begegnung->heim_name;
$gast_name = $begegnung->gast_name; $gast_name = $begegnung->gast_name;
$heim_spielpunkte = $begegnung->heim_spielpunkte; $heim_spielpunkte = $begegnung->heim_spielpunkte;
@@ -291,8 +294,6 @@ class HTML_sportsmanager_ticker
type="text/css"/> type="text/css"/>
<script src="<?php echo Route::_(Uri::root(TRUE) . '/components/com_sportsmanager/js/jquery.min.js'); ?>" <script src="<?php echo Route::_(Uri::root(TRUE) . '/components/com_sportsmanager/js/jquery.min.js'); ?>"
type="text/javascript"></script> type="text/javascript"></script>
<script type="text/javascript"
src="<?php echo Route::_(Uri::root(TRUE) . '/components/com_sportsmanager/js/css3.js'); ?>"></script>
<script> <script>
let globalresize = 0; let globalresize = 0;
@@ -40,7 +40,7 @@ function addOnLoad($function): void
<?php <?php
} }
function SportsManagerURL($weitereParameter = null, $ssl = 0): ?string function SportsManagerURL($weitereParameter = "", $ssl = 0): ?string
{ {
$urlPath = handleFilter($weitereParameter); $urlPath = handleFilter($weitereParameter);
$joomlaBaseUrl = Uri::getInstance()->toString([ $joomlaBaseUrl = Uri::getInstance()->toString([
@@ -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"
@@ -38,6 +39,8 @@ COM_SPORTSMANAGER_ORGANISATION="Organisation"
COM_SPORTSMANAGER_TEAM_MEMBERS="Mannschaftsmitglieder" COM_SPORTSMANAGER_TEAM_MEMBERS="Mannschaftsmitglieder"
COM_SPORTSMANAGER_TEAM_MEMBERS2=Vereinsmitglieder COM_SPORTSMANAGER_TEAM_MEMBERS2=Vereinsmitglieder
COM_SPORTSMANAGER_MEMBERS="Mitglieder" COM_SPORTSMANAGER_MEMBERS="Mitglieder"
COM_SPORTSMANAGER_MEMBER="Mitglied"
COM_SPORTSMANAGER_ACTIVE_MEMBERS="Aktive Mitglieder"
COM_SPORTSMANAGER_TEAMS="Mannschaften" COM_SPORTSMANAGER_TEAMS="Mannschaften"
COM_SPORTSMANAGER_CURRENT_TEAMS="Aktuelle Mannschaften" COM_SPORTSMANAGER_CURRENT_TEAMS="Aktuelle Mannschaften"
COM_SPORTSMANAGER_PREVIOUS_TEAMS="Fr&uuml;here Mannschaften" COM_SPORTSMANAGER_PREVIOUS_TEAMS="Fr&uuml;here Mannschaften"
@@ -70,7 +73,6 @@ COM_SPORTSMANAGER_CONFIRM_REMOVE_RANKING="Willst du die Rangliste wirklich entfe
COM_SPORTSMANAGER_ADD_INDIVIDUAL_COMPETITION="Individualwettbewerb hinzuf&uuml;gen" COM_SPORTSMANAGER_ADD_INDIVIDUAL_COMPETITION="Individualwettbewerb hinzuf&uuml;gen"
COM_SPORTSMANAGER_INDIVIDUAL_COMPETITION="Individualwettbewerb" COM_SPORTSMANAGER_INDIVIDUAL_COMPETITION="Individualwettbewerb"
COM_SPORTSMANAGER_INDIVIDUAL_COMPETITIONS="Individualwettbewerbe" COM_SPORTSMANAGER_INDIVIDUAL_COMPETITIONS="Individualwettbewerbe"
COM_SPORTSMANAGER_ASSOCIATION_BODIES="Verbandsorgane"
COM_SPORTSMANAGER_GAME="Spiel" COM_SPORTSMANAGER_GAME="Spiel"
COM_SPORTSMANAGER_GAMES="Spiele" COM_SPORTSMANAGER_GAMES="Spiele"
COM_SPORTSMANAGER_GAMES_SHORTCUT="S" COM_SPORTSMANAGER_GAMES_SHORTCUT="S"
@@ -130,10 +132,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."
@@ -260,6 +265,7 @@ COM_SPORTSMANAGER_IN="in"
COM_SPORTSMANAGER_NATIONAL="Nationale" COM_SPORTSMANAGER_NATIONAL="Nationale"
COM_SPORTSMANAGER_INTERNATIONAL="Internationale" COM_SPORTSMANAGER_INTERNATIONAL="Internationale"
COM_SPORTSMANAGER_PLAYER_NUMBER_SHORT="Spielernr." COM_SPORTSMANAGER_PLAYER_NUMBER_SHORT="Spielernr."
COM_SPORTSMANAGER_ASSOCIATION_SHORT_NAME="Verbands-Kürzel"
COM_SPORTSMANAGER_BASIC_PLAYER_NUMBER_SHORT="Basis-Spielernr." COM_SPORTSMANAGER_BASIC_PLAYER_NUMBER_SHORT="Basis-Spielernr."
COM_SPORTSMANAGER_MESSAGES="Meldungen" COM_SPORTSMANAGER_MESSAGES="Meldungen"
COM_SPORTSMANAGER_TOURNAMENT_PLACEMENT="Turnierplatzierungen" COM_SPORTSMANAGER_TOURNAMENT_PLACEMENT="Turnierplatzierungen"
@@ -311,6 +317,11 @@ 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_VIEW_LEAST_MEMBER_COUNT="Mindest Mitgliederzahl zeigen (Vereine)"
COM_SPORTSMANAGER_SHOW_ORGANISATION="Spalte Verband zeigen (Vereine)"
COM_SPORTSMANAGER_SHOW_MEMBER_COUNT="Spalte Mitglieder Zeigen (Vereine)"
COM_SPORTSMANAGER_SHOW_TOURNAMENT_BRACKET="Turnierbaum anzeigen"
COM_SPORTSMANAGER_USE_DISCIPLINARY_FINE="Ordnungsstrafen verwenden"
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"
@@ -353,6 +364,7 @@ COM_SPORTSMANAGER_STATISTIK="Statistik"
COM_SPORTSMANAGER_PLAYERS_ACTIVE="Spieler aktiv" COM_SPORTSMANAGER_PLAYERS_ACTIVE="Spieler aktiv"
COM_SPORTSMANAGER_RESTRICTED_PLAYERS="Spieler eingeschr&auml;nkt" COM_SPORTSMANAGER_RESTRICTED_PLAYERS="Spieler eingeschr&auml;nkt"
COM_SPORTSMANAGER_PLAYER_PASSIV="Spieler passiv" COM_SPORTSMANAGER_PLAYER_PASSIV="Spieler passiv"
COM_SPORTSMANAGER_PLAYER_UNATTACHED="Spieler vereinslos"
COM_SPORTSMANAGER_MEN_ACTIVE="Herren aktiv" COM_SPORTSMANAGER_MEN_ACTIVE="Herren aktiv"
COM_SPORTSMANAGER_WOMEN_ACTIVE="Damen aktiv" COM_SPORTSMANAGER_WOMEN_ACTIVE="Damen aktiv"
COM_SPORTSMANAGER_JUNIOR_ACTIVE="Junioren aktiv" COM_SPORTSMANAGER_JUNIOR_ACTIVE="Junioren aktiv"
@@ -380,6 +392,7 @@ COM_SPORTSMANAGER_MEMBER_STATUS="Mitgliedsstatus"
COM_SPORTSMANAGER_ACTIVE="Aktiv" COM_SPORTSMANAGER_ACTIVE="Aktiv"
COM_SPORTSMANAGER_RESTRICTED="Eingeschränkt" COM_SPORTSMANAGER_RESTRICTED="Eingeschränkt"
COM_SPORTSMANAGER_BEATEN="Ausgetreten" COM_SPORTSMANAGER_BEATEN="Ausgetreten"
COM_SPORTSMANAGER_HIDE="Verstecken"
COM_SPORTSMANAGER_PASSIVE="Passiv" COM_SPORTSMANAGER_PASSIVE="Passiv"
COM_SPORTSMANAGER_BEATEN_CLUB="Verein ausgetreten" COM_SPORTSMANAGER_BEATEN_CLUB="Verein ausgetreten"
COM_SPORTSMANAGER_SINGLE_SEED="Elo-Startwert Einzel" COM_SPORTSMANAGER_SINGLE_SEED="Elo-Startwert Einzel"
@@ -402,10 +415,11 @@ COM_SPORTSMANAGER_EXPORT="Exportieren"
COM_SPORTSMANAGER_INTERNATIONAL_PLAYERS="Spieler (international)" COM_SPORTSMANAGER_INTERNATIONAL_PLAYERS="Spieler (international)"
COM_SPORTSMANAGER_COUNTRY_CODE="Landeskennung" COM_SPORTSMANAGER_COUNTRY_CODE="Landeskennung"
COM_SPORTSMANAGER_IMPORT="Importieren" 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_CHECK="Pr&uuml;fen"
COM_SPORTSMANAGER_IMPORT_CONFLICTS_MESSAGE="Im Import sind Konflikte enthalten, die im Vorfeld manuell beseitigt werden müssen." 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" COM_SPORTSMANAGER_IMPORT_DUPLICATE_MESSAGE="Versuch, Spielernr. auf eine bereits für einen anderen Spieler vergebene Spielernr. zu ändern"
COM_SPORTSMANAGER_IMPORT_WRONG_FORMAT_PLAYERNUMBER="Eine oder mehrere Spielernummer enthalten ein ung&uuml;ltiges Format"
COM_SPORTSMANAGER_NAME2="Name" COM_SPORTSMANAGER_NAME2="Name"
COM_SPORTSMANAGER_DATA_IMPORT_ABORT_MESSAGE="Der Import wird abgebrochen, da Konflikte bei den zu importierenden Spielerdaten bestehen. Bitte kontaktiere einen Moderator und sende dabei die Importdatei mit!" COM_SPORTSMANAGER_DATA_IMPORT_ABORT_MESSAGE="Der Import wird abgebrochen, da Konflikte bei den zu importierenden Spielerdaten bestehen. Bitte kontaktiere einen Moderator und sende dabei die Importdatei mit!"
COM_SPORTSMANAGER_DATA_IMPORT_NO_CONFLICTS="Es bestehen keine Konflikte bei den zu importierenden Spielerdaten." COM_SPORTSMANAGER_DATA_IMPORT_NO_CONFLICTS="Es bestehen keine Konflikte bei den zu importierenden Spielerdaten."
@@ -502,7 +516,6 @@ COM_SPORTSMANAGER_ADD_POINTS_TABLE="Punktetabelle hinzuf&uuml;gen"
COM_SPORTSMANAGER_ADD_FUNCTION="Funktion hinzuf&uuml;gen" COM_SPORTSMANAGER_ADD_FUNCTION="Funktion hinzuf&uuml;gen"
COM_SPORTSMANAGER_PARTICIPANT="Teilnehmer" COM_SPORTSMANAGER_PARTICIPANT="Teilnehmer"
COM_SPORTSMANAGER_FUNCTION="Funktion" COM_SPORTSMANAGER_FUNCTION="Funktion"
COM_SPORTSMANAGER_MULTIPLIER="Multiplikator"
COM_SPORTSMANAGER_MAXIMUM="maximal" COM_SPORTSMANAGER_MAXIMUM="maximal"
COM_SPORTSMANAGER_CONTRACTION="K&uuml;rzel" COM_SPORTSMANAGER_CONTRACTION="K&uuml;rzel"
COM_SPORTSMANAGER_ELIGIBLE_ORGANIZERS="Berechtigte f&uuml;r Veranstalter" COM_SPORTSMANAGER_ELIGIBLE_ORGANIZERS="Berechtigte f&uuml;r Veranstalter"
@@ -536,6 +549,7 @@ COM_SPORTSMANAGER_FULL_RATING="Volle Wertung"
COM_SPORTSMANAGER_NO_RATING="Keine Wertung" COM_SPORTSMANAGER_NO_RATING="Keine Wertung"
COM_SPORTSMANAGER_TEAM_COMPETITIONS="Mannschaftswettbewerbe" COM_SPORTSMANAGER_TEAM_COMPETITIONS="Mannschaftswettbewerbe"
COM_SPORTSMANAGER_TABLE_SUMMARY="Tabellenwertung" COM_SPORTSMANAGER_TABLE_SUMMARY="Tabellenwertung"
COM_SPORTSMANAGER_HEAD_TO_HEAD_RECORD="Direkter Vergleich"
COM_SPORTSMANAGER_POINTS_WON_LOST_DIFFERENCE="Spielpunkte gewonnen, Spielpunkte verloren, Punktedifferenz" COM_SPORTSMANAGER_POINTS_WON_LOST_DIFFERENCE="Spielpunkte gewonnen, Spielpunkte verloren, Punktedifferenz"
COM_SPORTSMANAGER_PERFORMANCE_INDEX="Leistungsindex (SP+ * SP+ * 100) / (SP+ + SP-), Spielpunkte gewonnen, ..." COM_SPORTSMANAGER_PERFORMANCE_INDEX="Leistungsindex (SP+ * SP+ * 100) / (SP+ + SP-), Spielpunkte gewonnen, ..."
COM_SPORTSMANAGER_PERFORMANCE_INDEX2="Leistungsindex (S * P+ * 10) / (P+ + P-), Spielpunkte gewonnen, ..." COM_SPORTSMANAGER_PERFORMANCE_INDEX2="Leistungsindex (S * P+ * 10) / (P+ + P-), Spielpunkte gewonnen, ..."
@@ -562,7 +576,7 @@ COM_SPORTSMANAGER_PRIVATE_PLAYER_DATA="Private Spielerdaten in Vereins- und Mann
COM_SPORTSMANAGER_ASSOCIATIONS_MEMBERSHIPS_MANAGE="Vereine und Mitgliedschaften verwalten" COM_SPORTSMANAGER_ASSOCIATIONS_MEMBERSHIPS_MANAGE="Vereine und Mitgliedschaften verwalten"
COM_SPORTSMANAGER_MANAGE_CLASSIFICATIONS="Einstufungen verwalten" COM_SPORTSMANAGER_MANAGE_CLASSIFICATIONS="Einstufungen verwalten"
COM_SPORTSMANAGER_MANAGE_TEAM_PLANS="Mannschaftsspielpläne verwalten" COM_SPORTSMANAGER_MANAGE_TEAM_PLANS="Mannschaftsspielpläne verwalten"
COM_SPORTSMANAGER_MANAGE_RULES_POSTPONEMENT="Verschieberegeln verwalten" COM_SPORTSMANAGER_MANAGE_RULES_POSTPONEMENT="Spielverlegungen/Verschieberegeln verwalten"
COM_SPORTSMANAGER_MANAGE_VENUES="Spielorte verwalten" COM_SPORTSMANAGER_MANAGE_VENUES="Spielorte verwalten"
COM_SPORTSMANAGER_MANAGE_TEAM_COMPETITIONS="Mannschaftswettbewerbe verwalten" COM_SPORTSMANAGER_MANAGE_TEAM_COMPETITIONS="Mannschaftswettbewerbe verwalten"
COM_SPORTSMANAGER_MANAGE_PLAYER_STATISTICS="Spielerstastistiken verwalten" COM_SPORTSMANAGER_MANAGE_PLAYER_STATISTICS="Spielerstastistiken verwalten"
@@ -604,7 +618,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"
@@ -632,6 +649,9 @@ 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_DRAW_FOR_HOME="Heimrecht auslosen"
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"
@@ -647,7 +667,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"
@@ -775,6 +797,7 @@ COM_SPORTSMANAGER_FEDERAL_STATES="Bundesl&auml;nder"
COM_SPORTSMANAGER_STATES="L&auml;nder" COM_SPORTSMANAGER_STATES="L&auml;nder"
COM_SPORTSMANAGER_YEAR="Jahr" COM_SPORTSMANAGER_YEAR="Jahr"
COM_SPORTSMANAGER_ADDITION="Zusatz" COM_SPORTSMANAGER_ADDITION="Zusatz"
COM_SPORTSMANAGER_LOCATION="Ort"
COM_SPORTSMANAGER_STATE="Land" COM_SPORTSMANAGER_STATE="Land"
COM_SPORTSMANAGER_FEDERAL_="Bundes-" COM_SPORTSMANAGER_FEDERAL_="Bundes-"
COM_SPORTSMANAGER_INFO="Info" COM_SPORTSMANAGER_INFO="Info"
@@ -788,7 +811,6 @@ COM_SPORTSMANAGER_APPLIED_FOR="Beantragt"
COM_SPORTSMANAGER_DECLINED="Abgelehnt" COM_SPORTSMANAGER_DECLINED="Abgelehnt"
COM_SPORTSMANAGER_DATE_DETAILS="Termin: Details" COM_SPORTSMANAGER_DATE_DETAILS="Termin: Details"
COM_SPORTSMANAGER_ADDITIONS="Zus&auml;tze" COM_SPORTSMANAGER_ADDITIONS="Zus&auml;tze"
COM_SPORTSMANAGER_ADDITIONAL_INFORMATION="Weitere Informationen"
COM_SPORTSMANAGER_PUBLIC_EMAIL="E-Mail &ouml;ffentlich" COM_SPORTSMANAGER_PUBLIC_EMAIL="E-Mail &ouml;ffentlich"
COM_SPORTSMANAGER_EMAIL_WITH_CHANGES="E-Mail bei &Auml;nderungen" COM_SPORTSMANAGER_EMAIL_WITH_CHANGES="E-Mail bei &Auml;nderungen"
COM_SPORTSMANAGER_ACTION_TYPE="Aktionstyp" COM_SPORTSMANAGER_ACTION_TYPE="Aktionstyp"
@@ -864,6 +886,9 @@ COM_SPORTSMANAGER_INITIAL_APPOINTMENT_SUGGESTIONS="Initiale Terminvorschl&auml;g
COM_SPORTSMANAGER_REQUESTING_TEAM="Beantragende Mannschaft" COM_SPORTSMANAGER_REQUESTING_TEAM="Beantragende Mannschaft"
COM_SPORTSMANAGER_OPPONENT_TEAM="Gegnerische Mannschaft" COM_SPORTSMANAGER_OPPONENT_TEAM="Gegnerische Mannschaft"
COM_SPORTSMANAGER_AGAINST_PROPOSALS_ALLOWED="Gegensvorschl&auml;ge zul&auml;ssig" COM_SPORTSMANAGER_AGAINST_PROPOSALS_ALLOWED="Gegensvorschl&auml;ge zul&auml;ssig"
COM_SPORTSMANAGER_REASON_REQUIRED="Begr&uuml;ndung erforderlich"
COM_SPORTSMANAGER_CLUB_ENTITLEMENT="Berechtigung Vereine"
COM_SPORTSMANAGER_ASSOCIATION_ENTITLEMENT="Berechtigung Verband"
COM_SPORTSMANAGER_LEAD_TIME="Vorlaufzeit" COM_SPORTSMANAGER_LEAD_TIME="Vorlaufzeit"
COM_SPORTSMANAGER_APPOINTMENT_PROPOSALS_MINIMAL="Terminvorschl&auml;ge minimal" COM_SPORTSMANAGER_APPOINTMENT_PROPOSALS_MINIMAL="Terminvorschl&auml;ge minimal"
COM_SPORTSMANAGER_APPOINTMENT_PROPOSALS_MAXIMUM="Terminvorschl&auml;ge maximal" COM_SPORTSMANAGER_APPOINTMENT_PROPOSALS_MAXIMUM="Terminvorschl&auml;ge maximal"
@@ -873,6 +898,11 @@ COM_SPORTSMANAGER_OPTIONAL_BUT_SAME_IN_DOUBLES="Optional, aber im Doppel keiner
COM_SPORTSMANAGER_REQUIRED="Erforderlich" COM_SPORTSMANAGER_REQUIRED="Erforderlich"
COM_SPORTSMANAGER_RESULT_ONLY="Nur Ergebnis" COM_SPORTSMANAGER_RESULT_ONLY="Nur Ergebnis"
COM_SPORTSMANAGER_GAME_NUMBER="Spiel %d" COM_SPORTSMANAGER_GAME_NUMBER="Spiel %d"
COM_SPORTSMANAGER_LABEL_GAME_NUMBER="Spiel Nr"
COM_SPORTSMANAGER_LABEL_GAME_TITLE="Spieltag Titel"
COM_SPORTSMANAGER_EXPLICIT_PENALTIES="Explizite Strafen"
COM_SPORTSMANAGER_EXPLICIT_PENALTIES_EMAIL_SUBJECT="%s: Strafpunkte erhalten"
COM_SPORTSMANAGER_EXPLICIT_PENALTIES_EMAIL_BODY="%s wurden %f Strafpunkte zugeteilt mit der Begründung: %s"
COM_SPORTSMANAGER_EMAIL_SHIFT_GAME_APPOINTMENT_SUBJECT="%s vs %s: Spieltermin verlegen" COM_SPORTSMANAGER_EMAIL_SHIFT_GAME_APPOINTMENT_SUBJECT="%s vs %s: Spieltermin verlegen"
COM_SPORTSMANAGER_EMAIL_SHIFT_GAME_APPOINTMENT_BODY="Zur Begegnung %s gegen %s am %s in %s wird von %s der Spieltermin verschoben.\n\nAlternative Termine:\n\n" COM_SPORTSMANAGER_EMAIL_SHIFT_GAME_APPOINTMENT_BODY="Zur Begegnung %s gegen %s am %s in %s wird von %s der Spieltermin verschoben.\n\nAlternative Termine:\n\n"
COM_SPORTSMANAGER_EMAIL_SHIFT_GAME_APPOINTMENT_REQUESTED_BODY="Zur Begegnung %s gegen %s am %s in %s wird von %s der Spieltermin verschoben.\n\nBitte alternative Termine vorschlagen unter %s" COM_SPORTSMANAGER_EMAIL_SHIFT_GAME_APPOINTMENT_REQUESTED_BODY="Zur Begegnung %s gegen %s am %s in %s wird von %s der Spieltermin verschoben.\n\nBitte alternative Termine vorschlagen unter %s"
@@ -993,3 +1023,79 @@ COM_SPORTSMANAGER_ARIA_LABEL_CLUB="Verein"
COM_SPORTSMANAGER_NUM_REQUESTED_SHIFTS="Verschiebungen" COM_SPORTSMANAGER_NUM_REQUESTED_SHIFTS="Verschiebungen"
COM_SPORTSMANAGER_NUM_REQUESTED_SHFITS_TOOLTIP="Spielverschiebungen durch diese Mannschaft" COM_SPORTSMANAGER_NUM_REQUESTED_SHFITS_TOOLTIP="Spielverschiebungen durch diese Mannschaft"
COM_SPORTSMANAGER_GAME_RESULT_DELAYS="Verzögerung" COM_SPORTSMANAGER_GAME_RESULT_DELAYS="Verzögerung"
COM_SPORTSMANAGER_USE_EMAIL_REMINDERS="Verwende Email Erinnerungen"
COM_SPORTSMANAGER_RULEBOOKS="Regelwerke"
COM_SPORTSMANAGER_RULEBOOK="Regelwerk"
COM_SPORTSMANAGER_RULE_SHORT="SPO"
COM_SPORTSMANAGER_FEE_SHORT="GO"
COM_SPORTSMANAGER_RULE_LONG="Paragraph SPO"
COM_SPORTSMANAGER_FEE_LONG="Paragraph GO"
COM_SPORTSMANAGER_SELECT="Auswahl"
COM_SPORTSMANAGER_NO_SELECT="keine Auswahl"
COM_SPORTSMANAGER_REALLY_REMOVE_RULEBOOK="Willst Du dieses Regelwerk wirklich entfernen?"
COM_SPORTSMANAGER_ADD_RULEBOOK="Regelwerk hinzuf&uuml;gen"
COM_SPORTSMANAGER_DISCIPLINARY_FINES="Ordnungsstrafen"
COM_SPORTSMANAGER_DISCIPLINARY_FINE="Ordnungsstrafe"
COM_SPORTSMANAGER_ISSUE_DISCIPLINARY_FINES="Ordnungsstrafe ausstellen"
COM_SPORTSMANAGER_EDIT_DISCIPLINARY_FINE="Ordnungsstrafe bearbeiten"
COM_SPORTSMANAGER_SEND_DISCIPLINARY_FINE="Ordnungsstrafe versenden"
COM_SPORTSMANAGER_REALLY_REMOVE_DISCIPLINARY_FINES="Willst Du diese Ordnungsstrafe wirklich entfernen?"
COM_SPORTSMANAGER_VIOLATIONS="Verst&ouml;&szlig;e"
COM_SPORTSMANAGER_VIOLATION="Versto&szlig;"
COM_SPORTSMANAGER_ADD_VIOLATION="Versto&szlig; hinzuf&uuml;gen"
COM_SPORTSMANAGER_REALLY_REMOVE_VIOLATION="Willst Du diesen Versto&szlig; wirklich entfernen?"
COM_SPORTSMANAGER_VIOLATION_TEXT="Text"
COM_SPORTSMANAGER_VIOLATION_ADD_TEXT="Zusatztext"
COM_SPORTSMANAGER_FEE="Geb&uuml;hr"
COM_SPORTSMANAGER_ADD_FEE="Zusatzgeb&uuml;hr"
COM_SPORTSMANAGER_SELECTABLE="Ausw&auml;hlbar"
COM_SPORTSMANAGER_TEMPLATE="Vorlage"
COM_SPORTSMANAGER_EMAIL_SUBJECT="Betreff"
COM_SPORTSMANAGER_EMAIL_MESSAGE="Nachricht"
COM_SPORTSMANAGER_EMAIL_TO="An"
COM_SPORTSMANAGER_EMAIL_SEND="E-Mail senden"
COM_SPORTSMANAGER_EMAIL_TEXT_TEMPLATE="Textvorlage"
COM_SPORTSMANAGER_ISSUER="Aussteller"
COM_SPORTSMANAGER_ISSUE_DATE="Ausstelldatum"
COM_SPORTSMANAGER_SENDER="Sender"
COM_SPORTSMANAGER_BILL_ISSUER="Rechnung erstellt"
COM_SPORTSMANAGER_MULTIPLIER="Multiplikator"
COM_SPORTSMANAGER_ADDITIONAL_INFORMATION="Weitere Angaben"
COM_SPORTSMANAGER_EMAIL_WAS_SEND="Die E-Mail wurde erfolgreich versendet"
COM_SPORTSMANAGER_EMAIL_WAS_NOT_SEND="Die E-Mail wurde nicht versendet"
COM_SPORTSMANAGER_OLD_DATE="Alter Termin"
COM_SPORTSMANAGER_NEW_DATE="Neuer Termin"
COM_SPORTSMANAGER_REASON_GAME_APPOINTMENT="Verlegungsgrund"
COM_SPORTSMANAGER_MATCH_RESCHEDULINGS="Spielverlegungen"
COM_SPORTSMANAGER_MATCH_RESCHEDULING="Spielverlegung"
COM_SPORTSMANAGER_MATCH_SWAPPING_HELP="Bei Heimrechttausch gleichen Termin eintragen"
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"
COM_SPORTSMANAGER_ASSOCIATION_BODIES="Verbandsorgane"
COM_SPORTSMANAGER_ASSOCIATION_BODY="Verbandsorgan"
COM_SPORTSMANAGER_ADD_ASSOCIATION_BODY="Verbandsorgan hinzuf&uuml;gen"
COM_SPORTSMANAGER_REALLY_REMOVE_ASSOCIATION_BODY="Willst Du dieses Verbandsorgan wirklich entfernen?"
COM_SPORTSMANAGER_INVALID_ASSOCIATION_BODY_NAME="Ung&uuml;ltiger Name f&uuml;r Verbandsorgan!"
COM_SPORTSMANAGER_NAME_NOT_COMPLETE="Der Name ist nicht komplett ausgef&uuml;llt"
COM_SPORTSMANAGER_ADDITIONAL_INFO="Zusatzinfo"
COM_SPORTSMANAGER_USE_HTML="Hier sollte HTML-formatierter Text verwendet werden"
COM_SPORTSMANAGER_REALLY_REMOVE_ASSOCIATION_BODY_MEMBER="M&ouml;chtest du dieses Mitglied des Verbandsorgans wirklich entfernen?"
COM_SPORTSMANAGER_HELP_EDIT_ASSOCIATION_BODY_MEMBER="Wird ein Name aus der Spielerliste ausgew&auml;hlt, werden Nachname und Vorname &uuml;bernommen.<br>Telefon, Mobil, E-Mail werden aus der Spielerliste &uuml;bernommen, wenn sie hier nicht ausgef&uuml;llt sind."
COM_SPORTSMANAGER_HALL_OF_FAME="Hall of Fame"
COM_SPORTSMANAGER_ADD_HALL_OF_FAME="Hall of Fame hinzuf&uuml;gen"
COM_SPORTSMANAGER_INVALID_HALL_OF_FAME_NAME="Invalider Name f&uuml;r Hall of Fame"
COM_SPORTSMANAGER_REALLY_REMOVE_HALL_OF_FAME="Willst Du wirklich diese Hall of Fame mit allen Mitgliedern l&ouml;schen?"
COM_SPORTSMANAGER_MATCH_TYPE="Spielform"
COM_SPORTSMANAGER_REALLY_REMOVE_HALL_OF_FAME_YEAR="Willst Du wirklich dieses Hall of Fame Jahr l&ouml;schen?"
COM_SPORTSMANAGER_YEARS="Jahre"
COM_SPORTSMANAGER_ADD_HALL_OF_FAME_YEAR="Hall of Fame Jahr hinzuf&uuml;gen"
COM_SPORTSMANAGER_NO_ENTRY="kein Eintrag"
COM_SPORTSMANAGER_REALLY_SWAP_MATCH="Willst Du wirklich das Heimrecht tauschen?"
COM_SPORTSMANAGER_SWAP_MATCH="Heimrechttausch"
COM_SPORTSMANAGER_REALLY_DELETE_MATCH_REPORT="Der Spielbericht wird zusammen mit allen historischen Eintr&auml;gen gel&ouml;scht. Willst du den Spielbericht wirklich l&ouml;schen?"
COM_SPORTSMANAGER_MATCH_REPORT_DELETED="Spielbericht gel&ouml;scht"
COM_SPORTSMANAGER_MATCH_REPORT_WAS_DELETED="Der Spielbericht wurde erfolgreich gel&ouml;scht!"
COM_SPORTSMANAGER_MATCH_REPORT_CORRECTED="Spielberichtskorrektur"
@@ -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"
@@ -38,6 +39,8 @@ COM_SPORTSMANAGER_ORGANISATION="Organisation"
COM_SPORTSMANAGER_TEAM_MEMBERS="Team members" COM_SPORTSMANAGER_TEAM_MEMBERS="Team members"
COM_SPORTSMANAGER_TEAM_MEMBERS2="Club members" COM_SPORTSMANAGER_TEAM_MEMBERS2="Club members"
COM_SPORTSMANAGER_MEMBERS="Members" COM_SPORTSMANAGER_MEMBERS="Members"
COM_SPORTSMANAGER_MEMBER="Member"
COM_SPORTSMANAGER_ACTIVE_MEMBERS="Active members"
COM_SPORTSMANAGER_TEAMS="Teams" COM_SPORTSMANAGER_TEAMS="Teams"
COM_SPORTSMANAGER_CURRENT_TEAMS="Current teams" COM_SPORTSMANAGER_CURRENT_TEAMS="Current teams"
COM_SPORTSMANAGER_PREVIOUS_TEAMS="Previous teams" COM_SPORTSMANAGER_PREVIOUS_TEAMS="Previous teams"
@@ -70,7 +73,6 @@ COM_SPORTSMANAGER_CONFIRM_REMOVE_RANKING="Do you really want to remove the ranki
COM_SPORTSMANAGER_ADD_INDIVIDUAL_COMPETITION="Add individual competition" COM_SPORTSMANAGER_ADD_INDIVIDUAL_COMPETITION="Add individual competition"
COM_SPORTSMANAGER_INDIVIDUAL_COMPETITION="Individual competition" COM_SPORTSMANAGER_INDIVIDUAL_COMPETITION="Individual competition"
COM_SPORTSMANAGER_INDIVIDUAL_COMPETITIONS="Individual competitions" COM_SPORTSMANAGER_INDIVIDUAL_COMPETITIONS="Individual competitions"
COM_SPORTSMANAGER_ASSOCIATION_BODIES="Association bodies"
COM_SPORTSMANAGER_GAME="Game" COM_SPORTSMANAGER_GAME="Game"
COM_SPORTSMANAGER_GAMES="Games" COM_SPORTSMANAGER_GAMES="Games"
COM_SPORTSMANAGER_GAMES_SHORTCUT="G" COM_SPORTSMANAGER_GAMES_SHORTCUT="G"
@@ -129,11 +131,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."
@@ -260,6 +265,7 @@ COM_SPORTSMANAGER_IN="in"
COM_SPORTSMANAGER_NATIONAL="National" COM_SPORTSMANAGER_NATIONAL="National"
COM_SPORTSMANAGER_INTERNATIONAL="International" COM_SPORTSMANAGER_INTERNATIONAL="International"
COM_SPORTSMANAGER_PLAYER_NUMBER_SHORT="Player number" COM_SPORTSMANAGER_PLAYER_NUMBER_SHORT="Player number"
COM_SPORTSMANAGER_ASSOCIATION_SHORT_NAME="Association short name"
COM_SPORTSMANAGER_BASIC_PLAYER_NUMBER_SHORT="Player number base" COM_SPORTSMANAGER_BASIC_PLAYER_NUMBER_SHORT="Player number base"
COM_SPORTSMANAGER_MESSAGES="Registrations" COM_SPORTSMANAGER_MESSAGES="Registrations"
COM_SPORTSMANAGER_TOURNAMENT_PLACEMENT="Tournament placements" COM_SPORTSMANAGER_TOURNAMENT_PLACEMENT="Tournament placements"
@@ -311,6 +317,11 @@ 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_VIEW_LEAST_MEMBER_COUNT="Show least member count (teams)"
COM_SPORTSMANAGER_SHOW_ORGANISATION="Show organisation (teams)"
COM_SPORTSMANAGER_SHOW_MEMBER_COUNT="Show member column (teams)"
COM_SPORTSMANAGER_SHOW_TOURNAMENT_BRACKET="Show Tournament Bracket"
COM_SPORTSMANAGER_USE_DISCIPLINARY_FINE="Use disciplinary fine"
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"
@@ -351,8 +362,9 @@ COM_SPORTSMANAGER_PLAYERS_EXPORT_SPORT_SOFTWARE="Export players (Sport Software)
COM_SPORTSMANAGER_CLEANUP_INACTIVE_PLAYERS="Cleanup inactive players" COM_SPORTSMANAGER_CLEANUP_INACTIVE_PLAYERS="Cleanup inactive players"
COM_SPORTSMANAGER_STATISTIK="Statistics" COM_SPORTSMANAGER_STATISTIK="Statistics"
COM_SPORTSMANAGER_PLAYERS_ACTIVE="Players active" COM_SPORTSMANAGER_PLAYERS_ACTIVE="Players active"
COM_SPORTSMANAGER_RESTRICTED_PLAYERS="Players restrited" COM_SPORTSMANAGER_RESTRICTED_PLAYERS="Players restricted"
COM_SPORTSMANAGER_PLAYER_PASSIV="Players passive" COM_SPORTSMANAGER_PLAYER_PASSIV="Players passive"
COM_SPORTSMANAGER_PLAYER_UNATTACHED="Players unattached"
COM_SPORTSMANAGER_MEN_ACTIVE="Male active" COM_SPORTSMANAGER_MEN_ACTIVE="Male active"
COM_SPORTSMANAGER_WOMEN_ACTIVE="Female active" COM_SPORTSMANAGER_WOMEN_ACTIVE="Female active"
COM_SPORTSMANAGER_JUNIOR_ACTIVE="Juniors active" COM_SPORTSMANAGER_JUNIOR_ACTIVE="Juniors active"
@@ -380,6 +392,7 @@ COM_SPORTSMANAGER_MEMBER_STATUS="Member status"
COM_SPORTSMANAGER_ACTIVE="Active" COM_SPORTSMANAGER_ACTIVE="Active"
COM_SPORTSMANAGER_RESTRICTED="Restricted" COM_SPORTSMANAGER_RESTRICTED="Restricted"
COM_SPORTSMANAGER_BEATEN="Excreted" COM_SPORTSMANAGER_BEATEN="Excreted"
COM_SPORTSMANAGER_HIDE="Hide"
COM_SPORTSMANAGER_PASSIVE="Passive" COM_SPORTSMANAGER_PASSIVE="Passive"
COM_SPORTSMANAGER_BEATEN_CLUB="Club excreted" COM_SPORTSMANAGER_BEATEN_CLUB="Club excreted"
COM_SPORTSMANAGER_SINGLE_SEED="Elo starting value singles" COM_SPORTSMANAGER_SINGLE_SEED="Elo starting value singles"
@@ -402,10 +415,11 @@ COM_SPORTSMANAGER_EXPORT="Export"
COM_SPORTSMANAGER_INTERNATIONAL_PLAYERS="Players (international)" COM_SPORTSMANAGER_INTERNATIONAL_PLAYERS="Players (international)"
COM_SPORTSMANAGER_COUNTRY_CODE="Country code" COM_SPORTSMANAGER_COUNTRY_CODE="Country code"
COM_SPORTSMANAGER_IMPORT="Import" 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_CHECK="Check"
COM_SPORTSMANAGER_IMPORT_CONFLICTS_MESSAGE="There are conflicts in the import which have to be fixed manually first." 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." COM_SPORTSMANAGER_IMPORT_DUPLICATE_MESSAGE="Attempt to change player number into one that is already assigned to another player."
COM_SPORTSMANAGER_IMPORT_WRONG_FORMAT_PLAYERNUMBER="One or more player numbers contain an invalid format"
COM_SPORTSMANAGER_NAME2="Name" COM_SPORTSMANAGER_NAME2="Name"
COM_SPORTSMANAGER_DATA_IMPORT_ABORT_MESSAGE="The import has been aborted because there are conflicts in the containing player information. Please contact a moderator and attach the import!" COM_SPORTSMANAGER_DATA_IMPORT_ABORT_MESSAGE="The import has been aborted because there are conflicts in the containing player information. Please contact a moderator and attach the import!"
COM_SPORTSMANAGER_DATA_IMPORT_NO_CONFLICTS="There are conflicts in the containing player information." COM_SPORTSMANAGER_DATA_IMPORT_NO_CONFLICTS="There are conflicts in the containing player information."
@@ -502,7 +516,6 @@ COM_SPORTSMANAGER_ADD_POINTS_TABLE="Add points table"
COM_SPORTSMANAGER_ADD_FUNCTION="Add function" COM_SPORTSMANAGER_ADD_FUNCTION="Add function"
COM_SPORTSMANAGER_PARTICIPANT="Participants" COM_SPORTSMANAGER_PARTICIPANT="Participants"
COM_SPORTSMANAGER_FUNCTION="Function" COM_SPORTSMANAGER_FUNCTION="Function"
COM_SPORTSMANAGER_MULTIPLIER="Multiplier"
COM_SPORTSMANAGER_MAXIMUM="maximum" COM_SPORTSMANAGER_MAXIMUM="maximum"
COM_SPORTSMANAGER_CONTRACTION="Contraction" COM_SPORTSMANAGER_CONTRACTION="Contraction"
COM_SPORTSMANAGER_ELIGIBLE_ORGANIZERS="Eligible for organisation" COM_SPORTSMANAGER_ELIGIBLE_ORGANIZERS="Eligible for organisation"
@@ -536,6 +549,7 @@ COM_SPORTSMANAGER_FULL_RATING="Full rating"
COM_SPORTSMANAGER_NO_RATING="No rating" COM_SPORTSMANAGER_NO_RATING="No rating"
COM_SPORTSMANAGER_TEAM_COMPETITIONS="Team competitions" COM_SPORTSMANAGER_TEAM_COMPETITIONS="Team competitions"
COM_SPORTSMANAGER_TABLE_SUMMARY="Table rating" COM_SPORTSMANAGER_TABLE_SUMMARY="Table rating"
COM_SPORTSMANAGER_HEAD_TO_HEAD_RECORD="Head-to-head record"
COM_SPORTSMANAGER_POINTS_WON_LOST_DIFFERENCE="Game points won, game points lost, point difference" COM_SPORTSMANAGER_POINTS_WON_LOST_DIFFERENCE="Game points won, game points lost, point difference"
COM_SPORTSMANAGER_PERFORMANCE_INDEX="Performance index (GP+ * GP+ * 100) / (GP+ + GP-), game points won, ..." COM_SPORTSMANAGER_PERFORMANCE_INDEX="Performance index (GP+ * GP+ * 100) / (GP+ + GP-), game points won, ..."
COM_SPORTSMANAGER_PERFORMANCE_INDEX2="Performance index (games * P+ * 10) / (P+ + P-), game points won, ..." COM_SPORTSMANAGER_PERFORMANCE_INDEX2="Performance index (games * P+ * 10) / (P+ + P-), game points won, ..."
@@ -562,7 +576,7 @@ COM_SPORTSMANAGER_PRIVATE_PLAYER_DATA="View privat player information in club an
COM_SPORTSMANAGER_ASSOCIATIONS_MEMBERSHIPS_MANAGE="Manage clubs and memberships" COM_SPORTSMANAGER_ASSOCIATIONS_MEMBERSHIPS_MANAGE="Manage clubs and memberships"
COM_SPORTSMANAGER_MANAGE_CLASSIFICATIONS="Manage classifications" COM_SPORTSMANAGER_MANAGE_CLASSIFICATIONS="Manage classifications"
COM_SPORTSMANAGER_MANAGE_TEAM_PLANS="Manage team plans" COM_SPORTSMANAGER_MANAGE_TEAM_PLANS="Manage team plans"
COM_SPORTSMANAGER_MANAGE_RULES_POSTPONEMENT="Manage postpone rules" COM_SPORTSMANAGER_MANAGE_RULES_POSTPONEMENT="Manage match rescheduling/postpone rules"
COM_SPORTSMANAGER_MANAGE_VENUES="Manage venues" COM_SPORTSMANAGER_MANAGE_VENUES="Manage venues"
COM_SPORTSMANAGER_MANAGE_TEAM_COMPETITIONS="Manage team competitions" COM_SPORTSMANAGER_MANAGE_TEAM_COMPETITIONS="Manage team competitions"
COM_SPORTSMANAGER_MANAGE_PLAYER_STATISTICS="Manage player statitics" COM_SPORTSMANAGER_MANAGE_PLAYER_STATISTICS="Manage player statitics"
@@ -604,7 +618,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"
@@ -632,6 +649,9 @@ 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_DRAW_FOR_HOME="Draw for home"
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"
@@ -647,7 +667,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"
@@ -775,6 +797,7 @@ COM_SPORTSMANAGER_FEDERAL_STATES="State"
COM_SPORTSMANAGER_STATES="Countries" COM_SPORTSMANAGER_STATES="Countries"
COM_SPORTSMANAGER_YEAR="Year" COM_SPORTSMANAGER_YEAR="Year"
COM_SPORTSMANAGER_ADDITION="Addition" COM_SPORTSMANAGER_ADDITION="Addition"
COM_SPORTSMANAGER_LOCATION="Location"
COM_SPORTSMANAGER_STATE="Germany" COM_SPORTSMANAGER_STATE="Germany"
COM_SPORTSMANAGER_FEDERAL_="Federal " COM_SPORTSMANAGER_FEDERAL_="Federal "
COM_SPORTSMANAGER_INFO="Info" COM_SPORTSMANAGER_INFO="Info"
@@ -788,7 +811,6 @@ COM_SPORTSMANAGER_APPLIED_FOR="Applied"
COM_SPORTSMANAGER_DECLINED="Declined" COM_SPORTSMANAGER_DECLINED="Declined"
COM_SPORTSMANAGER_DATE_DETAILS="Event: Details" COM_SPORTSMANAGER_DATE_DETAILS="Event: Details"
COM_SPORTSMANAGER_ADDITIONS="Additions" COM_SPORTSMANAGER_ADDITIONS="Additions"
COM_SPORTSMANAGER_ADDITIONAL_INFORMATION="Additional information"
COM_SPORTSMANAGER_PUBLIC_EMAIL="E-mail public" COM_SPORTSMANAGER_PUBLIC_EMAIL="E-mail public"
COM_SPORTSMANAGER_EMAIL_WITH_CHANGES="E-mail for changes" COM_SPORTSMANAGER_EMAIL_WITH_CHANGES="E-mail for changes"
COM_SPORTSMANAGER_ACTION_TYPE="Action type" COM_SPORTSMANAGER_ACTION_TYPE="Action type"
@@ -864,6 +886,9 @@ COM_SPORTSMANAGER_INITIAL_APPOINTMENT_SUGGESTIONS="Initial appointment suggestio
COM_SPORTSMANAGER_REQUESTING_TEAM="Requesting team" COM_SPORTSMANAGER_REQUESTING_TEAM="Requesting team"
COM_SPORTSMANAGER_OPPONENT_TEAM="Opponent team" COM_SPORTSMANAGER_OPPONENT_TEAM="Opponent team"
COM_SPORTSMANAGER_AGAINST_PROPOSALS_ALLOWED="Against proposals allowed" COM_SPORTSMANAGER_AGAINST_PROPOSALS_ALLOWED="Against proposals allowed"
COM_SPORTSMANAGER_REASON_REQUIRED="Reason required"
COM_SPORTSMANAGER_CLUB_ENTITLEMENT="Club entitlement"
COM_SPORTSMANAGER_ASSOCIATION_ENTITLEMENT="Association_entitlement"
COM_SPORTSMANAGER_LEAD_TIME="Lead time" COM_SPORTSMANAGER_LEAD_TIME="Lead time"
COM_SPORTSMANAGER_APPOINTMENT_PROPOSALS_MINIMAL="Appointment proposals minimal" COM_SPORTSMANAGER_APPOINTMENT_PROPOSALS_MINIMAL="Appointment proposals minimal"
COM_SPORTSMANAGER_APPOINTMENT_PROPOSALS_MAXIMUM="Appointment proposals maximum" COM_SPORTSMANAGER_APPOINTMENT_PROPOSALS_MAXIMUM="Appointment proposals maximum"
@@ -873,6 +898,11 @@ COM_SPORTSMANAGER_OPTIONAL_BUT_SAME_IN_DOUBLES="Optional but both or none in dou
COM_SPORTSMANAGER_REQUIRED="Required" COM_SPORTSMANAGER_REQUIRED="Required"
COM_SPORTSMANAGER_RESULT_ONLY="Result only" COM_SPORTSMANAGER_RESULT_ONLY="Result only"
COM_SPORTSMANAGER_GAME_NUMBER="Game %d" COM_SPORTSMANAGER_GAME_NUMBER="Game %d"
COM_SPORTSMANAGER_LABEL_GAME_NUMBER="Game nr"
COM_SPORTSMANAGER_LABEL_GAME_TITLE="Gameday title"
COM_SPORTSMANAGER_EXPLICIT_PENALTIES="Explicit Penalties"
COM_SPORTSMANAGER_EXPLICIT_PENALTIES_EMAIL_SUBJECT="%s: received penalty"
COM_SPORTSMANAGER_EXPLICIT_PENALTIES_EMAIL_BODY="%s received a penalty of %f points based on the following justification: %s"
COM_SPORTSMANAGER_EMAIL_SHIFT_GAME_APPOINTMENT_SUBJECT="%s vs %s: Shift game appointment" COM_SPORTSMANAGER_EMAIL_SHIFT_GAME_APPOINTMENT_SUBJECT="%s vs %s: Shift game appointment"
COM_SPORTSMANAGER_EMAIL_SHIFT_GAME_APPOINTMENT_BODY="For match %s versus %s on %s in %s the game appointment is shifted by %s.\n\nAlternative appointments:\n\n" COM_SPORTSMANAGER_EMAIL_SHIFT_GAME_APPOINTMENT_BODY="For match %s versus %s on %s in %s the game appointment is shifted by %s.\n\nAlternative appointments:\n\n"
COM_SPORTSMANAGER_EMAIL_SHIFT_GAME_APPOINTMENT_REQUESTED_BODY="For match %s on %s in %s the game appointment is shifted by %s.\n\nPlease propose alternative appointments under %s" COM_SPORTSMANAGER_EMAIL_SHIFT_GAME_APPOINTMENT_REQUESTED_BODY="For match %s on %s in %s the game appointment is shifted by %s.\n\nPlease propose alternative appointments under %s"
@@ -925,8 +955,10 @@ COM_SPORTSMANAGER_NON_SMOKING_PROTECTION_MARK_NO=" (Kein Nichtraucherschutz)"
COM_SPORTSMANAGER_POINTS_TABLE="Points table" COM_SPORTSMANAGER_POINTS_TABLE="Points table"
COM_SPORTSMANAGER_EVALUATION="Auswertung" COM_SPORTSMANAGER_EVALUATION="Auswertung"
COM_SPORTSMANAGER_FUNCTION_DESCRIPTION="Variables: n = number of participants, p = place, m = multiplier of rating and in doubles possibly additionally reduced rating<br />Functions: +, -, *, /, round(x), pow(x), if(a > b, x, y), min(x, y), max(x, y), log(x), ln(x), logn(b, x)<br />VerteilungR(r, p, n, m) := max(round((((m * r - 1) * (-log(p / n) * (1 - (p / n)))) / (-log(1 / n) * (1 - (1 / n)))) + 1), 1)<br />Verteilung(r, p, n, m) := max(round(m * round((((r - 1) * (-log(p / n) * (1 - (p / n)))) / (-log(1 / n) * (1 - (1 / n)))) + 1)), 1)<br /><br />The functions VerteilungR() and Verteilung() distribute points for place 1 (r) descending to the individual places (p) of the number of participants (n).<br />VerteilungR() applies the multiplier (m) to the points for 1st place and then distributes down to 1 point for the last place.<br />Verteilung() applies the multiplier (m) to the points after the calculation, i.e. the last place receives 1 * m points." COM_SPORTSMANAGER_FUNCTION_DESCRIPTION="Variables: n = number of participants, p = place, m = multiplier of rating and in doubles possibly additionally reduced rating<br />Functions: +, -, *, /, round(x), pow(x), if(a > b, x, y), min(x, y), max(x, y), log(x), ln(x), logn(b, x)<br />VerteilungR(r, p, n, m) := max(round((((m * r - 1) * (-log(p / n) * (1 - (p / n)))) / (-log(1 / n) * (1 - (1 / n)))) + 1), 1)<br />Verteilung(r, p, n, m) := max(round(m * round((((r - 1) * (-log(p / n) * (1 - (p / n)))) / (-log(1 / n) * (1 - (1 / n)))) + 1)), 1)<br /><br />The functions VerteilungR() and Verteilung() distribute points for place 1 (r) descending to the individual places (p) of the number of participants (n).<br />VerteilungR() applies the multiplier (m) to the points for 1st place and then distributes down to 1 point for the last place.<br />Verteilung() applies the multiplier (m) to the points after the calculation, i.e. the last place receives 1 * m points."
COM_SPORTSMANAGER_LIZENZ="License" COM_SPORTSMANAGER_RANK="Rank"
; Edit Player
COM_SPORTSMANAGER_LIZENZ="License"
COM_SPORTSMANAGER_ARIA_LABEL_MATCHDAY_SELECT="Choose a match day" COM_SPORTSMANAGER_ARIA_LABEL_MATCHDAY_SELECT="Choose a match day"
COM_SPORTSMANAGER_ARIA_LABEL_PROPOSAL_DAY="Choose the day of the match proposal" COM_SPORTSMANAGER_ARIA_LABEL_PROPOSAL_DAY="Choose the day of the match proposal"
COM_SPORTSMANAGER_ARIA_LABEL_PROPOSAL_MONTH="Choose the month of the match proposal" COM_SPORTSMANAGER_ARIA_LABEL_PROPOSAL_MONTH="Choose the month of the match proposal"
@@ -991,3 +1023,79 @@ COM_SPORTSMANAGER_ARIA_LABEL_CLUB="Club"
COM_SPORTSMANAGER_NUM_REQUESTED_SHIFTS="Shifts" COM_SPORTSMANAGER_NUM_REQUESTED_SHIFTS="Shifts"
COM_SPORTSMANAGER_NUM_REQUESTED_SHFITS_TOOLTIP="Game shifts caused by this team" COM_SPORTSMANAGER_NUM_REQUESTED_SHFITS_TOOLTIP="Game shifts caused by this team"
COM_SPORTSMANAGER_GAME_RESULT_DELAYS="Delay" COM_SPORTSMANAGER_GAME_RESULT_DELAYS="Delay"
COM_SPORTSMANAGER_USE_EMAIL_REMINDERS="Use email reminders"
COM_SPORTSMANAGER_RULEBOOKS="Rulebooks"
COM_SPORTSMANAGER_RULEBOOK="Rulebook"
COM_SPORTSMANAGER_RULE_SHORT="Rule"
COM_SPORTSMANAGER_FEE_SHORT="Section fees"
COM_SPORTSMANAGER_RULE_LONG="Section rules"
COM_SPORTSMANAGER_FEE_LONG="Fee"
COM_SPORTSMANAGER_SELECT="Select"
COM_SPORTSMANAGER_NO_SELECT="No selection"
COM_SPORTSMANAGER_REALLY_REMOVE_RULEBOOK="Do you really want to remove this rulebook?"
COM_SPORTSMANAGER_ADD_RULEBOOK="Add rulebook"
COM_SPORTSMANAGER_DISCIPLINARY_FINES="Disciplinary fines"
COM_SPORTSMANAGER_ISSUE_DISCIPLINARY_FINES="Issue disciplinary fines"
COM_SPORTSMANAGER_ISSUE_DISCIPLINARY_FINE="Issue disciplinary fine"
COM_SPORTSMANAGER_EDIT_DISCIPLINARY_FINE="Edit issue disciplinary fine"
COM_SPORTSMANAGER_SEND_DISCIPLINARY_FINE="Send issue disciplinary fine"
COM_SPORTSMANAGER_REALLY_REMOVE_DISCIPLINARY_FINES="Do you really want to remove this Issue disciplinary fine?"
COM_SPORTSMANAGER_VIOLATIONS="Violations"
COM_SPORTSMANAGER_VIOLATION="Violation"
COM_SPORTSMANAGER_ADD_VIOLATION="Add violation"
COM_SPORTSMANAGER_REALLY_REMOVE_VIOLATION="Do you really want to remove this violation?"
COM_SPORTSMANAGER_VIOLATION_TEXT="Text"
COM_SPORTSMANAGER_VIOLATION_ADD_TEXT="Additional text"
COM_SPORTSMANAGER_FEE="Fee"
COM_SPORTSMANAGER_ADD_FEE="Additional Fee"
COM_SPORTSMANAGER_SELECTABLE="Selectable"
COM_SPORTSMANAGER_TEMPLATE="Template"
COM_SPORTSMANAGER_EMAIL_SUBJECT="Subject"
COM_SPORTSMANAGER_EMAIL_MESSAGE="Message"
COM_SPORTSMANAGER_EMAIL_TO="to"
COM_SPORTSMANAGER_EMAIL_SEND="Send E-Mail"
COM_SPORTSMANAGER_EMAIL_TEXT_TEMPLATE="Text template"
COM_SPORTSMANAGER_ISSUER="Issuer"
COM_SPORTSMANAGER_SENDER="Sender"
COM_SPORTSMANAGER_ISSUE_DATE="Issue date"
COM_SPORTSMANAGER_BILL_ISSUER="Bill issuer"
COM_SPORTSMANAGER_MULTIPLIER="Multiplier"
COM_SPORTSMANAGER_ADDITIONAL_INFORMATION="Additional information"
COM_SPORTSMANAGER_EMAIL_WAS_SEND="E-Mail was succesfully sent"
COM_SPORTSMANAGER_EMAIL_WAS_NOT_SEND="E-Mail was not sent"
COM_SPORTSMANAGER_OLD_DATE="Old Date"
COM_SPORTSMANAGER_NEW_DATE="New Date"
COM_SPORTSMANAGER_REASON_GAME_APPOINTMENT="Appointment reason"
COM_SPORTSMANAGER_MATCH_RESCHEDULINGS="Match reschedulings"
COM_SPORTSMANAGER_MATCH_RESCHEDULING="Match rescheduling"
COM_SPORTSMANAGER_MATCH_SWAPPING_HELP="If home advantage is swapped, enter the same date"
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"
COM_SPORTSMANAGER_ASSOCIATION_BODIES="Association bodies"
COM_SPORTSMANAGER_ASSOCIATION_BODY="Association body"
COM_SPORTSMANAGER_ADD_ASSOCIATION_BODY="Add association body"
COM_SPORTSMANAGER_REALLY_REMOVE_ASSOCIATION_BODY="Do you really want to remove this association body?"
COM_SPORTSMANAGER_INVALID_ASSOCIATION_BODY_NAME="Invalid association body name"
COM_SPORTSMANAGER_NAME_NOT_COMPLETE="The name is not completely filled in"
COM_SPORTSMANAGER_ADDITIONAL_INFO="Additional information"
COM_SPORTSMANAGER_USE_HTML="HTML-formatted text should be used here."
COM_SPORTSMANAGER_REALLY_REMOVE_ASSOCIATION_BODY_MEMBER="Do you really want to remove this association body member?"
COM_SPORTSMANAGER_HELP_EDIT_ASSOCIATION_BODY_MEMBER="Selecting a name from the player list will fill in the first and last name.<br>Phone, mobile, and email are filled from the player list if left blank here."
COM_SPORTSMANAGER_HALL_OF_FAME="Hall of Fame"
COM_SPORTSMANAGER_ADD_HALL_OF_FAME="Add Hall of Fame"
COM_SPORTSMANAGER_INVALID_HALL_OF_FAME_NAME="Invalid Hall of Fame name"
COM_SPORTSMANAGER_REALLY_REMOVE_HALL_OF_FAME="Are you sure you want to delete this Hall of Fame including all its members?"
COM_SPORTSMANAGER_MATCH_TYPE="Game Type"
COM_SPORTSMANAGER_REALLY_REMOVE_HALL_OF_FAME_YEAR="Are you sure you want to delete this Hall of Fame year?"
COM_SPORTSMANAGER_YEARS="Years"
COM_SPORTSMANAGER_ADD_HALL_OF_FAME_YEAR="Add Hall of Fame Year"
COM_SPORTSMANAGER_NO_ENTRY="no entry"
COM_SPORTSMANAGER_REALLY_SWAP_MATCH="Do you really want to swap the home advantage?"
COM_SPORTSMANAGER_SWAP_MATCH="Swap home advantage"
COM_SPORTSMANAGER_REALLY_DELETE_MATCH_REPORT="The match report and all its history will be deleted. Are you sure you want to delete the match report?"
COM_SPORTSMANAGER_MATCH_REPORT_DELETED="Match report deleted"
COM_SPORTSMANAGER_MATCH_REPORT_WAS_DELETED="The match report has been successfully deleted!"
COM_SPORTSMANAGER_MATCH_REPORT_CORRECTED="Match report corrected"
+244 -14
View File
@@ -137,6 +137,8 @@ return new class () implements InstallerScriptInterface
. "\n `tisch` tinytext DEFAULT NULL," . "\n `tisch` tinytext DEFAULT NULL,"
. "\n `zeitpunkt` datetime DEFAULT NULL," . "\n `zeitpunkt` datetime DEFAULT NULL,"
. "\n `spieltag` smallint(6) DEFAULT NULL," . "\n `spieltag` smallint(6) DEFAULT NULL,"
. "\n `spieltag_titel` VARCHAR(32) NOT NULL DEFAULT '',"
. "\n `spiel_nr` tinyint(4) DEFAULT NULL,"
. "\n `heim_punkte` smallint(6) DEFAULT NULL," . "\n `heim_punkte` smallint(6) DEFAULT NULL,"
. "\n `gast_punkte` smallint(6) DEFAULT NULL," . "\n `gast_punkte` smallint(6) DEFAULT NULL,"
. "\n `heim_spielpunkte` smallint(6) DEFAULT NULL," . "\n `heim_spielpunkte` smallint(6) DEFAULT NULL,"
@@ -668,6 +670,9 @@ return new class () implements InstallerScriptInterface
. "\n `ortsname` varchar(30) DEFAULT NULL," . "\n `ortsname` varchar(30) DEFAULT NULL,"
. "\n `ortsteil` varchar(30) DEFAULT NULL," . "\n `ortsteil` varchar(30) DEFAULT NULL,"
. "\n `url` varchar(150) DEFAULT NULL," . "\n `url` varchar(150) DEFAULT NULL,"
. "\n `telefon` varchar(64) DEFAULT NULL,"
. "\n `email` varchar(64) DEFAULT NULL,"
. "\n `ruhetage` varchar(64) DEFAULT NULL,"
. "\n `beschreibung` varchar(500) DEFAULT NULL," . "\n `beschreibung` varchar(500) DEFAULT NULL,"
. "\n `status` tinyint(1) NOT NULL DEFAULT '0'," . "\n `status` tinyint(1) NOT NULL DEFAULT '0',"
. "\n PRIMARY KEY (`spielort_id`)" . "\n PRIMARY KEY (`spielort_id`)"
@@ -680,7 +685,9 @@ return new class () implements InstallerScriptInterface
. "\n `teamgruppe_id` int(11) DEFAULT NULL," . "\n `teamgruppe_id` int(11) DEFAULT NULL,"
. "\n `verein_id` int(11) DEFAULT NULL," . "\n `verein_id` int(11) DEFAULT NULL,"
. "\n `veranstaltung_id` int(11) NOT NULL DEFAULT '0'," . "\n `veranstaltung_id` int(11) NOT NULL DEFAULT '0',"
. "\n `teamname` varchar(50) NOT NULL," . "\n `setzliste_nr` tinyint(4) DEFAULT NULL,"
. "\n `teamname` varchar(50) NOT NULL DEFAULT '',"
. "\n `teamname_kurz` VARCHAR(24) NOT NULL DEFAULT '',"
. "\n `tischtyp` varchar(200) DEFAULT NULL," . "\n `tischtyp` varchar(200) DEFAULT NULL,"
. "\n `tischeigenschaften` varchar(200) DEFAULT NULL," . "\n `tischeigenschaften` varchar(200) DEFAULT NULL,"
. "\n `zusatzpunkte` float(6,2) DEFAULT NULL," . "\n `zusatzpunkte` float(6,2) DEFAULT NULL,"
@@ -688,6 +695,7 @@ return new class () implements InstallerScriptInterface
. "\n `heimspiel_wochentag` tinyint(4) DEFAULT NULL," . "\n `heimspiel_wochentag` tinyint(4) DEFAULT NULL,"
. "\n `heimspiel_uhrzeit` smallint(6) DEFAULT NULL," . "\n `heimspiel_uhrzeit` smallint(6) DEFAULT NULL,"
. "\n `heimspielort_id` int(11) DEFAULT NULL," . "\n `heimspielort_id` int(11) DEFAULT NULL,"
. "\n `trainingstage` varchar(64) DEFAULT NULL,"
. "\n `nichtraucherschutz` tinyint(4) DEFAULT '0'," . "\n `nichtraucherschutz` tinyint(4) DEFAULT '0',"
. "\n `platz` smallint(6) DEFAULT NULL," . "\n `platz` smallint(6) DEFAULT NULL,"
. "\n `gesamtpunkte` float(6,2) DEFAULT NULL," . "\n `gesamtpunkte` float(6,2) DEFAULT NULL,"
@@ -714,6 +722,18 @@ return new class () implements InstallerScriptInterface
$db->setQuery( $query ); $db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); } if (!$db->execute()) { die($db->stderr(true)); }
$query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_team_strafen` ("
. "\n `team_strafen_id` int(11) NOT NULL AUTO_INCREMENT,"
. "\n `zeitpunkt` datetime NOT NULL,"
. "\n `moderator_user_id` int(11) DEFAULT NULL,"
. "\n `team_id` int(11) NOT NULL DEFAULT '0',"
. "\n `strafe` float(6,2) NOT NULL DEFAULT '0',"
. "\n `beschreibung` text NOT NULL,"
. "\n PRIMARY KEY (`team_strafen_id`)"
. "\n) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_teamansprechpartner` (" $query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_teamansprechpartner` ("
. "\n `kontaktperson_id` int(11) NOT NULL AUTO_INCREMENT," . "\n `kontaktperson_id` int(11) NOT NULL AUTO_INCREMENT,"
. "\n `team_id` int(11) NOT NULL DEFAULT '0'," . "\n `team_id` int(11) NOT NULL DEFAULT '0',"
@@ -901,6 +921,7 @@ return new class () implements InstallerScriptInterface
. "\n `erster_tag` date NOT NULL DEFAULT '0000-00-00'," . "\n `erster_tag` date NOT NULL DEFAULT '0000-00-00',"
. "\n `letzter_tag` date DEFAULT NULL," . "\n `letzter_tag` date DEFAULT NULL,"
. "\n `kategorie` tinyint(4) DEFAULT '1'," . "\n `kategorie` tinyint(4) DEFAULT '1',"
. "\n `reminder_count` tinyint DEFAULT '0',"
. "\n PRIMARY KEY (`turnier_id`)," . "\n PRIMARY KEY (`turnier_id`),"
. "\n KEY `saison_id` (`saison_id`)," . "\n KEY `saison_id` (`saison_id`),"
. "\n KEY `veranstalter_id` (`veranstalter_id`)" . "\n KEY `veranstalter_id` (`veranstalter_id`)"
@@ -1001,7 +1022,7 @@ return new class () implements InstallerScriptInterface
$db->setQuery( $query ); $db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); } if (!$db->execute()) { die($db->stderr(true)); }
$query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_unbestaetigtes_ergebnis` (" $query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_unbestaetigtes_ergebnis` ("
. "\n `unbestaetigtes_ergebnis_id` int(11) NOT NULL AUTO_INCREMENT," . "\n `unbestaetigtes_ergebnis_id` int(11) NOT NULL AUTO_INCREMENT,"
. "\n `begegnung_id` int(11) NOT NULL DEFAULT '0'," . "\n `begegnung_id` int(11) NOT NULL DEFAULT '0',"
. "\n `vorschlagendes_team_id` int(11) NOT NULL DEFAULT '0'," . "\n `vorschlagendes_team_id` int(11) NOT NULL DEFAULT '0',"
@@ -1009,7 +1030,7 @@ return new class () implements InstallerScriptInterface
. "\n `kommentar` varchar(255) DEFAULT NULL," . "\n `kommentar` varchar(255) DEFAULT NULL,"
. "\n `vorgeschlagen` datetime DEFAULT NULL," . "\n `vorgeschlagen` datetime DEFAULT NULL,"
. "\n PRIMARY KEY (`unbestaetigtes_ergebnis_id`)," . "\n PRIMARY KEY (`unbestaetigtes_ergebnis_id`),"
. "\n KEY `begegnung_id` (`begegnung_id`)," . "\n UNIQUE KEY `begegnung_id` (`begegnung_id`),"
. "\n KEY `vorschlagendes_team_id` (`vorschlagendes_team_id`)" . "\n KEY `vorschlagendes_team_id` (`vorschlagendes_team_id`)"
. "\n) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;"; . "\n) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
$db->setQuery( $query ); $db->setQuery( $query );
@@ -1030,15 +1051,19 @@ return new class () implements InstallerScriptInterface
. "\n `saison_id` int(11) NOT NULL DEFAULT '0'," . "\n `saison_id` int(11) NOT NULL DEFAULT '0',"
. "\n `veranstalter_id` int(11) NOT NULL DEFAULT '0'," . "\n `veranstalter_id` int(11) NOT NULL DEFAULT '0',"
. "\n `bezeichnung` varchar(50) DEFAULT NULL," . "\n `bezeichnung` varchar(50) DEFAULT NULL,"
. "\n `regelwerke_id` INT(11) NOT NULL DEFAULT '0',"
. "\n `modus_id` int(11) NOT NULL DEFAULT '0'," . "\n `modus_id` int(11) NOT NULL DEFAULT '0',"
. "\n `verschieberegel_id` int(11) NOT NULL DEFAULT '0'," . "\n `verschieberegel_id` int(11) NOT NULL DEFAULT '0',"
. "\n `tabellenwertung` tinyint(4) NOT NULL DEFAULT '0'," . "\n `tabellenwertung` tinyint(4) NOT NULL DEFAULT '0',"
. "\n `direktervergleich` tinyint(4) NOT NULL DEFAULT '0',"
. "\n `unterteilung` tinyint(4) NOT NULL DEFAULT '0'," . "\n `unterteilung` tinyint(4) NOT NULL DEFAULT '0',"
. "\n `spieltag_titel_zeigen` INT(4) NOT NULL DEFAULT '0',"
. "\n `erster_tag` date NOT NULL DEFAULT '0000-00-00'," . "\n `erster_tag` date NOT NULL DEFAULT '0000-00-00',"
. "\n `letzter_tag` date DEFAULT NULL," . "\n `letzter_tag` date DEFAULT NULL,"
. "\n `elo_wertung` tinyint(4) DEFAULT NULL," . "\n `elo_wertung` tinyint(4) DEFAULT NULL,"
. "\n `logo_url` TINYTEXT NOT NULL," . "\n `explizite_strafen` tinyint(4) DEFAULT '0',"
. "\n `ticker_logo_url` TINYTEXT NOT NULL," . "\n `logo_url` TINYTEXT NOT NULL,"
. "\n `ticker_logo_url` TINYTEXT NOT NULL,"
. "\n `status` tinyint(4) NOT NULL DEFAULT '0'," . "\n `status` tinyint(4) NOT NULL DEFAULT '0',"
. "\n `reihenfolge` tinyint(4) DEFAULT '1'," . "\n `reihenfolge` tinyint(4) DEFAULT '1',"
. "\n `kategorie` tinyint(4) DEFAULT '1'," . "\n `kategorie` tinyint(4) DEFAULT '1',"
@@ -1060,6 +1085,7 @@ return new class () implements InstallerScriptInterface
. "\n `url` varchar(150) DEFAULT NULL," . "\n `url` varchar(150) DEFAULT NULL,"
. "\n `beschreibung` varchar(500) DEFAULT NULL," . "\n `beschreibung` varchar(500) DEFAULT NULL,"
. "\n `ausgetreten` tinyint(1) DEFAULT '0'," . "\n `ausgetreten` tinyint(1) DEFAULT '0',"
. "\n `verstecken` INT(4) NOT NULL DEFAULT '0',"
. "\n PRIMARY KEY (`verein_id`)," . "\n PRIMARY KEY (`verein_id`),"
. "\n KEY `veranstalter_id` (`veranstalter_id`)" . "\n KEY `veranstalter_id` (`veranstalter_id`)"
. "\n) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;"; . "\n) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
@@ -1088,16 +1114,19 @@ return new class () implements InstallerScriptInterface
if (!$db->execute()) { die($db->stderr(true)); } if (!$db->execute()) { die($db->stderr(true)); }
$query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_verschieberegel` (" $query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_verschieberegel` ("
. "\n `verschieberegel_id` int(11) NOT NULL AUTO_INCREMENT," . "\n `verschieberegel_id` int(11) NOT NULL AUTO_INCREMENT,"
. "\n `bezeichnung` varchar(50) NOT NULL DEFAULT ''," . "\n `bezeichnung` varchar(50) NOT NULL DEFAULT '',"
. "\n `initial_ohne_termin` tinyint(1) NOT NULL DEFAULT '0'," . "\n `initial_ohne_termin` tinyint(1) NOT NULL DEFAULT '0',"
. "\n `keine_gegenvorschlaege` tinyint(1) NOT NULL DEFAULT '0'," . "\n `keine_gegenvorschlaege` tinyint(1) NOT NULL DEFAULT '0',"
. "\n `vorlaufzeit_tage` tinyint(4) NOT NULL DEFAULT '0'," . "\n `vorlaufzeit_tage` tinyint(4) NOT NULL DEFAULT '0',"
. "\n `termine_minimal` tinyint(4) NOT NULL DEFAULT '0'," . "\n `termine_minimal` tinyint(4) NOT NULL DEFAULT '0',"
. "\n `termine_maximal` tinyint(4) NOT NULL DEFAULT '0'," . "\n `termine_maximal` tinyint(4) NOT NULL DEFAULT '0',"
. "\n `ablehnen` tinyint(1) NOT NULL DEFAULT '0'," . "\n `ablehnen` tinyint(1) NOT NULL DEFAULT '0',"
. "\n PRIMARY KEY (`verschieberegel_id`)" . "\n `begruendung_erforderlich` int(1) NOT NULL DEFAULT 0,"
. "\n) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;"; . "\n `vereine_berechtigt` int(1) NOT NULL DEFAULT 1,"
. "\n `verband_berechtigt` int(1) NOT NULL DEFAULT 0,"
. "\n PRIMARY KEY (`verschieberegel_id`)"
. "\n) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
$db->setQuery( $query ); $db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); } if (!$db->execute()) { die($db->stderr(true)); }
@@ -1110,7 +1139,140 @@ return new class () implements InstallerScriptInterface
$db->setQuery( $query ); $db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); } if (!$db->execute()) { die($db->stderr(true)); }
$query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'datenbank_version', wert = '103';"; $query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_regelwerke` ("
. "\n `regelwerke_id` int(11) NOT NULL AUTO_INCREMENT,"
. "\n `regelwerk` varchar(32) NOT NULL,"
. "\n PRIMARY KEY (`regelwerke_id`),"
. "\n UNIQUE KEY `regelwerk` (`regelwerk`)"
. "\n ) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_verstoesse` ("
. "\n `verstoesse_id` int(11) NOT NULL AUTO_INCREMENT,"
. "\n `regelwerke_id` int(11) NOT NULL DEFAULT 0,"
. "\n `paragraph_spo` varchar(32) NOT NULL DEFAULT '',"
. "\n `paragraph_go` varchar(32) NOT NULL DEFAULT '',"
. "\n `verstoss` varchar(64) NOT NULL DEFAULT '',"
. "\n `haupttext` text NOT NULL,"
. "\n `zusatztext` text NOT NULL,"
. "\n `gebuehr` smallint(3) NOT NULL DEFAULT 0,"
. "\n `zusatzgebuehr` smallint(2) NOT NULL DEFAULT 0,"
. "\n `zur_auswahl` tinyint(1) NOT NULL DEFAULT 1,"
. "\n PRIMARY KEY (`verstoesse_id`)"
. "\n ) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_ordnungsstrafen` ("
. "\n `ordnungsstrafen_id` int(11) NOT NULL AUTO_INCREMENT,"
. "\n `verstoesse_id` int(11) NOT NULL DEFAULT 0,"
. "\n `begegnung_id` int(11) NOT NULL DEFAULT 0,"
. "\n `team_id` int(11) NOT NULL DEFAULT 0,"
. "\n `aussteller_id` int(11) NOT NULL DEFAULT 0,"
. "\n `ausstelldatum` datetime NOT NULL DEFAULT current_timestamp(),"
. "\n `versender_id` int(11) DEFAULT NULL,"
. "\n `versendedatum` datetime DEFAULT NULL,"
. "\n `rechnungssteller_id` int(11) DEFAULT NULL,"
. "\n `rechnungsdatum` datetime DEFAULT NULL,"
. "\n `multiplikator` tinyint(1) NOT NULL DEFAULT 1,"
. "\n `weitere_angaben` text NOT NULL,"
. "\n PRIMARY KEY (`ordnungsstrafen_id`)"
. "\n ) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_email_vorlagen` ("
. "\n `email_vorlagen_id` int(11) NOT NULL AUTO_INCREMENT,"
. "\n `vorlage` varchar(64) NOT NULL,"
. "\n `betreff` varchar(256) NOT NULL DEFAULT '',"
. "\n `von` varchar(64) NOT NULL DEFAULT '',"
. "\n `an` varchar(256) NOT NULL DEFAULT '',"
. "\n `cc` varchar(256) NOT NULL DEFAULT '',"
. "\n `bcc` varchar(256) NOT NULL DEFAULT '',"
. "\n `email_text` text NOT NULL,"
. "\n PRIMARY KEY (`email_vorlagen_id`),"
. "\n UNIQUE KEY `vorlage` (`vorlage`)"
. "\n ) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_verbandsorgane` ("
. "\n `verbandsorgane_id` int(11) NOT NULL AUTO_INCREMENT,"
. "\n `veranstalter_id` int(11) DEFAULT NULL,"
. "\n `verbandsorgan` varchar(32) DEFAULT NULL,"
. "\n `kategorie` int(4) DEFAULT NULL,"
. "\n `reihenfolge` int(4) DEFAULT NULL,"
. "\n `email` varchar(64) DEFAULT NULL,"
. "\n `beschreibung` text NOT NULL,"
. "\n PRIMARY KEY (`verbandsorgane_id`),"
. "\n KEY (`veranstalter_id`)"
. "\n ) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_mitglied_von_verbandsorgan` ("
. "\n `mitglied_von_verbandsorgan_id` int(11) NOT NULL AUTO_INCREMENT,"
. "\n `verbandsorgane_id` int(11) DEFAULT NULL,"
. "\n `funktion` varchar(32) DEFAULT NULL,"
. "\n `zusatzinfo` varchar(64) DEFAULT NULL,"
. "\n `spieler_id` int(11) DEFAULT NULL,"
. "\n `nachname` varchar(32) DEFAULT NULL,"
. "\n `vorname` varchar(32) DEFAULT NULL,"
. "\n `email` varchar(64) DEFAULT NULL,"
. "\n `telefon` varchar(32) DEFAULT NULL,"
. "\n `mobil` varchar(32) DEFAULT NULL,"
. "\n `reihenfolge` int(11) DEFAULT NULL,"
. "\n PRIMARY KEY (`mitglied_von_verbandsorgan_id`),"
. "\n KEY (`verbandsorgane_id`),"
. "\n KEY (`spieler_id`)"
. "\n ) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_halloffame` ("
. "\n `halloffame_id` int(11) NOT NULL AUTO_INCREMENT,"
. "\n `veranstalter_id` int(11) DEFAULT NULL,"
. "\n `halloffame` varchar(64) DEFAULT NULL,"
. "\n `kategorie` int(4) DEFAULT NULL,"
. "\n `spielform` int(11) DEFAULT NULL,"
. "\n `reihenfolge` int(4) DEFAULT NULL,"
. "\n PRIMARY KEY (`halloffame_id`),"
. "\n KEY `veranstalter_id` (`veranstalter_id`)"
. "\n ) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_mitglied_von_halloffame` ("
. "\n `mitglied_halloffame_id` int(11) NOT NULL AUTO_INCREMENT,"
. "\n `halloffame_id` int(11) NOT NULL,"
. "\n `jahr` int(4) DEFAULT NULL,"
. "\n `platz` int(11) DEFAULT NULL,"
. "\n `verein_id` int(11) DEFAULT NULL,"
. "\n `teamname` varchar(64) DEFAULT NULL,"
. "\n `spieler1_id` int(11) DEFAULT NULL,"
. "\n `spieler1` varchar(64) DEFAULT NULL,"
. "\n `spieler2_id` int(11) DEFAULT NULL,"
. "\n `spieler2` varchar(64) DEFAULT NULL,"
. "\n PRIMARY KEY (`mitglied_halloffame_id`),"
. "\n UNIQUE KEY `halloffame_jahr_platz` (`halloffame_id`,`jahr`,`platz`),"
. "\n KEY `halloffame_id` (`halloffame_id`),"
. "\n KEY `verein_id` (`verein_id`),"
. "\n KEY `spieler1_id` (`spieler1_id`),"
. "\n KEY `spieler2_id` (`spieler2_id`)"
. "\n ) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'verbands_kuerzel', wert = 'tbe.';";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'datenbank_version', wert = '119';";
$db->setQuery( $query ); $db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); } if (!$db->execute()) { die($db->stderr(true)); }
@@ -1118,11 +1280,11 @@ return new class () implements InstallerScriptInterface
$db->setQuery( $query ); $db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); } if (!$db->execute()) { die($db->stderr(true)); }
$query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'spielerliste_elo', wert = '0';"; $query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'spielerliste_elo', wert = '0';";
$db->setQuery( $query ); $db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); } if (!$db->execute()) { die($db->stderr(true)); }
$query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'ansprechpartner_ausblenden', wert = '0';"; $query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'ansprechpartner_ausblenden', wert = '0';";
$db->setQuery( $query ); $db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); } if (!$db->execute()) { die($db->stderr(true)); }
@@ -1130,11 +1292,43 @@ return new class () implements InstallerScriptInterface
$db->setQuery( $query ); $db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); } if (!$db->execute()) { die($db->stderr(true)); }
$query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'anzahl_mitglieder_zeigen', wert = '0';";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'verband_anzeigen', wert = '1';";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'turnierbaum_zeigen', wert = '0';";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'ordnungsstrafen_verwenden', wert = '0';";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'spalte_mitglieder_zeigen', wert = '1';";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'enable_email_reminders', wert = '0';";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "INSERT INTO #__sportsmanager_verschieberegel (bezeichnung, initial_ohne_termin, keine_gegenvorschlaege, vorlaufzeit_tage, termine_minimal, termine_maximal, ablehnen)" $query = "INSERT INTO #__sportsmanager_verschieberegel (bezeichnung, initial_ohne_termin, keine_gegenvorschlaege, vorlaufzeit_tage, termine_minimal, termine_maximal, ablehnen)"
. "\n VALUES ('Beliebig', '0', '0', '0', '1', '3', '0');"; . "\n VALUES ('Beliebig', '0', '0', '0', '1', '3', '0');";
$db->setQuery($query); $db->setQuery($query);
if (!$db->execute()) { die($db->stderr(true)); } if (!$db->execute()) { die($db->stderr(true)); }
$query = "INSERT IGNORE INTO `#__sportsmanager_email_vorlagen` (`email_vorlagen_id`, `vorlage`) VALUES (NULL, 'Ordnungsstrafe');";
$db->setQuery($query);
if (!$db->execute()) { die($db->stderr(true)); }
$query = "INSERT IGNORE INTO `#__sportsmanager_email_vorlagen` (`email_vorlagen_id`, `vorlage`) VALUES (NULL, 'Spielverlegung');";
$db->setQuery($query);
if (!$db->execute()) { die($db->stderr(true)); }
$query = "INSERT #__sportsmanager_rangliste_system" $query = "INSERT #__sportsmanager_rangliste_system"
. "\n SET systembezeichnung = 'Klostermann/Wahle (1 Punkt für letzten Platz)'," . "\n SET systembezeichnung = 'Klostermann/Wahle (1 Punkt für letzten Platz)',"
. "\n status = '1'," . "\n status = '1',"
@@ -1567,6 +1761,10 @@ return new class () implements InstallerScriptInterface
$db->setQuery( $query ); $db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); } if (!$db->execute()) { die($db->stderr(true)); }
$query = "DROP TABLE IF EXISTS `#__sportsmanager_team_strafen`;";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "DROP TABLE IF EXISTS `#__sportsmanager_turnier`;"; $query = "DROP TABLE IF EXISTS `#__sportsmanager_turnier`;";
$db->setQuery( $query ); $db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); } if (!$db->execute()) { die($db->stderr(true)); }
@@ -1622,5 +1820,37 @@ return new class () implements InstallerScriptInterface
$query = "DROP TABLE IF EXISTS `#__sportsmanager_verteiler`;"; $query = "DROP TABLE IF EXISTS `#__sportsmanager_verteiler`;";
$db->setQuery( $query ); $db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); } if (!$db->execute()) { die($db->stderr(true)); }
$query = "DROP TABLE IF EXISTS `#__sportsmanager_regelwerke`;";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "DROP TABLE IF EXISTS `#__sportsmanager_verstoesse`;";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "DROP TABLE IF EXISTS `#__sportsmanager_ordnungsstrafen`;";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "DROP TABLE IF EXISTS `#__sportsmanager_email_vorlagen`;";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "DROP TABLE IF EXISTS `#__sportsmanager_verbandsorgane`;";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "DROP TABLE IF EXISTS `#__sportsmanager_mitglied_von_verbandsorgan`;";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "DROP TABLE IF EXISTS `#__sportsmanager_halloffame`;";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "DROP TABLE IF EXISTS `#__sportsmanager_mitglied_von_halloffame`;";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
} }
}; };
+1 -1
View File
@@ -6,7 +6,7 @@
<authorEmail>it@dtfb.de</authorEmail> <authorEmail>it@dtfb.de</authorEmail>
<copyright>All rights reserved</copyright> <copyright>All rights reserved</copyright>
<license>GNU/GPL</license> <license>GNU/GPL</license>
<version>2.0.0</version> <version>DEV</version>
<description>Verwaltung von Spielern und Vereinen in Mannschafts- und Individualwettbewerben</description> <description>Verwaltung von Spielern und Vereinen in Mannschafts- und Individualwettbewerben</description>
<namespace path="src">Dtfb\Component\com_sportsmanager</namespace> <namespace path="src">Dtfb\Component\com_sportsmanager</namespace>
<files folder="site"> <files folder="site">