Compare commits

...

129 Commits

Author SHA1 Message Date
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
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
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
17 changed files with 16678 additions and 10615 deletions
+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,13 @@ 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_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,13 @@ 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_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
@@ -5291,6 +5291,283 @@ function updateDatabase(): void
} }
} }
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 ($termin_aktionen_email_setzen) { if ($termin_aktionen_email_setzen) {
$query = "SELECT aktion_user_id, termin_aktion_id" $query = "SELECT aktion_user_id, termin_aktion_id"
. "\n FROM #__sportsmanager_termin_aktion"; . "\n FROM #__sportsmanager_termin_aktion";
@@ -42,11 +42,14 @@ require_once JPATH_SITE . '/components/com_sportsmanager/views/sportsmanager/vie
require_once JPATH_SITE . '/components/com_sportsmanager/views/sportsmanager/view_admin.php'; require_once JPATH_SITE . '/components/com_sportsmanager/views/sportsmanager/view_admin.php';
require_once JPATH_SITE . '/components/com_sportsmanager/views/sportsmanager/view_ticker.php'; require_once JPATH_SITE . '/components/com_sportsmanager/views/sportsmanager/view_ticker.php';
require_once JPATH_SITE . '/components/com_sportsmanager/util/image.php'; require_once JPATH_SITE . '/components/com_sportsmanager/util/image.php';
require_once JPATH_SITE . '/components/com_sportsmanager/util/email.php';
require_once JPATH_SITE . '/components/com_sportsmanager/database/update.php'; // will also include init.php and util.php require_once JPATH_SITE . '/components/com_sportsmanager/database/update.php'; // will also include init.php and util.php
initDatabase(); initDatabase();
updateDatabase(); updateDatabase();
sentEmailReminders();
if (isset($_POST['filter_saison_id'])) if (isset($_POST['filter_saison_id']))
setcookie('sportsmanager_filter_saison_id', $_POST['filter_saison_id'], time() + (60 * 60 * 24)); setcookie('sportsmanager_filter_saison_id', $_POST['filter_saison_id'], time() + (60 * 60 * 24));
else if (isset($_REQUEST['filter_saison_id'])) else if (isset($_REQUEST['filter_saison_id']))
@@ -212,6 +215,24 @@ if ($task == "spielerbild") {
case 'admin_verschieben_modus_remove': case 'admin_verschieben_modus_remove':
adminRemoveVerschiebenModus(); adminRemoveVerschiebenModus();
break; break;
case 'admin_spielverlegungen';
adminSpielverlegungen();
break;
case 'admin_spielverlegung_edit';
adminEditSpielverlegung();
break;
case 'admin_spielverlegung_save';
adminSaveSpielverlegung();
break;
case 'admin_spielverlegung_remove';
adminRemoveSpielverlegung();
break;
case 'admin_spielverlegungen_export':
adminExportSpielverlegungen();
break;
case 'admin_spielverlegung_mailen';
adminSpielverlegungMailen();
break;
case 'admin_kategorien': case 'admin_kategorien':
adminKategorien(); adminKategorien();
break; break;
@@ -347,6 +368,60 @@ if ($task == "spielerbild") {
case 'admin_rechnung_remove': case 'admin_rechnung_remove':
adminRemoveRechnung(); adminRemoveRechnung();
break; break;
case 'admin_joomla_mail_senden':
sendJoomlaMail();
break;
case 'admin_regelwerke':
adminRegelwerke();
break;
case 'admin_regelwerk_edit':
adminEditRegelwerk();
break;
case 'admin_regelwerk_save':
adminSaveRegelwerk();
break;
case 'admin_regelwerk_remove':
adminRemoveRegelwerk();
break;
case 'admin_ordnungsstrafe_mailen':
adminOrdnungsstrafeMailen();
break;
case 'admin_ordnungsstrafen':
adminOrdnungsstrafen();
break;
case 'admin_ordnungsstrafe_edit':
adminEditOrdnungsstrafe();
break;
case 'admin_ordnungsstrafe_save':
adminSaveOrdnungsstrafe();
break;
case 'admin_ordnungsstrafe_remove':
adminRemoveOrdnungsstrafe();
break;
case 'admin_ordnungsstrafen_export':
adminExportOrdnungsstrafen();
break;
case 'admin_verstoesse':
adminVerstoesse();
break;
case 'admin_verstoss_edit':
adminEditVerstoss();
break;
case 'admin_verstoss_save':
adminSaveVerstoss();
break;
case 'admin_verstoss_remove':
adminRemoveVerstoss();
break;
case 'admin_ordnungsstrafen_vorlage':
adminEditEmailVorlage('Ordnungsstrafe');
break;
case 'admin_spielverlegung_vorlage';
adminEditEmailVorlage('Spielverlegung');
break;
case 'admin_email_vorlage_save':
adminSaveEmailVorlage();
break;
case 'admin_moderatoren': case 'admin_moderatoren':
adminModeratoren(); adminModeratoren();
break; break;
@@ -984,6 +1059,8 @@ if ($task == "spielerbild") {
adminTermine(0); adminTermine(0);
break; break;
} }
} else if ($content == 'spielverlegungen') {
spielverlegungen();
} else if ($content == 'login') { } else if ($content == 'login') {
userAuth(); userAuth();
} else if ($content == 'login_refresh') { } else if ($content == 'login_refresh') {
@@ -1186,7 +1263,7 @@ function benutzerVeranstaltungModerator($veranstaltung_id = NULL): bool
return false; return false;
$user_id = Factory::getContainer()->get(SiteApplication::class)->getIdentity()->id; $user_id = Factory::getContainer()->get(SiteApplication::class)->getIdentity()->id;
$query = "SELECT * 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"; $query = "SELECT * 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";
if ($veranstaltung_id != NULL) if ($veranstaltung_id != NULL)
$query .= " AND berechtigt_veranstaltung_id = $veranstaltung_id"; $query .= " AND berechtigt_veranstaltung_id = $veranstaltung_id";
$rows = loadObjectList($db, $query); $rows = loadObjectList($db, $query);
@@ -1204,7 +1281,7 @@ function benutzerVeranstaltungIdsModerator(): array
return array(); return array();
$user_id = Factory::getContainer()->get(SiteApplication::class)->getIdentity()->id; $user_id = Factory::getContainer()->get(SiteApplication::class)->getIdentity()->id;
$query = "SELECT DISTINCT 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"; $query = "SELECT DISTINCT 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";
$rows = loadObjectList($db, $query); $rows = loadObjectList($db, $query);
$ids = array(); $ids = array();
@@ -1222,7 +1299,7 @@ function benutzerTurnierModerator($turnier_id = NULL): bool
return false; return false;
$user_id = Factory::getContainer()->get(SiteApplication::class)->getIdentity()->id; $user_id = Factory::getContainer()->get(SiteApplication::class)->getIdentity()->id;
$query = "SELECT * FROM #__sportsmanager_berechtigt_fuer_turnier INNER JOIN #__sportsmanager_turnier ON turnier_id = berechtigt_turnier_id WHERE berechtigt_user_id = $user_id AND DATEDIFF(letzter_tag, NOW()) >= -14"; $query = "SELECT * FROM #__sportsmanager_berechtigt_fuer_turnier INNER JOIN #__sportsmanager_turnier ON turnier_id = berechtigt_turnier_id WHERE berechtigt_user_id = $user_id AND DATEDIFF(letzter_tag, NOW()) >= -21";
if ($turnier_id != NULL) if ($turnier_id != NULL)
$query .= " AND berechtigt_turnier_id = $turnier_id"; $query .= " AND berechtigt_turnier_id = $turnier_id";
$rows = loadObjectList($db, $query); $rows = loadObjectList($db, $query);
@@ -2385,6 +2462,24 @@ function turnierbaumAnzeigen($veranstaltung): void
else else
$begegnungen[$begegnung['Spieltag_Nr'] + 1][round($begegnung['Spiel_Nr'] / 2)]['gast'] = htmlentities($begegnung['Gast']); $begegnungen[$begegnung['Spieltag_Nr'] + 1][round($begegnung['Spiel_Nr'] / 2)]['gast'] = htmlentities($begegnung['Gast']);
} }
} else
if ($begegnung['Heim_Satzpunkte'] == $begegnung['Gast_Satzpunkte'] && $begegnung['Heim_Tore'] > $begegnung['Gast_Tore']) {
$begegnungen[$begegnung['Spieltag_Nr']][$begegnung['Spiel_Nr']]['sieger'] = 1;
if ($begegnung['Spieltag_Nr'] < $anzahlRunden){
if (round($begegnung['Spiel_Nr'] % 2))
$begegnungen[$begegnung['Spieltag_Nr'] + 1][round($begegnung['Spiel_Nr'] / 2)]['heim'] = htmlentities($begegnung['Heim']);
else
$begegnungen[$begegnung['Spieltag_Nr'] + 1][round($begegnung['Spiel_Nr'] / 2)]['gast'] = htmlentities($begegnung['Heim']);
}
} else
if ($begegnung['Heim_Satzpunkte'] == $begegnung['Gast_Satzpunkte'] && $begegnung['Heim_Tore'] < $begegnung['Gast_Tore']) {
$begegnungen[$begegnung['Spieltag_Nr']][$begegnung['Spiel_Nr']]['sieger'] = 2;
if ($begegnung['Spieltag_Nr'] < $anzahlRunden){
if (round($begegnung['Spiel_Nr'] % 2))
$begegnungen[$begegnung['Spieltag_Nr'] + 1][round($begegnung['Spiel_Nr'] / 2)]['heim'] = htmlentities($begegnung['Gast']);
else
$begegnungen[$begegnung['Spieltag_Nr'] + 1][round($begegnung['Spiel_Nr'] / 2)]['gast'] = htmlentities($begegnung['Gast']);
}
} else { } else {
$begegnungen[$begegnung['Spieltag_Nr']][$begegnung['Spiel_Nr']]['sieger'] = 0; $begegnungen[$begegnung['Spieltag_Nr']][$begegnung['Spiel_Nr']]['sieger'] = 0;
} }
@@ -2407,7 +2502,7 @@ function begegnungenAnzeigen($veranstaltung, $verein_id, $spielort_id, $zeitfens
. "\n (SELECT vorschlagendes_team_id FROM #__sportsmanager_unbestaetigtes_ergebnis AS tt1 WHERE tt1.begegnung_id = t1.begegnung_id LIMIT 1) AS unbestaetigtes_ergebnis_team_id," . "\n (SELECT vorschlagendes_team_id FROM #__sportsmanager_unbestaetigtes_ergebnis AS tt1 WHERE tt1.begegnung_id = t1.begegnung_id LIMIT 1) AS unbestaetigtes_ergebnis_team_id,"
. "\n (SELECT IF(aktion NOT IN (0, 3, 4), NULL, tt1.eingetragen) FROM #__sportsmanager_begegnung_historie AS tt1 USE INDEX (begegnung_id) WHERE tt1.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verlegung_eingetragen," . "\n (SELECT IF(aktion NOT IN (0, 3, 4), NULL, tt1.eingetragen) FROM #__sportsmanager_begegnung_historie AS tt1 USE INDEX (begegnung_id) WHERE tt1.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verlegung_eingetragen,"
. "\n (SELECT verantwortlich_team_id FROM #__sportsmanager_begegnung_historie AS tt1 USE INDEX (begegnung_id) WHERE tt1.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verantwortlich_team_id," . "\n (SELECT verantwortlich_team_id FROM #__sportsmanager_begegnung_historie AS tt1 USE INDEX (begegnung_id) WHERE tt1.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verantwortlich_team_id,"
. "\n IF(NOT ISNULL(t6.verschieberegel_id) AND (t6.vorlaufzeit_tage = 0 OR DATEDIFF(zeitpunkt, CURDATE()) >= t6.vorlaufzeit_tage), 1, 0) AS verschieberegel_erfuellt" . "\n IF(NOT ISNULL(t6.verschieberegel_id) AND t6.vereine_berechtigt = 1 AND (t6.vorlaufzeit_tage = 0 OR DATEDIFF(zeitpunkt, CURDATE()) >= t6.vorlaufzeit_tage), 1, 0) AS verschieberegel_erfuellt"
. "\n FROM #__sportsmanager_begegnung AS t1" . "\n FROM #__sportsmanager_begegnung AS t1"
. "\n LEFT JOIN #__sportsmanager_spielort AS s1 ON t1.spielort_id = s1.spielort_id" . "\n LEFT JOIN #__sportsmanager_spielort AS s1 ON t1.spielort_id = s1.spielort_id"
. "\n LEFT JOIN #__sportsmanager_team AS t2 ON t1.heim_team_id = t2.team_id" . "\n LEFT JOIN #__sportsmanager_team AS t2 ON t1.heim_team_id = t2.team_id"
@@ -2427,7 +2522,7 @@ function begegnungenAnzeigen($veranstaltung, $verein_id, $spielort_id, $zeitfens
. "\n (SELECT vorschlagendes_team_id FROM #__sportsmanager_unbestaetigtes_ergebnis AS tt1 WHERE tt1.begegnung_id = t1.begegnung_id LIMIT 1) AS unbestaetigtes_ergebnis_team_id," . "\n (SELECT vorschlagendes_team_id FROM #__sportsmanager_unbestaetigtes_ergebnis AS tt1 WHERE tt1.begegnung_id = t1.begegnung_id LIMIT 1) AS unbestaetigtes_ergebnis_team_id,"
. "\n (SELECT IF(aktion NOT IN (0, 3, 4), NULL, tt1.eingetragen) FROM #__sportsmanager_begegnung_historie AS tt1 USE INDEX (begegnung_id) WHERE tt1.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verlegung_eingetragen," . "\n (SELECT IF(aktion NOT IN (0, 3, 4), NULL, tt1.eingetragen) FROM #__sportsmanager_begegnung_historie AS tt1 USE INDEX (begegnung_id) WHERE tt1.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verlegung_eingetragen,"
. "\n (SELECT verantwortlich_team_id FROM #__sportsmanager_begegnung_historie AS tt1 USE INDEX (begegnung_id) WHERE tt1.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verantwortlich_team_id," . "\n (SELECT verantwortlich_team_id FROM #__sportsmanager_begegnung_historie AS tt1 USE INDEX (begegnung_id) WHERE tt1.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verantwortlich_team_id,"
. "\n IF(NOT ISNULL(t6.verschieberegel_id) AND (t6.vorlaufzeit_tage = 0 OR DATEDIFF(zeitpunkt, CURDATE()) >= t6.vorlaufzeit_tage), 1, 0) AS verschieberegel_erfuellt" . "\n IF(NOT ISNULL(t6.verschieberegel_id) AND t6.vereine_berechtigt = 1 AND (t6.vorlaufzeit_tage = 0 OR DATEDIFF(zeitpunkt, CURDATE()) >= t6.vorlaufzeit_tage), 1, 0) AS verschieberegel_erfuellt"
. "\n FROM #__sportsmanager_begegnung AS t1" . "\n FROM #__sportsmanager_begegnung AS t1"
. "\n LEFT JOIN #__sportsmanager_spielort AS s1 ON t1.spielort_id = s1.spielort_id" . "\n LEFT JOIN #__sportsmanager_spielort AS s1 ON t1.spielort_id = s1.spielort_id"
. "\n LEFT JOIN #__sportsmanager_team AS t2 ON t1.heim_team_id = t2.team_id" . "\n LEFT JOIN #__sportsmanager_team AS t2 ON t1.heim_team_id = t2.team_id"
@@ -2448,7 +2543,7 @@ function begegnungenAnzeigen($veranstaltung, $verein_id, $spielort_id, $zeitfens
. "\n (SELECT vorschlagendes_team_id FROM #__sportsmanager_unbestaetigtes_ergebnis AS tt1 WHERE tt1.begegnung_id = t1.begegnung_id LIMIT 1) AS unbestaetigtes_ergebnis_team_id," . "\n (SELECT vorschlagendes_team_id FROM #__sportsmanager_unbestaetigtes_ergebnis AS tt1 WHERE tt1.begegnung_id = t1.begegnung_id LIMIT 1) AS unbestaetigtes_ergebnis_team_id,"
. "\n (SELECT IF(aktion NOT IN (0, 3, 4), NULL, tt1.eingetragen) FROM #__sportsmanager_begegnung_historie AS tt1 USE INDEX (begegnung_id) WHERE tt1.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verlegung_eingetragen," . "\n (SELECT IF(aktion NOT IN (0, 3, 4), NULL, tt1.eingetragen) FROM #__sportsmanager_begegnung_historie AS tt1 USE INDEX (begegnung_id) WHERE tt1.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verlegung_eingetragen,"
. "\n (SELECT verantwortlich_team_id FROM #__sportsmanager_begegnung_historie AS tt1 USE INDEX (begegnung_id) WHERE tt1.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verantwortlich_team_id," . "\n (SELECT verantwortlich_team_id FROM #__sportsmanager_begegnung_historie AS tt1 USE INDEX (begegnung_id) WHERE tt1.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verantwortlich_team_id,"
. "\n IF(NOT ISNULL(t6.verschieberegel_id) AND (t6.vorlaufzeit_tage = 0 OR DATEDIFF(zeitpunkt, CURDATE()) >= t6.vorlaufzeit_tage), 1, 0) AS verschieberegel_erfuellt" . "\n IF(NOT ISNULL(t6.verschieberegel_id) AND t6.vereine_berechtigt = 1 AND (t6.vorlaufzeit_tage = 0 OR DATEDIFF(zeitpunkt, CURDATE()) >= t6.vorlaufzeit_tage), 1, 0) AS verschieberegel_erfuellt"
. "\n FROM #__sportsmanager_begegnung AS t1" . "\n FROM #__sportsmanager_begegnung AS t1"
. "\n LEFT JOIN #__sportsmanager_team AS t2 ON t1.heim_team_id = t2.team_id" . "\n LEFT JOIN #__sportsmanager_team AS t2 ON t1.heim_team_id = t2.team_id"
. "\n LEFT JOIN #__sportsmanager_team AS t3 ON t1.gast_team_id = t3.team_id" . "\n LEFT JOIN #__sportsmanager_team AS t3 ON t1.gast_team_id = t3.team_id"
@@ -2475,7 +2570,7 @@ function begegnungenAnzeigen($veranstaltung, $verein_id, $spielort_id, $zeitfens
. "\n (SELECT IF(aktion NOT IN (0, 3, 4), NULL, tt1.eingetragen) FROM #__sportsmanager_begegnung_historie AS tt1 USE INDEX (begegnung_id) WHERE tt1.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verlegung_eingetragen," . "\n (SELECT IF(aktion NOT IN (0, 3, 4), NULL, tt1.eingetragen) FROM #__sportsmanager_begegnung_historie AS tt1 USE INDEX (begegnung_id) WHERE tt1.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verlegung_eingetragen,"
. "\n (SELECT verantwortlich_team_id FROM #__sportsmanager_begegnung_historie AS tt1 USE INDEX (begegnung_id) WHERE tt1.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verantwortlich_team_id," . "\n (SELECT verantwortlich_team_id FROM #__sportsmanager_begegnung_historie AS tt1 USE INDEX (begegnung_id) WHERE tt1.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verantwortlich_team_id,"
// //
. "\n IF(NOT ISNULL(t6.verschieberegel_id) AND (t6.vorlaufzeit_tage = 0 OR DATEDIFF(zeitpunkt, CURDATE()) >= t6.vorlaufzeit_tage), 1, 0) AS verschieberegel_erfuellt" . "\n IF(NOT ISNULL(t6.verschieberegel_id) AND t6.vereine_berechtigt = 1 AND (t6.vorlaufzeit_tage = 0 OR DATEDIFF(zeitpunkt, CURDATE()) >= t6.vorlaufzeit_tage), 1, 0) AS verschieberegel_erfuellt"
. "\n FROM #__sportsmanager_begegnung AS t1" . "\n FROM #__sportsmanager_begegnung AS t1"
. "\n LEFT JOIN #__sportsmanager_team AS t2 ON t1.heim_team_id = t2.team_id" . "\n LEFT JOIN #__sportsmanager_team AS t2 ON t1.heim_team_id = t2.team_id"
. "\n LEFT JOIN #__sportsmanager_team AS t3 ON t1.gast_team_id = t3.team_id" . "\n LEFT JOIN #__sportsmanager_team AS t3 ON t1.gast_team_id = t3.team_id"
@@ -2867,18 +2962,33 @@ function spieler(): void
$query .= ", teamname"; $query .= ", teamname";
$query .= ", vereinsname, veranstalterbezeichnung" $query .= ", vereinsname, veranstalterbezeichnung"
. "\n FROM #__sportsmanager_spieler"; . "\n FROM #__sportsmanager_spieler";
if (!empty($kategorieFilter) || !empty($veranstalterFilter)) if (!empty($kategorieFilter) || !empty($veranstalterFilter)){
$query .= "\n INNER JOIN (SELECT spieler_id FROM #__sportsmanager_mitglied_von_verein INNER JOIN #__sportsmanager_verein USING (verein_id) INNER JOIN #__sportsmanager_veranstalter USING (veranstalter_id) WHERE NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND NOT #__sportsmanager_verein.ausgetreten" . $veranstalterFilter . $kategorieFilter . "GROUP BY spieler_id ORDER BY spieler_id, verein_id) AS mitgliedschaft USING (spieler_id)"; $query .= "\n INNER JOIN (SELECT spieler_id FROM #__sportsmanager_mitglied_von_verein"
if ($veranstaltungid != 0) . "\n INNER JOIN #__sportsmanager_verein USING (verein_id)"
$query .= "\n INNER JOIN (SELECT spieler_id, teamname FROM #__sportsmanager_veranstaltung INNER JOIN #__sportsmanager_team USING (veranstaltung_id) INNER JOIN #__sportsmanager_mitglied_von_team USING (team_id) WHERE status > 0 AND veranstaltung_id = $veranstaltungid AND NOT ausgetreten GROUP BY spieler_id ORDER BY YEAR(letzter_tag) DESC, reihenfolge, letzter_tag DESC, bezeichnung, teamname) AS mannschaftsmitglied USING (spieler_id)"; . "\n INNER JOIN #__sportsmanager_veranstalter USING (veranstalter_id)"
. "\n WHERE NOT #__sportsmanager_mitglied_von_verein.ausgetreten"
. "\n AND NOT #__sportsmanager_verein.ausgetreten" . $veranstalterFilter . $kategorieFilter
. "\n GROUP BY spieler_id ORDER BY spieler_id, verein_id) AS mitgliedschaft USING (spieler_id)";
}
if ($veranstaltungid != 0){
$query .= "\n INNER JOIN (SELECT spieler_id, teamname FROM #__sportsmanager_veranstaltung"
. "\n INNER JOIN #__sportsmanager_team USING (veranstaltung_id)"
. "\n INNER JOIN #__sportsmanager_mitglied_von_team USING (team_id)"
. "\n WHERE status > 0 AND veranstaltung_id = $veranstaltungid AND NOT ausgetreten"
. "\n GROUP BY spieler_id"
. "\n ORDER BY YEAR(letzter_tag) DESC, reihenfolge, letzter_tag DESC, bezeichnung, teamname) AS mannschaftsmitglied"
. "\n USING (spieler_id)";
}
$query .= "\n LEFT JOIN #__sportsmanager_verein ON aktueller_verein_id = verein_id" $query .= "\n LEFT JOIN #__sportsmanager_verein ON aktueller_verein_id = verein_id"
. "\n LEFT JOIN #__sportsmanager_veranstalter USING (veranstalter_id)" . "\n LEFT JOIN #__sportsmanager_veranstalter USING (veranstalter_id)"
. "\n WHERE NOT ISNULL(aktueller_verein_id)"; . "\n LEFT JOIN #__sportsmanager_mitglied_von_verein USING (spieler_id)"
. "\n WHERE NOT ISNULL(aktueller_verein_id) AND #__sportsmanager_mitglied_von_verein.mitgliedsstatus IN (1,2)";
if (!empty($search)) if (!empty($search))
$query .= "\n AND (CONCAT_WS(', ', nachname, vorname) LIKE '$searchEscapedWildcards' OR CONCAT_WS(' ', vorname, nachname) LIKE '$searchEscapedWildcards' OR spielernr = '$searchEscaped' OR lizenznr = '$searchEscaped')"; $query .= "\n AND (CONCAT_WS(', ', nachname, vorname) LIKE '$searchEscapedWildcards' OR CONCAT_WS(' ', vorname, nachname) LIKE '$searchEscapedWildcards' OR spielernr = '$searchEscaped' OR lizenznr = '$searchEscaped')";
if ($einstufungid != 0) if ($einstufungid != 0)
$query .= "\n AND (einstufung_allgemein_id = $einstufungid OR einstufung_einzel_id = $einstufungid OR einstufung_doppel_id = $einstufungid)"; $query .= "\n AND (einstufung_allgemein_id = $einstufungid OR einstufung_einzel_id = $einstufungid OR einstufung_doppel_id = $einstufungid)";
if (!empty($kategorie)) $query .= "\n GROUP BY spieler_id";
if (!empty($kategorie))
$query .= "\n HAVING kategorie = '" . $db->escape($kategorie) . "'"; $query .= "\n HAVING kategorie = '" . $db->escape($kategorie) . "'";
$query .= "\n ORDER BY " . $sortierung_query $query .= "\n ORDER BY " . $sortierung_query
. "\n LIMIT $beginn, 50"; . "\n LIMIT $beginn, 50";
@@ -2996,7 +3106,11 @@ function spielerDetails(): void
$query = "SELECT vereinsname" $query = "SELECT vereinsname"
. "\n FROM #__sportsmanager_mitglied_von_verein, #__sportsmanager_verein" . "\n FROM #__sportsmanager_mitglied_von_verein, #__sportsmanager_verein"
. "\n LEFT JOIN #__sportsmanager_veranstalter USING (veranstalter_id)" . "\n LEFT JOIN #__sportsmanager_veranstalter USING (veranstalter_id)"
. "\n WHERE #__sportsmanager_mitglied_von_verein.spieler_id = $id AND NOT #__sportsmanager_verein.ausgetreten AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND #__sportsmanager_verein.verein_id = #__sportsmanager_mitglied_von_verein.verein_id" . "\n WHERE #__sportsmanager_mitglied_von_verein.spieler_id = $id "
. "\n AND NOT #__sportsmanager_verein.ausgetreten"
. "\n AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten"
. "\n AND #__sportsmanager_mitglied_von_verein.mitgliedsstatus IN (1,2)"
. "\n AND #__sportsmanager_verein.verein_id = #__sportsmanager_mitglied_von_verein.verein_id"
. "\n ORDER BY vereinsname"; . "\n ORDER BY vereinsname";
$vereine = loadObjectList($db, $query); $vereine = loadObjectList($db, $query);
@@ -3004,7 +3118,12 @@ function spielerDetails(): void
$query = "SELECT veranstalterbezeichnung" $query = "SELECT veranstalterbezeichnung"
. "\n FROM #__sportsmanager_mitglied_von_verein, #__sportsmanager_verein" . "\n FROM #__sportsmanager_mitglied_von_verein, #__sportsmanager_verein"
. "\n LEFT JOIN #__sportsmanager_veranstalter USING (veranstalter_id)" . "\n LEFT JOIN #__sportsmanager_veranstalter USING (veranstalter_id)"
. "\n WHERE #__sportsmanager_mitglied_von_verein.spieler_id = $id AND NOT #__sportsmanager_verein.ausgetreten AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND #__sportsmanager_verein.verein_id = #__sportsmanager_mitglied_von_verein.verein_id" . "\n WHERE #__sportsmanager_mitglied_von_verein.spieler_id = $id"
. "\n AND NOT #__sportsmanager_verein.ausgetreten"
. "\n AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten"
. "\n AND #__sportsmanager_mitglied_von_verein.mitgliedsstatus IN (1,2)"
. "\n AND #__sportsmanager_verein.verein_id = #__sportsmanager_mitglied_von_verein.verein_id"
. "\n GROUP BY veranstalterbezeichnung"
. "\n ORDER BY veranstalterbezeichnung"; . "\n ORDER BY veranstalterbezeichnung";
$veranstalter = loadObjectList($db, $query); $veranstalter = loadObjectList($db, $query);
@@ -3201,7 +3320,7 @@ function spielerDetails(): void
$statistik["elo_doppel"] = loadResult($db, $query) && $elo_anzeigen; $statistik["elo_doppel"] = loadResult($db, $query) && $elo_anzeigen;
if (isJson()) { if (isJson()) {
JSON_sportsmanager:: spielerDetails($spieler, $vereine, $veranstalter, $spieler_elo_verlauf_einzel, $spieler_elo_verlauf_doppel, $spielerNamen, $teamNamen, $veranstaltungBezeichnungen, $turnierdisziplinBezeichnungen, $individualwettbewerbBezeichnungen, $ranglistenplatzierungen, $turnierplatzierungen, $teams, $elo_detailliert, $statistik, $einstufungen); JSON_sportsmanager::spielerDetails($spieler, $vereine, $veranstalter, $spieler_elo_verlauf_einzel, $spieler_elo_verlauf_doppel, $spielerNamen, $teamNamen, $veranstaltungBezeichnungen, $turnierdisziplinBezeichnungen, $individualwettbewerbBezeichnungen, $ranglistenplatzierungen, $turnierplatzierungen, $teams, $elo_detailliert, $statistik, $einstufungen);
} else { } else {
HTML_sportsmanager::spielerDetails($spieler, $vereine, $veranstalter, $spieler_elo_verlauf_einzel, $spieler_elo_verlauf_doppel, $spielerNamen, $teamNamen, $veranstaltungBezeichnungen, $turnierdisziplinBezeichnungen, $individualwettbewerbBezeichnungen, $ranglistenplatzierungen, $turnierplatzierungen, $teams, $sortierung, $vorheriger_spieler_id, $naechster_spieler_id, $elo_detailliert, $statistik, $beginn, $kategorie, $einstufungen, $filter, $veranstaltungid, $veranstalterid, $einstufungid, $unabhaengige_ansicht, $details_anzeigen, $lizenz_anzeigen); HTML_sportsmanager::spielerDetails($spieler, $vereine, $veranstalter, $spieler_elo_verlauf_einzel, $spieler_elo_verlauf_doppel, $spielerNamen, $teamNamen, $veranstaltungBezeichnungen, $turnierdisziplinBezeichnungen, $individualwettbewerbBezeichnungen, $ranglistenplatzierungen, $turnierplatzierungen, $teams, $sortierung, $vorheriger_spieler_id, $naechster_spieler_id, $elo_detailliert, $statistik, $beginn, $kategorie, $einstufungen, $filter, $veranstaltungid, $veranstalterid, $einstufungid, $unabhaengige_ansicht, $details_anzeigen, $lizenz_anzeigen);
} }
@@ -3788,13 +3907,14 @@ function vereine($sort): void
$db = getDatabase(); $db = getDatabase();
global $params; global $params;
$organisationAnzeigen = einstellungswert('verband_anzeigen'); $organisationAnzeigen = einstellungswert('verband_anzeigen');
$spalteMitgliederAnzeigen = einstellungswert('spalte_mitglieder_zeigen');
if (!$spalteMitgliederAnzeigen) $sort = "vereinsname";
$query = "SELECT t1.verein_id, t1.vereinsname, t1.vereinssitz," $query = "SELECT t1.verein_id, t1.vereinsname, t1.vereinssitz,"
. "\n t2.veranstalterbezeichnung, COUNT(*) As mitglieder" . "\n t2.veranstalterbezeichnung, COUNT(*) As mitglieder"
. "\n FROM #__sportsmanager_verein AS t1" . "\n FROM #__sportsmanager_verein AS t1"
. "\n LEFT JOIN #__sportsmanager_veranstalter AS t2 USING (veranstalter_id)" . "\n LEFT JOIN #__sportsmanager_veranstalter AS t2 USING (veranstalter_id)"
. "\n LEFT JOIN #__sportsmanager_mitglied_von_verein AS t3 USING (verein_id)" . "\n LEFT JOIN #__sportsmanager_mitglied_von_verein AS t3 USING (verein_id)"
. "\n WHERE t1.ausgetreten = 0 AND verstecken = 0" . "\n WHERE t1.ausgetreten = 0 AND t1.verstecken = 0 AND t3.ausgetreten = 0"
. "\n GROUP BY t1.verein_id"; . "\n GROUP BY t1.verein_id";
if ($sort == "mitglieder"){ if ($sort == "mitglieder"){
$query .= "\n HAVING mitglieder >= " . einstellungswert('anzahl_mitglieder_zeigen'); $query .= "\n HAVING mitglieder >= " . einstellungswert('anzahl_mitglieder_zeigen');
@@ -3805,7 +3925,7 @@ function vereine($sort): void
} }
$vereine = loadObjectList($db, $query); $vereine = loadObjectList($db, $query);
HTML_sportsmanager::vereine($params->get('titel'), $params->get('beschreibung'), $vereine, $organisationAnzeigen); HTML_sportsmanager::vereine($params->get('titel'), $params->get('beschreibung'), $vereine, $organisationAnzeigen, $spalteMitgliederAnzeigen);
administrationFooter(); administrationFooter();
} }
@@ -3904,10 +4024,11 @@ function vereinDetails(): void
$fruehere_teams = loadObjectList($db, $query); $fruehere_teams = loadObjectList($db, $query);
HTML_sportsmanager::vereinDetails($verein, $mitglieder, $vereinsansprechpartner, $aktuelle_teams, $vorheriger_verein_id, $naechster_verein_id, $vereins_moderator, $details_anzeigen, $ansprechpartner_anzeigen); HTML_sportsmanager::vereinDetails($verein, $mitglieder, $vereinsansprechpartner, $aktuelle_teams, $vorheriger_verein_id, $naechster_verein_id, $vereins_moderator, $details_anzeigen, $ansprechpartner_anzeigen);
begegnungenAnzeigen(NULL, $id, NULL, 92, true, true, false, Text::_('COM_SPORTSMANAGER_RUNNING_MATCHES'), true, true); // Links in Begegnungen sind fehlerhaft bei Aufruf aus vereinDetails (Jürgen Meyer, 10.10.2025)
begegnungenAnzeigen(NULL, $id, NULL, 62, true, false, true, "Begegnungen der kommenden zwei Monate", false, true); // begegnungenAnzeigen(NULL, $id, NULL, 92, true, true, false, Text::_('COM_SPORTSMANAGER_RUNNING_MATCHES'), true, true);
begegnungenAnzeigen(NULL, $id, NULL, 366, false, true, true, "Begegnungen des vergangenen Jahres", true, true); // begegnungenAnzeigen(NULL, $id, NULL, 62, true, false, true, "Begegnungen der kommenden zwei Monate", false, true);
HTML_sportsmanager::iCalBegegnungen(SportsManagerURL('&task=verein_begegnungen_ical&id=' . $verein->verein_id)); // begegnungenAnzeigen(NULL, $id, NULL, 366, false, true, true, "Begegnungen des vergangenen Jahres", true, true);
// HTML_sportsmanager::iCalBegegnungen(SportsManagerURL('&task=verein_begegnungen_ical&id=' . $verein->verein_id));
HTML_sportsmanager::vereinDetailsErgaenzung($mailverteiler, $fruehere_teams, $vereins_moderator); HTML_sportsmanager::vereinDetailsErgaenzung($mailverteiler, $fruehere_teams, $vereins_moderator);
} }
@@ -3996,6 +4117,105 @@ function spielort(): void
HTML_sportsmanager::iCalBegegnungen(SportsManagerURL('&task=spielort_begegnungen_ical&id=' . $id)); HTML_sportsmanager::iCalBegegnungen(SportsManagerURL('&task=spielort_begegnungen_ical&id=' . $id));
} }
function spielverlegungen(): void
{
$db = getDatabase();
global $params;
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
$filter_status = $jInput->get('filter_status', '', 'RAW');
if (empty($filter_status))
$filter_status = "offen,genehmigt";
$query = "SELECT saison_id, saisonbezeichnung"
. "\n FROM #__sportsmanager_saison"
. "\n ORDER BY saisonbezeichnung DESC LIMIT 1";
$saisons = loadObjectList($db, $query);
$filter_saison_id = $saisons[0]->saison_id;
$query = "SELECT t1.begegnung_historie_id AS beantragt_id, t1.begegnung_id AS begegnung_id,"
. "\n t1.eingetragen AS beantragt, t1.kommentar AS Begruendung_beantragt, t1.zeitpunkt AS Termin_alt,"
. "\n t1.team_id as beantragt_verein, t5.bezeichnung AS Liga,"
. "\n t3.teamname AS Heim, t4.teamname AS Gast, t6.teamname AS beantragt_von, 'offen' AS status"
. "\n FROM #__sportsmanager_begegnung_historie AS t1"
. "\n LEFT JOIN #__sportsmanager_begegnung AS t2 ON t2.begegnung_id = t1.begegnung_id"
. "\n LEFT JOIN #__sportsmanager_team AS t3 ON t3.team_id = t2.heim_team_id"
. "\n LEFT JOIN #__sportsmanager_team AS t4 ON t4.team_id = t2.gast_team_id"
. "\n LEFT JOIN #__sportsmanager_veranstaltung AS t5 ON t5.veranstaltung_id = t4.veranstaltung_id"
. "\n LEFT JOIN #__sportsmanager_team AS t6 ON t6.team_id = t1.team_id"
. "\n WHERE t1.aktion = 2"
. "\n AND t5.saison_id = '$filter_saison_id'"
. kategorieFilter("AND t5.kategorie IN")
. "\n ORDER BY t1.begegnung_id, t1.zeitpunkt ASC;";
$spielverlegungen = loadObjectList($db, $query);
$last_id = "";
foreach ($spielverlegungen as $key => $spielverlegung) {
if ($spielverlegung->begegnung_id == $last_id) {
unset($spielverlegungen[$key]);
} else {
$last_id = $spielverlegung->begegnung_id;
$query = "SELECT t1.begegnung_historie_id AS genehmigt_id, t1.eingetragen AS genehmigt,"
. "\n t1.user_id AS genehmigt_von, t1.team_id as genehmigt_verein, t1.zeitpunkt AS Termin_neu"
. "\n FROM #__sportsmanager_begegnung_historie AS t1"
. "\n LEFT JOIN #__sportsmanager_begegnung AS t2 ON t2.begegnung_id = t1.begegnung_id"
. "\n WHERE t1.aktion = 1 AND t1.begegnung_id = $last_id"
. "\n ORDER BY t1.zeitpunkt DESC LIMIT 1;";
$genehmigt = loadObjectList($db, $query);
if (!empty($genehmigt)) {
$spielverlegung->genehmigt_id = $genehmigt[0]->genehmigt_id;
$spielverlegung->genehmigt = $genehmigt[0]->genehmigt;
$spielverlegung->Termin_neu = $genehmigt[0]->Termin_neu;
$spielverlegung->genehmigt_von = $genehmigt[0]->genehmigt_von;
$spielverlegung->genehmigt_verein = $genehmigt[0]->genehmigt_verein;
$spielverlegung->status = "genehmigt";
} else {
$spielverlegung->genehmigt_id = "";
$spielverlegung->genehmigt = "";
$spielverlegung->Termin_neu = "";
$spielverlegung->genehmigt_von = "";
$spielverlegung->genehmigt_verein = "";
}
$query = "SELECT t1.begegnung_historie_id AS abgelehnt_id, t1.eingetragen AS abgelehnt,"
. "\n t1.user_id AS abgelehnt_von, t1.team_id as abgelehnt_verein,"
. "\n t1.kommentar AS Begruendung_abgelehnt"
. "\n FROM #__sportsmanager_begegnung_historie AS t1"
. "\n LEFT JOIN #__sportsmanager_begegnung AS t2 ON t2.begegnung_id = t1.begegnung_id"
. "\n WHERE t1.aktion = 10 AND t1.begegnung_id = $last_id"
. "\n ORDER BY t1.zeitpunkt DESC LIMIT 1;";
$abgelehnt = loadObjectList($db, $query);
if (!empty($abgelehnt)) {
$spielverlegung->abgelehnt_id = $abgelehnt[0]->abgelehnt_id;
$spielverlegung->abgelehnt = $abgelehnt[0]->abgelehnt;
$spielverlegung->abgelehnt_von = $abgelehnt[0]->abgelehnt_von;
$spielverlegung->abgelehnt_verein = $abgelehnt[0]->abgelehnt_verein;
$spielverlegung->Begruendung_abgelehnt = $abgelehnt[0]->Begruendung_abgelehnt;
$spielverlegung->status = "abgelehnt";
} else {
$spielverlegung->abgelehnt_id = "";
$spielverlegung->abgelehnt = "";
$spielverlegung->abgelehnt_von = "";
$spielverlegung->abgelehnt_verein = "";
$spielverlegung->Begruendung_abgelehnt = "";
}
}
}
$spielverlegungen = array_values($spielverlegungen);
if (isJson()) {
echo json_encode($spielverlegungen);
} else {
HTML_sportsmanager::spielverlegungen($params->get('titel'), $params->get('beschreibung'), $spielverlegungen);
}
}
function begegnungSpielplan($teamansicht = false): void function begegnungSpielplan($teamansicht = false): void
{ {
$db = getDatabase(); $db = getDatabase();
@@ -4182,7 +4402,11 @@ function begegnungVerlegenForm(): void
die("Missing id!"); die("Missing id!");
$aus_uebersicht = $jInput->get('aus_uebersicht', 0, 'INT'); $aus_uebersicht = $jInput->get('aus_uebersicht', 0, 'INT');
$query = "SELECT #__sportsmanager_veranstaltung.*, initial_ohne_termin, keine_gegenvorschlaege, vorlaufzeit_tage, termine_minimal, termine_maximal, ablehnen FROM #__sportsmanager_veranstaltung LEFT JOIN #__sportsmanager_verschieberegel USING (verschieberegel_id) WHERE veranstaltung_id = $veranstaltungid"; $query = "SELECT #__sportsmanager_veranstaltung.*, initial_ohne_termin, keine_gegenvorschlaege, vorlaufzeit_tage,"
. "\n termine_minimal, termine_maximal, ablehnen, begruendung_erforderlich"
. "\n FROM #__sportsmanager_veranstaltung LEFT JOIN #__sportsmanager_verschieberegel USING (verschieberegel_id)"
. "\n WHERE veranstaltung_id = $veranstaltungid";
$rows = loadObjectList($db, $query); $rows = loadObjectList($db, $query);
if (count($rows) < 1) if (count($rows) < 1)
die("Wrong id!"); die("Wrong id!");
@@ -4266,6 +4490,7 @@ function begegnungVerlegen(): void
$aus_uebersicht = $jInput->get('aus_uebersicht', 0, 'INT'); $aus_uebersicht = $jInput->get('aus_uebersicht', 0, 'INT');
$angefordert = $jInput->get('anfordern', false, 'BOOL'); $angefordert = $jInput->get('anfordern', false, 'BOOL');
$abgelehnt = $jInput->get('ablehnen', false, 'BOOL'); $abgelehnt = $jInput->get('ablehnen', false, 'BOOL');
$verlegungsgrund = $jInput->get('verlegungsgrund', '', 'RAW');
if ($jInput->get('cancel', false, 'BOOL')) { if ($jInput->get('cancel', false, 'BOOL')) {
redirectSportsManagerURL('&task=' . ($aus_uebersicht ? 'veranstaltungen' : 'veranstaltung') . '&veranstaltungid=' . $veranstaltungId); redirectSportsManagerURL('&task=' . ($aus_uebersicht ? 'veranstaltungen' : 'veranstaltung') . '&veranstaltungid=' . $veranstaltungId);
@@ -4333,7 +4558,7 @@ function begegnungVerlegen(): void
$aktueller_zeitpunkt = date('Y-m-d H:i:s'); $aktueller_zeitpunkt = date('Y-m-d H:i:s');
if (count($verlegen_aktionen) == 0 || $verlegen_aktionen[0]->aktion == 1 || $verlegen_aktionen[0]->aktion == 5 || $verlegen_aktionen[0]->aktion == 10) { if (count($verlegen_aktionen) == 0 || $verlegen_aktionen[0]->aktion == 1 || $verlegen_aktionen[0]->aktion == 5 || $verlegen_aktionen[0]->aktion == 10) {
$query = "INSERT INTO #__sportsmanager_begegnung_historie (begegnung_id, aktion, zeitpunkt, user_id, team_id, verantwortlich_team_id, kommentar, eingetragen)" $query = "INSERT INTO #__sportsmanager_begegnung_historie (begegnung_id, aktion, zeitpunkt, user_id, team_id, verantwortlich_team_id, kommentar, eingetragen)"
. "\n VALUES ($id, 2, '$begegnung->zeitpunkt', NULL, NULL, NULL, NULL, '$aktueller_zeitpunkt');"; . "\n VALUES ($id, 2, '$begegnung->zeitpunkt', '$user_id', '$vorschlagendes_team_id', '" . ($vorschlagendes_team_id == $begegnung->heim_team_id ? $begegnung->gast_team_id : $begegnung->heim_team_id) . "', '$verlegungsgrund', '$aktueller_zeitpunkt');";
$db->setQuery($query); $db->setQuery($query);
if (!$db->execute()) { if (!$db->execute()) {
abortWithError($db->stderr(true)); abortWithError($db->stderr(true));
@@ -4342,7 +4567,7 @@ function begegnungVerlegen(): void
if ($angefordert) { if ($angefordert) {
$query = "INSERT INTO #__sportsmanager_begegnung_historie (begegnung_id, aktion, zeitpunkt, user_id, team_id, verantwortlich_team_id, kommentar, eingetragen)" $query = "INSERT INTO #__sportsmanager_begegnung_historie (begegnung_id, aktion, zeitpunkt, user_id, team_id, verantwortlich_team_id, kommentar, eingetragen)"
. "\n VALUES ($id, 3, NULL, '$user_id', '$vorschlagendes_team_id', '" . ($vorschlagendes_team_id == $begegnung->heim_team_id ? $begegnung->gast_team_id : $begegnung->heim_team_id) . "', NULL, '$aktueller_zeitpunkt');"; . "\n VALUES ($id, 3, NULL, '$user_id', '$vorschlagendes_team_id', '" . ($vorschlagendes_team_id == $begegnung->heim_team_id ? $begegnung->gast_team_id : $begegnung->heim_team_id) . "', '$verlegungsgrund', '$aktueller_zeitpunkt');";
$db->setQuery($query); $db->setQuery($query);
if (!$db->execute()) { if (!$db->execute()) {
abortWithError($db->stderr(true)); abortWithError($db->stderr(true));
@@ -4810,7 +5035,6 @@ function teamstatistikAktualisieren($geaenderte_veranstaltung_id = 0, $geaendert
function ranglisteAktualisieren($geaenderte_rangliste_id = 0, $geaenderte_turnierdisziplin_id = 0, $geaenderte_spieler_id = 0, $berechnungen_auswerten = FALSE): void function ranglisteAktualisieren($geaenderte_rangliste_id = 0, $geaenderte_turnierdisziplin_id = 0, $geaenderte_spieler_id = 0, $berechnungen_auswerten = FALSE): void
{ {
$db = getDatabase(); $db = getDatabase();
if ($geaenderte_spieler_id != 0) { if ($geaenderte_spieler_id != 0) {
$query = "SELECT DISTINCT #__sportsmanager_rangliste.*" $query = "SELECT DISTINCT #__sportsmanager_rangliste.*"
. "\n FROM #__sportsmanager_turniermeldung_spieler" . "\n FROM #__sportsmanager_turniermeldung_spieler"
@@ -4819,6 +5043,12 @@ function ranglisteAktualisieren($geaenderte_rangliste_id = 0, $geaenderte_turnie
. "\n INNER JOIN #__sportsmanager_rangliste_turnierdisziplin USING (turnierdisziplin_id)" . "\n INNER JOIN #__sportsmanager_rangliste_turnierdisziplin USING (turnierdisziplin_id)"
. "\n INNER JOIN #__sportsmanager_rangliste USING (rangliste_id)" . "\n INNER JOIN #__sportsmanager_rangliste USING (rangliste_id)"
. "\n WHERE spieler_id = $geaenderte_spieler_id AND rundenstufe = 0"; . "\n WHERE spieler_id = $geaenderte_spieler_id AND rundenstufe = 0";
} else if ($berechnungen_auswerten) {
$session_id = redirectRequestGetSessionId();
$query = "SELECT DISTINCT #__sportsmanager_rangliste.*"
. "\n FROM #__sportsmanager_berechnung"
. "\n INNER JOIN #__sportsmanager_rangliste ON id = rangliste_id"
. "\n WHERE typ = 'rangliste' AND " . (empty($session_id) ? ("session_id < SUBTIME(NOW(), '00:10:00')") : ("session_id = '" . $session_id . "'"));
} else if ($geaenderte_rangliste_id != 0) { } else if ($geaenderte_rangliste_id != 0) {
$query = "SELECT * FROM #__sportsmanager_rangliste" $query = "SELECT * FROM #__sportsmanager_rangliste"
. "\n WHERE rangliste_id = $geaenderte_rangliste_id"; . "\n WHERE rangliste_id = $geaenderte_rangliste_id";
@@ -4920,6 +5150,8 @@ function ranglisteAktualisieren($geaenderte_rangliste_id = 0, $geaenderte_turnie
$db->transactionStart(); $db->transactionStart();
$meldungen = array(); $meldungen = array();
$Anzahl = 0;
$query = "INSERT INTO #__sportsmanager_rangliste_turnierdisziplin_punkte (rangliste_id, spieler_id, turnierdisziplin_id, platz, punkte) VALUES ";
foreach ($turnierplatzierungen as $index => $turnierplatzierung) { foreach ($turnierplatzierungen as $index => $turnierplatzierung) {
if (empty($turnierplatzierung->spieler_id)) if (empty($turnierplatzierung->spieler_id))
continue; continue;
@@ -5011,12 +5243,17 @@ function ranglisteAktualisieren($geaenderte_rangliste_id = 0, $geaenderte_turnie
} }
} }
$punkte[$turnierplatzierung->spieler_id][] = $p; $punkte[$turnierplatzierung->spieler_id][] = $p;
$query = "INSERT INTO #__sportsmanager_rangliste_turnierdisziplin_punkte (rangliste_id, spieler_id, turnierdisziplin_id, platz, punkte) VALUES ('$rangliste_id', '$turnierplatzierung->spieler_id', '$turnierdisziplin->turnierdisziplin_id', '$turnierplatzierung->platz', '$p') ON DUPLICATE KEY UPDATE punkte = punkte + VALUES(punkte);"; if ($Anzahl > 0) $query .= ",";
$db->setQuery($query); $query .= "('$rangliste_id', '$turnierplatzierung->spieler_id', '$turnierdisziplin->turnierdisziplin_id', '$turnierplatzierung->platz', '$p')";
if (!$db->execute()) { $Anzahl++;
die($db->stderr(true));
}
} }
$query .= " ON DUPLICATE KEY UPDATE punkte = punkte + VALUES(punkte);";
if ($Anzahl > 0){
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
}
$db->transactionCommit(); $db->transactionCommit();
} }
@@ -5037,22 +5274,26 @@ function ranglisteAktualisieren($geaenderte_rangliste_id = 0, $geaenderte_turnie
$platz = 1; $platz = 1;
$tatsaechlicher_platz = 1; $tatsaechlicher_platz = 1;
$spieler_punkte = 0; $spieler_punkte = 0;
$Anzahl = 0;
$db->transactionStart(); $db->transactionStart();
$query = "INSERT INTO #__sportsmanager_rangliste_punkte(rangliste_id, spieler_id, punkte, teilnahmen, platz) VALUES ";
foreach ($punkte_summe as $spieler_id => $spieler_punkte_summe) { foreach ($punkte_summe as $spieler_id => $spieler_punkte_summe) {
$spieler_teilnahmen = $teilnahmen[$spieler_id]; $spieler_teilnahmen = $teilnahmen[$spieler_id];
if ($platz == 1 || $spieler_punkte != $spieler_punkte_summe) if ($platz == 1 || $spieler_punkte != $spieler_punkte_summe)
$tatsaechlicher_platz = $platz; $tatsaechlicher_platz = $platz;
if ($Anzahl > 0) $query .= ",";
$query = "INSERT INTO #__sportsmanager_rangliste_punkte (rangliste_id, spieler_id, punkte, teilnahmen, platz) VALUES ('$rangliste_id', '$spieler_id', '$spieler_punkte_summe', '$spieler_teilnahmen', '$tatsaechlicher_platz') ON DUPLICATE KEY UPDATE punkte = VALUES(punkte), teilnahmen = VALUES(teilnahmen), platz = VALUES(platz);"; $query .= "('$rangliste_id', '$spieler_id', '$spieler_punkte_summe', '$spieler_teilnahmen', '$tatsaechlicher_platz') ";
$db->setQuery($query); $Anzahl++;
if (!$db->execute()) {
die($db->stderr(true));
}
$spieler_punkte = $spieler_punkte_summe; $spieler_punkte = $spieler_punkte_summe;
$platz++; $platz++;
} }
$query .= " ON DUPLICATE KEY UPDATE punkte = VALUES(punkte), teilnahmen = VALUES(teilnahmen), platz = VALUES(platz);";
if ($Anzahl > 0){
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
}
$db->transactionCommit(); $db->transactionCommit();
// Unabhängig von $berechnungen_auswerten ausführen, um ggf. vorhandene Inhalte zu entfernen // Unabhängig von $berechnungen_auswerten ausführen, um ggf. vorhandene Inhalte zu entfernen
@@ -5554,8 +5795,14 @@ function aktuellerVereinAktualisieren($spieler_id = 0): void
$db = getDatabase(); $db = getDatabase();
$query = "UPDATE #__sportsmanager_spieler" $query = "UPDATE #__sportsmanager_spieler"
. "\n LEFT JOIN (SELECT spieler_id, verein_id FROM #__sportsmanager_mitglied_von_verein INNER JOIN #__sportsmanager_verein USING (verein_id) WHERE NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND NOT #__sportsmanager_verein.ausgetreten GROUP BY spieler_id ORDER BY spieler_id, verein_id) AS mitgliedschaft USING (spieler_id)" . "\n LEFT JOIN (SELECT spieler_id, verein_id FROM #__sportsmanager_mitglied_von_verein"
. "\n SET aktueller_verein_id = mitgliedschaft.verein_id"; . "\n INNER JOIN #__sportsmanager_verein USING (verein_id)"
. "\n WHERE NOT #__sportsmanager_mitglied_von_verein.ausgetreten"
. "\n AND #__sportsmanager_mitglied_von_verein.mitgliedsstatus IN (1,2)"
. "\n AND NOT #__sportsmanager_verein.ausgetreten"
. "\n GROUP BY spieler_id"
. "\n ORDER BY spieler_id, verein_id) AS mitgliedschaft USING (spieler_id)"
. "\n SET aktueller_verein_id = mitgliedschaft.verein_id";
if ($spieler_id != 0) if ($spieler_id != 0)
$query .= "\n WHERE spieler_id = $spieler_id"; $query .= "\n WHERE spieler_id = $spieler_id";
$db->setQuery($query); $db->setQuery($query);
@@ -185,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
@@ -219,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;
}
@@ -24,6 +24,7 @@
<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>
</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;
@@ -39,6 +39,7 @@ 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_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"
@@ -264,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"
@@ -315,9 +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" COM_SPORTSMANAGER_VIEW_LEAST_MEMBER_COUNT="Mindest Mitgliederzahl zeigen (Vereine)"
COM_SPORTSMANAGER_SHOW_ORGANISATION="Verband zeigen" 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_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"
@@ -360,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"
@@ -511,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"
@@ -572,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"
@@ -646,6 +650,7 @@ 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_ROUND_TITLE="Runde Bezeichnung"
COM_SPORTSMANAGER_DRAW_FOR_HOME="Heimrecht auslosen"
COM_SPORTSMANAGER_MATCH_PLACE3="Spiel um Platz 3" COM_SPORTSMANAGER_MATCH_PLACE3="Spiel um Platz 3"
COM_SPORTSMANAGER_MONTH="Monat" COM_SPORTSMANAGER_MONTH="Monat"
COM_SPORTSMANAGER_MONTHS="Monate" COM_SPORTSMANAGER_MONTHS="Monate"
@@ -806,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"
@@ -882,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"
@@ -891,6 +898,8 @@ 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_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"
@@ -1011,3 +1020,53 @@ 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"
@@ -39,6 +39,7 @@ 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_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"
@@ -264,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"
@@ -315,9 +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" COM_SPORTSMANAGER_VIEW_LEAST_MEMBER_COUNT="Show least member count (teams)"
COM_SPORTSMANAGER_SHOW_ORGANISATION="Show organisation" 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_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"
@@ -358,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"
@@ -511,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"
@@ -572,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"
@@ -646,6 +650,7 @@ 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_ROUND_TITLE="Round Title"
COM_SPORTSMANAGER_DRAW_FOR_HOME="Draw for home"
COM_SPORTSMANAGER_MATCH_PLACE3="Match for place 3" COM_SPORTSMANAGER_MATCH_PLACE3="Match for place 3"
COM_SPORTSMANAGER_MONTH="Month" COM_SPORTSMANAGER_MONTH="Month"
COM_SPORTSMANAGER_MONTHS="Months" COM_SPORTSMANAGER_MONTHS="Months"
@@ -806,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"
@@ -882,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"
@@ -891,6 +898,8 @@ 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_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"
@@ -943,8 +952,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"
@@ -1009,3 +1020,53 @@ 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"
+130 -11
View File
@@ -670,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`)"
@@ -692,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,"
@@ -905,6 +909,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`)"
@@ -1005,7 +1010,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',"
@@ -1013,7 +1018,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 );
@@ -1034,6 +1039,7 @@ 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',"
@@ -1095,16 +1101,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)); }
@@ -1117,7 +1126,69 @@ 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 = '106';"; $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 = 'verbands_kuerzel', wert = 'tbe.';";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'datenbank_version', wert = '116';";
$db->setQuery( $query ); $db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); } if (!$db->execute()) { die($db->stderr(true)); }
@@ -1125,11 +1196,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)); }
@@ -1137,11 +1208,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',"
@@ -1629,5 +1732,21 @@ 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)); }
} }
}; };