Compare commits

...

103 Commits

Author SHA1 Message Date
MarvinF b21e11be59 Merge pull request #231 from Deutscher-Tischfussballbund/sportsmanager2-stage
stage to prod
2025-12-09 19:11:57 +01:00
MarvinF f119316561 Merge branch 'sportsmanager2-prod' into sportsmanager2-stage 2025-12-09 19:11:36 +01:00
MarvinF 06070a1d47 Merge pull request #230 from Deutscher-Tischfussballbund/sportsmanager2-dev
dev to stage merge
2025-12-09 19:11:01 +01:00
MarvinF 5bf3fa3501 Merge branch 'sportsmanager2-stage' into sportsmanager2-dev 2025-12-09 19:10:17 +01:00
MarvinF a2cdc68578 Merge pull request #229 from Deutscher-Tischfussballbund/sportsmanager-issue225
administrators can't see player profiles of inactive players
2025-12-09 19:09:12 +01:00
MarvinF b34aa63872 Merge pull request #228 from Deutscher-Tischfussballbund/sportsmanager-issue227
Saving a tournament will overwrite the dates of its disciplines
2025-12-09 19:07:57 +01:00
Jürgen Meyer ddb7e3a1bd Korreketur datenbank-version 2025-12-09 05:46:28 +01:00
Jürgen Meyer e3fb99000c Korrektur Fehler beim Speichern Datum Disziplin 2025-12-09 05:43:23 +01:00
Jürgen Meyer 9cd84108e4 Spielerstatistik in adminSpieler um Vereinlose Spieler erweitert 2025-12-04 15:19:00 +01:00
Jürgen Meyer 3b721e3c82 Formular Spieler verschönert. 2025-12-04 14:08:14 +01:00
Jürgen Meyer fec866fa5d Profil von inaktiven Spieler kann mit bestimmten Rechten wieder angezeigt werden. 2025-12-04 13:31:33 +01:00
Marvin Flock d17280edb1 chore!: remove malicious fs package 2025-11-27 10:12:47 +01:00
MarvinF 287dcb0074 Merge pull request #224 from Deutscher-Tischfussballbund/sportsmanager2-stage
stage to prod
2025-11-17 17:16:48 +01:00
MarvinF 2e596dfcaa Merge branch 'sportsmanager2-prod' into sportsmanager2-stage 2025-11-17 17:16:28 +01:00
MarvinF 6c96125da4 Merge pull request #223 from Deutscher-Tischfussballbund/sportsmanager2-dev
dev to stage merge
2025-11-17 17:15:39 +01:00
MarvinF 01c7e5bb63 Merge branch 'sportsmanager2-stage' into sportsmanager2-dev 2025-11-17 17:15:00 +01:00
MarvinF 0116fd0860 Merge pull request #222 from Deutscher-Tischfussballbund/sportsmanager2-v230
Small design fixes
2025-11-16 20:17:39 +01:00
Jürgen Meyer ec61daa5c7 Kleine kosmetsiche Korrekturen 2025-11-15 11:28:53 +01:00
MarvinF e692edcb99 Merge pull request #220 from Deutscher-Tischfussballbund/sportsmanager2-issue217
Sportsmanager2 issue217
2025-11-14 11:25:37 +01:00
Marvin Flock c1196c9fd9 Merge branch 'sportsmanager2-dev' into sportsmanager2-issue217
# Conflicts:
#	src/structure/components/com_sportsmanager/database/update.php
2025-11-14 11:25:01 +01:00
MarvinF 4cc403536e Merge pull request #219 from Deutscher-Tischfussballbund/sportsmanager2-issue192
Playoffs optimization: KO games with game number and matchday title
2025-11-14 11:20:19 +01:00
Jürgen Meyer 1032af51f5 Kleine Korrektur 2025-11-14 07:28:36 +01:00
Jürgen Meyer 33d748303d Bei eintägiger Veranstaltung wird Datum in Formular Disziplin versteckt 2025-11-14 07:18:06 +01:00
Jürgen Meyer 331d4cfd85 Kleine Korrektur 2025-11-14 06:38:07 +01:00
Jürgen Meyer 6b1aa25c1b Comments in Review abgearbeitet 2025-11-14 06:33:11 +01:00
MarvinF 6b9f81f1c7 Merge pull request #221 from Deutscher-Tischfussballbund/sportsmanager2-issue218
MonsterDYP imports throw error
2025-11-13 21:52:06 +01:00
Jürgen Meyer e498981bc4 Datumsabgleich zwischen Turnier und Turnierdisziplin optimiert. 2025-11-13 17:13:43 +01:00
Jürgen Meyer 54d73a61e0 Hilfsausgabe gelöscht 2025-11-13 10:55:15 +01:00
Jürgen Meyer bd491add2e Unterdrückung der Speicherung von Turnierspielen bei Monstr-DYP 2025-11-13 10:51:11 +01:00
Jürgen Meyer 30c8ba9bfa Erweiterter Export für STFV 2025-11-12 11:56:35 +01:00
Jürgen Meyer 555f1de1b5 Verbandskürzel zu Einstellungen hinzugefügt 2025-11-12 11:17:21 +01:00
Jürgen Meyer a823e029d0 Live-Ticker angepasst 2025-11-10 16:32:19 +01:00
Jürgen Meyer 5627282a53 Vorbelegung Spielnummer entfernt. 2025-11-10 15:39:11 +01:00
Jürgen Meyer d73d081780 Ansicht Begegnungen im Frontend überarbeitet 2025-11-05 16:44:32 +01:00
Jürgen Meyer e3bd06257d Kleinen Programmierfehler beseitigt. 2025-11-05 12:43:32 +01:00
Jürgen Meyer 2a87c93c17 Anischt Begegnungen im admin-Bereich überarbeitet 2025-11-05 12:36:29 +01:00
Jürgen Meyer 5fafcace6b Überarbeitung Teamsport Spieltag erzeugen 2025-11-04 21:30:58 +01:00
MarvinF 12fd3a3ff0 Merge pull request #215 from Deutscher-Tischfussballbund/sportsmanager2-issue214
Add background color on hover for tournament trees
2025-11-04 18:47:30 +01:00
Jürgen Meyer 885d6a3191 Überarbeitung Begegnung hinzufügen bzw. editieren 2025-11-04 18:39:08 +01:00
MarvinF c50833ebe4 Merge pull request #216 from Deutscher-Tischfussballbund/sportsmanager2-issue213
Anzahl Kategorein auf 100 erhöht.
2025-11-04 00:05:18 +01:00
Jürgen Meyer 8242bd09cc Anzahl Kategorien Spielerstatistiken auf 100 erhöht 2025-11-03 15:32:14 +01:00
Jürgen Meyer 3886cc88d3 Anzahl Sortierreihenfolge Team Veranstaltungen auf 100 gesetzt. 2025-11-03 12:25:34 +01:00
Jürgen Meyer 96eff9f189 Anzahl Kategorein auf 100 erhöht. 2025-11-03 12:18:31 +01:00
Jürgen Meyer 1c2a0abcc2 Hintergrundfarbe bei Mouseover in Turnierbaum 2025-11-03 11:42:34 +01:00
MarvinF 24f4195403 Merge pull request #212 from Deutscher-Tischfussballbund/sportsmanager2-stage
stage to prod
2025-10-14 20:25:23 +02:00
MarvinF c1b7cb1e8c Merge pull request #211 from Deutscher-Tischfussballbund/sportsmanager2-dev
dev to stage merge
2025-10-14 20:23:35 +02:00
MarvinF 878cacd8cd Merge pull request #210 from Deutscher-Tischfussballbund/sportsmanager2-issue207
Sportsmanager2 issue207
2025-10-13 15:51:55 +02:00
MarvinF 5f830602ef Merge pull request #209 from Deutscher-Tischfussballbund/sportsmanager2-issue208
Vereinszuordnung Spieler korrigiert.
2025-10-12 23:31:46 +02:00
Jürgen Meyer eef105895b Spieleliste in Verein Details auskommentiert 2025-10-10 11:56:01 +02:00
Jürgen Meyer c0bdbb4bde Fehlerhaften Link Sortierung Vereine korrigiert. 2025-10-10 10:36:24 +02:00
Jürgen Meyer d05f3c5d7f Vereinszuordnung Spieler korrigiert. 2025-10-09 13:14:13 +02:00
MarvinF 0c334d897d Merge pull request #204 from Deutscher-Tischfussballbund/sportsmanager2-stage
downward merge stage to dev
2025-10-06 23:18:12 +02:00
MarvinF 79efed156b Merge pull request #203 from Deutscher-Tischfussballbund/sportsmanager2-prod
downward merge prod to stage
2025-10-06 23:17:24 +02:00
MarvinF 7984ea73aa Merge pull request #202 from Deutscher-Tischfussballbund/sportsmanager2-issue201
Zeileneinrückung in view.html.php korrigiert
2025-09-28 03:31:42 +02:00
Jürgen Meyer 7d07aee916 Zeileneinrückung in view.html.php korrigiert 2025-09-27 12:19:59 +02:00
MarvinF 43acc01861 Merge pull request #200 from Deutscher-Tischfussballbund/sportsmanager2-stage
stage to prod
2025-09-26 17:01:25 +02:00
MarvinF fa374986ca Merge pull request #199 from Deutscher-Tischfussballbund/sportsmanager2-dev
dev to stage
2025-09-26 17:00:10 +02:00
MarvinF aa68992d45 Merge pull request #197 from Deutscher-Tischfussballbund/fix/ranking_bug
website freezing up indefinitely
2025-09-26 16:52:53 +02:00
MarvinF 0d4381fc7f Merge pull request #84 from Deutscher-Tischfussballbund/feature/auto-email-missing-results
email reminder for tournament results
2025-09-26 16:51:54 +02:00
Marvin Flock 9b4eb13d52 feat: prevent email flood on new created tournaments when email reminder are turned on in later stages 2025-09-25 23:43:11 +02:00
Marvin Flock cfe4f871f7 Merge branch 'sportsmanager2-dev' into feature/auto-email-missing-results
# Conflicts:
#	src/structure/components/com_sportsmanager/database/update.php
#	src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php
2025-09-25 18:16:42 +02:00
Marvin Flock bbe786a075 fix: update regarding code review 2025-09-25 18:13:58 +02:00
Marvin Flock 64ce39a59f feat: add email reminder functionality 2025-09-25 02:53:50 +02:00
Jürgen Meyer d0258d967d Optimierung Inserts fuer Aktualisierung Ranglisten 2025-09-24 09:44:11 +02:00
MarvinF bf99d459fb Merge pull request #189 from Deutscher-Tischfussballbund/fix/183_long-discipline-names-break-layout
Long list of disciplines break tournament view
2025-09-23 20:18:30 +02:00
MarvinF bc91be9382 Merge pull request #195 from Deutscher-Tischfussballbund/sportsmanager2-issue193
change styling/sizing of tables
2025-09-23 20:14:24 +02:00
MarvinF 5c09a35485 Merge pull request #196 from Deutscher-Tischfussballbund/sportsmanager2-issue194
date formats break in group game import
2025-09-23 20:12:18 +02:00
MarvinF f14d5a1e8c Merge pull request #191 from Deutscher-Tischfussballbund/sportsmanager2-issue190
some live results will show up twice
2025-09-23 20:04:18 +02:00
MarvinF 26fd06afef Update view.html.php 2025-09-23 19:48:03 +02:00
Marvin Flock 1f147081e1 fix: add removed part back to sportsmanager 2025-09-23 18:18:24 +02:00
Jürgen Meyer 4f89abc630 Leerzeilen in Importdatei werden ignoriert. 2025-09-22 11:34:27 +02:00
Jürgen Meyer d84c2eefcf Kleine Korrektur 2025-09-22 06:37:27 +02:00
Jürgen Meyer ba73036b02 Import Gruppenspiele optimiert (issue #194) 2025-09-22 06:32:08 +02:00
Jürgen Meyer 29a108d88c Style Manuelle Tabelle an andere Tabellen angepasst (issue #193) 2025-09-22 04:52:40 +02:00
Jürgen Meyer 11e42c2374 tfvhh durch #_ ersetzt 2025-09-18 17:10:24 +02:00
Jürgen Meyer 56776c01f0 Doppelte Live-Ergebnisse eines Spiels (issue #190) 2025-09-18 16:54:22 +02:00
Marvin Flock 6187456e31 Merge branch 'sportsmanager2-dev' into feature/auto-email-missing-results
# Conflicts:
#	src/structure/components/com_sportsmanager/sportsmanager.php
2025-09-17 21:42:29 +02:00
Marvin Flock 49e3bde816 fix: display disciplines under each other in admin and public tournament view 2025-09-17 21:23:51 +02:00
MarvinF 15347b3ab7 Merge pull request #181 from Deutscher-Tischfussballbund/sportsmanager2-issue180
Überarbeitung Pokalauslosung (issue #180)
2025-09-17 20:37:19 +02:00
MarvinF 3363ec1a77 Merge pull request #182 from Deutscher-Tischfussballbund/sportsmanager2-issue178
Überarbeitung Anzeige Vereinsliste in Frontend (issue #178)
2025-09-17 20:36:49 +02:00
MarvinF 751c1919d4 Merge pull request #188 from Deutscher-Tischfussballbund/sportsmanager2-issue179
Initialisierung neuer Einstellungen (issue #179)
2025-09-17 20:36:08 +02:00
Jürgen Meyer 9babcec39e Passive und inaktive Spieler werden im oeffentlichen Bereich nicht mehr gezeigt (issue #150) 2025-09-17 19:17:30 +02:00
Jürgen Meyer e8c4ab2d1d Korrektur Dropdown Spielorte 2025-09-17 10:41:59 +02:00
Jürgen Meyer 53ff7ab566 Initialisierung neuer Einstellungen 2025-09-17 08:54:22 +02:00
Jürgen Meyer ac8bafaa9e Label für show_member_count angepasst 2025-09-17 08:08:36 +02:00
MarvinF 4f6edb0acb Merge pull request #187 from Deutscher-Tischfussballbund/sportsmanager2-stage
stage to prod
2025-09-16 20:37:44 +02:00
MarvinF 822708356b Merge pull request #186 from Deutscher-Tischfussballbund/sportsmanager2-dev
dev to stage
2025-09-16 20:36:49 +02:00
MarvinF 7c302d4ded Merge pull request #185 from Deutscher-Tischfussballbund/fix/live-encounters
live encounters missing in live ticker
2025-09-16 20:35:45 +02:00
Marvin Flock 1e63f2b542 fix: add live encounters to live ticker 2025-09-16 19:50:34 +02:00
Jürgen Meyer 1d9aa13300 Überarbeitung Anzeige Vereinsliste in Frontend (issue #178) 2025-09-12 10:56:25 +02:00
Jürgen Meyer ea85f102a5 Änderungen nach issue #180 2025-09-11 10:22:52 +02:00
MarvinF ebfd6ee4e9 Merge pull request #177 from Deutscher-Tischfussballbund/sportsmanager2-stage
stage to prod
2025-09-04 22:24:49 +02:00
MarvinF a503325ca4 Merge pull request #176 from Deutscher-Tischfussballbund/sportsmanager2-dev
dev to stage
2025-09-04 22:23:53 +02:00
MarvinF 218dc138fb Update build_release.yml 2025-09-04 22:22:18 +02:00
MarvinF eed53841cf Merge pull request #175 from Deutscher-Tischfussballbund/sportsmanager2-stage
stage to prod
2025-09-04 22:05:16 +02:00
MarvinF dbc79096d4 Merge pull request #174 from Deutscher-Tischfussballbund/sportsmanager2-dev
dev to stage
2025-09-04 22:04:25 +02:00
Marvin Flock 3e93e27f72 chore: add notification to teams 2025-09-04 22:02:39 +02:00
MarvinF 8c022f831a Merge pull request #173 from Deutscher-Tischfussballbund/sportsmanager2-stage
stage to prod
2025-09-04 21:56:02 +02:00
MarvinF 2ab429f949 Merge pull request #172 from Deutscher-Tischfussballbund/sportsmanager2-dev
dev to stage
2025-09-04 21:55:00 +02:00
MarvinF 6e53017158 Create teams_integration.yml 2025-09-04 21:40:02 +02:00
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
15 changed files with 10700 additions and 8272 deletions
+21
View File
@@ -98,3 +98,24 @@ jobs:
else else
echo "No draft releases found" echo "No draft releases found"
fi fi
- name: Send notification to Teams
run: |
curl -H 'Content-Type: application/json' \
-d "{
\"@type\": \"MessageCard\",
\"@context\": \"http://schema.org/extensions\",
\"summary\": \"New Release\",
\"themeColor\": \"0076D7\",
\"title\": \"🚀 New Release: ${{ github.ref_name }}\",
\"sections\": [{
\"activityTitle\": \"Repository: ${{ github.repository }}\",
\"text\": \"${{ steps.release_notes_github.outputs.body }}\"
}],
\"potentialAction\": [{
\"@type\": \"OpenUri\",
\"name\": \"View Release\",
\"targets\": [{ \"os\": \"default\", \"uri\": \"https://github.com/${{ github.repository }}/releases/tag/${{ github.ref_name }}\" }]
}]
}" \
${{ secrets.TEAMS_WEBHOOK_URL }}
+3537 -1913
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",
@@ -18,18 +18,25 @@ defined('_JEXEC') or die('Restricted access');
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/database/init.php'; require_once JPATH_SITE . '/components/com_sportsmanager/database/init.php';
function UhrzeitWandlerDE($Zeitstempel): mixed function UhrzeitWandlerDE(string $input): string {
{ // mögliche Datumsformate
$Temp = explode(' ', $Zeitstempel); $formats = [
$Datum = $Temp[0]; 'Y-m-d H:i',
$Uhrzeit = $Temp[1]; 'd.m.Y H:i',
if (preg_match("/\d{2}\.\d{2}\.\d{4}/", $Datum)) { 'd.m.Y H:i:s',
$Datum = substr($Datum, 6, 4) . "-" . substr($Datum, 3, 2) . "-" . substr($Datum, 0, 2); ];
} else if (preg_match("/\d{4}-\d{2}-\d{2}/", $Datum)) {
return $Zeitstempel;
}
return $Datum . " " . $Uhrzeit;
foreach ($formats as $format) {
$dt = DateTime::createFromFormat($format, $input);
// prüfen, ob Parsing erfolgreich war UND das Datum exakt passt
if ($dt && $dt->format($format) === $input) {
return $dt->format('Y-m-d H:i:s');
}
}
// falls kein bekanntes Format -> Original zurückgeben
return $input;
} }
function validateDate($date, $format = 'Y-m-d H:i:s'): bool function validateDate($date, $format = 'Y-m-d H:i:s'): bool
@@ -38,6 +45,22 @@ function validateDate($date, $format = 'Y-m-d H:i:s'): bool
return $d && $d->format($format) == $date; return $d && $d->format($format) == $date;
} }
function detectFileEncoding(string $filename): string {
$handle = fopen($filename, "r");
if (!$handle) {
throw new Exception("Datei konnte nicht geöffnet werden: $filename");
}
// Erstes Stück der Datei lesen (nicht alles, reicht für Erkennung)
$sample = fread($handle, 1000);
fclose($handle);
// Encoding bestimmen
$encoding = mb_detect_encoding($sample, ['UTF-8', 'ISO-8859-1', 'Windows-1252'], true);
return $encoding ?: 'UTF-8'; // Fallback auf UTF-8
}
function adminUebersicht(): void function adminUebersicht(): void
{ {
$db = getDatabase(); $db = getDatabase();
@@ -649,6 +672,7 @@ function adminEinstellungen(): void
redirectSportsManagerURL('&task=admin_uebersicht'); redirectSportsManagerURL('&task=admin_uebersicht');
} }
$verbands_kuerzel = $db->escape(trim($jInput->get('verbands_kuerzel', '', 'RAW')));
$basis_spielernr = $db->escape(trim($jInput->get('basis_spielernr', '', 'RAW'))); $basis_spielernr = $db->escape(trim($jInput->get('basis_spielernr', '', 'RAW')));
$ansprechpartner_ausblenden = $jInput->get('ansprechpartner_ausblenden', 0, 'INT'); $ansprechpartner_ausblenden = $jInput->get('ansprechpartner_ausblenden', 0, 'INT');
$ansprechpartner_spielerdaten = $jInput->get('ansprechpartner_spielerdaten', 0, 'INT'); $ansprechpartner_spielerdaten = $jInput->get('ansprechpartner_spielerdaten', 0, 'INT');
@@ -658,16 +682,22 @@ function adminEinstellungen(): void
$lizenz_anzeigen = $jInput->get('lizenz_anzeigen', 0, 'INT'); $lizenz_anzeigen = $jInput->get('lizenz_anzeigen', 0, 'INT');
$anzahl_mitglieder_zeigen = $jInput->get('anzahl_mitglieder_zeigen', 0, 'INT'); $anzahl_mitglieder_zeigen = $jInput->get('anzahl_mitglieder_zeigen', 0, 'INT');
$verband_anzeigen = $jInput->get('verband_anzeigen', 0, 'INT'); $verband_anzeigen = $jInput->get('verband_anzeigen', 0, 'INT');
$spalte_mitglieder_zeigen = $jInput->get('spalte_mitglieder_zeigen', 0, 'INT');
$turnierbaum_zeigen = $jInput->get('turnierbaum_zeigen', 0, 'INT'); $turnierbaum_zeigen = $jInput->get('turnierbaum_zeigen', 0, 'INT');
$termine_beantragen = $jInput->get('termine_beantragen', 0, 'INT'); $termine_beantragen = $jInput->get('termine_beantragen', 0, 'INT');
$enableEmailReminders = $jInput->get('enable_email_reminders', 0, 'INT');
$spielerimport_persoenliche_daten_vorauswahl = $jInput->get('spielerimport_persoenliche_daten_vorauswahl', 0, 'INT'); $spielerimport_persoenliche_daten_vorauswahl = $jInput->get('spielerimport_persoenliche_daten_vorauswahl', 0, 'INT');
$api_push_key = $jInput->get('api_push_key', '', 'RAW'); $api_push_key = $jInput->get('api_push_key', '', 'RAW');
/* $query = "REPLACE #__sportsmanager_einstellungen"
$twitter_benutzername = $db->escape(trim( $jInput->get('twitter_benutzername', '', 'RAW') )); . "\n SET name = 'verbands_kuerzel'"
$twitter_kennwort = !empty($twitter_benutzername) ? $db->escape(trim( $jInput->get('twitter_kennwort', '', 'RAW') )) : ""; . ", wert = '$verbands_kuerzel'";
*/ $db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$query = "REPLACE #__sportsmanager_einstellungen" $query = "REPLACE #__sportsmanager_einstellungen"
. "\n SET name = 'basis_spielernr'" . "\n SET name = 'basis_spielernr'"
@@ -717,6 +747,14 @@ function adminEinstellungen(): void
die($db->stderr(true)); die($db->stderr(true));
} }
$query = "REPLACE #__sportsmanager_einstellungen"
. "\n SET name = 'spalte_mitglieder_zeigen'"
. ", wert = '$spalte_mitglieder_zeigen'";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$query = "REPLACE #__sportsmanager_einstellungen" $query = "REPLACE #__sportsmanager_einstellungen"
. "\n SET name = 'turnierbaum_zeigen'" . "\n SET name = 'turnierbaum_zeigen'"
. ", wert = '$turnierbaum_zeigen'"; . ", wert = '$turnierbaum_zeigen'";
@@ -771,6 +809,12 @@ function adminEinstellungen(): void
die($db->stderr(true)); die($db->stderr(true));
} }
$query = "REPLACE #__sportsmanager_einstellungen SET name = 'enable_email_reminders', wert = '$enableEmailReminders'";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
redirectSportsManagerURL('&task=admin_uebersicht'); redirectSportsManagerURL('&task=admin_uebersicht');
} }
@@ -915,6 +959,7 @@ function adminSpieler($admin_uebersicht): void
else if ($beschraenkter_zugriff == 2) else if ($beschraenkter_zugriff == 2)
$query .= "\n INNER JOIN (SELECT spieler_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 AND mitgliedsstatus = 1 AND" . vereinFilter("#__sportsmanager_verein.verein_id IN") . "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 INNER JOIN #__sportsmanager_verein USING (verein_id) WHERE NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND NOT #__sportsmanager_verein.ausgetreten AND mitgliedsstatus = 1 AND" . vereinFilter("#__sportsmanager_verein.verein_id IN") . "GROUP BY spieler_id ORDER BY spieler_id, verein_id) AS mitgliedschaft USING (spieler_id)";
$anzahlSpieler["aktiv"] = loadResult($db, $query); $anzahlSpieler["aktiv"] = loadResult($db, $query);
$jahr = date("Y"); $jahr = date("Y");
$anzahlSpieler["J aktiv"] = loadResult($db, $query . "\n WHERE " . ($jahr - 18) . " <= geburtsjahr"); $anzahlSpieler["J aktiv"] = loadResult($db, $query . "\n WHERE " . ($jahr - 18) . " <= geburtsjahr");
$anzahlSpieler["S aktiv"] = loadResult($db, $query . "\n WHERE " . ($jahr - 50) . " > geburtsjahr"); $anzahlSpieler["S aktiv"] = loadResult($db, $query . "\n WHERE " . ($jahr - 50) . " > geburtsjahr");
@@ -941,6 +986,9 @@ function adminSpieler($admin_uebersicht): void
$query .= "\n INNER JOIN (SELECT spieler_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 AND mitgliedsstatus = 3 AND" . vereinFilter("#__sportsmanager_verein.verein_id IN") . "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 INNER JOIN #__sportsmanager_verein USING (verein_id) WHERE NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND NOT #__sportsmanager_verein.ausgetreten AND mitgliedsstatus = 3 AND" . vereinFilter("#__sportsmanager_verein.verein_id IN") . "GROUP BY spieler_id ORDER BY spieler_id, verein_id) AS mitgliedschaft USING (spieler_id)";
$anzahlSpieler["passiv"] = loadResult($db, $query); $anzahlSpieler["passiv"] = loadResult($db, $query);
$query = "SELECT COUNT(DISTINCT spieler_id) FROM #__sportsmanager_spieler WHERE aktueller_verein_id IS NULL;";
$anzahlSpieler["vereinslos"] = loadResult($db, $query) - $anzahlSpieler["passiv"];
$search = stripslashes($filter); $search = stripslashes($filter);
if ($beschraenkter_zugriff == 0 && $search == "_____DOPPELT") { if ($beschraenkter_zugriff == 0 && $search == "_____DOPPELT") {
$jahr = date("Y"); $jahr = date("Y");
@@ -4593,11 +4641,13 @@ function adminKategorien(): void
$kategorien[6] = array(); $kategorien[6] = array();
$kategorien[7] = array(); $kategorien[7] = array();
$anzahl = array(0,50,100,50,50,100,50,50);
foreach ($rows as $row) foreach ($rows as $row)
$kategorien[$row->typ][$row->nummer] = $row->bezeichnung; $kategorien[$row->typ][$row->nummer] = $row->bezeichnung;
for ($typ = 1; $typ <= 7; $typ++) { for ($typ = 1; $typ <= 7; $typ++) {
for ($nummer = 1; $nummer <= 50; $nummer++) { for ($nummer = 1; $nummer <= $anzahl[$typ]; $nummer++) {
$bezeichnung = $db->escape($jInput->get('bezeichnung_' . $typ . '_' . $nummer, '', 'RAW')); $bezeichnung = $db->escape($jInput->get('bezeichnung_' . $typ . '_' . $nummer, '', 'RAW'));
if (empty($bezeichnung)) { if (empty($bezeichnung)) {
if (isset($kategorien[$typ][$nummer])) { if (isset($kategorien[$typ][$nummer])) {
@@ -6448,7 +6498,6 @@ function adminEditMannschaft(): void
if ($id == 0) { if ($id == 0) {
$query = "INSERT INTO #__sportsmanager_team (verein_id, veranstaltung_id, teamname, teamname_kurz, tischtyp, tischeigenschaften, heimspiel_wochentag, heimspiel_uhrzeit, heimspielort_id, nichtraucherschutz, zusatzpunkte" . ($veranstaltung->tabellenwertung == -2 ? ", platz" : "") . ", pin)" $query = "INSERT INTO #__sportsmanager_team (verein_id, veranstaltung_id, teamname, teamname_kurz, tischtyp, tischeigenschaften, heimspiel_wochentag, heimspiel_uhrzeit, heimspielort_id, nichtraucherschutz, zusatzpunkte" . ($veranstaltung->tabellenwertung == -2 ? ", platz" : "") . ", pin)"
. "\n VALUES (" . ($verein_id != 0 ? "'$verein_id'" : "NULL") . ", '$veranstaltungId', '$teamname', '$teamname_kurz', '$tischtyp', '$tischeigenschaften', '$heimspiel_wochentag', '$heimspiel_uhrzeit', " . ($heimspielort_id != 0 ? "'$heimspielort_id'" : "NULL") . ", '$nichtraucherschutz', '$zusatzpunkte'" . ($veranstaltung->tabellenwertung == -2 ? ($platz != 0 ? ", '$platz'" : ", NULL") : "") . ", '$pin');"; . "\n VALUES (" . ($verein_id != 0 ? "'$verein_id'" : "NULL") . ", '$veranstaltungId', '$teamname', '$teamname_kurz', '$tischtyp', '$tischeigenschaften', '$heimspiel_wochentag', '$heimspiel_uhrzeit', " . ($heimspielort_id != 0 ? "'$heimspielort_id'" : "NULL") . ", '$nichtraucherschutz', '$zusatzpunkte'" . ($veranstaltung->tabellenwertung == -2 ? ($platz != 0 ? ", '$platz'" : ", NULL") : "") . ", '$pin');";
echo $query;
$db->setQuery($query); $db->setQuery($query);
if (!$db->execute()) { if (!$db->execute()) {
die($db->stderr(true)); die($db->stderr(true));
@@ -7779,7 +7828,12 @@ function adminEditBegegnung(): void
. "\n FROM #__sportsmanager_spielort" . "\n FROM #__sportsmanager_spielort"
. "\n ORDER BY ortsname, name, ortsteil"; . "\n ORDER BY ortsname, name, ortsteil";
$spielorte = loadObjectList($db, $query); $spielorte = loadObjectList($db, $query);
HTML_sportsmanager_admin::adminEditBegegnung($veranstaltung, $row, $id == null, $teams, $spielorte); $query = "SELECT spieltag_titel FROM #__sportsmanager_begegnung"
. "\n WHERE spieltag_titel IS NOT NULL"
. "\n GROUP BY spieltag_titel"
. "\n ORDER BY spieltag_titel;";
$auswahl_spieltagtitel = loadObjectList($db, $query);
HTML_sportsmanager_admin::adminEditBegegnung($veranstaltung, $row, $id == null, $teams, $spielorte, $auswahl_spieltagtitel);
HTML_sportsmanager_admin::adminVerlegenVerlauf($verlegen_aktionen); HTML_sportsmanager_admin::adminVerlegenVerlauf($verlegen_aktionen);
} }
@@ -7803,6 +7857,8 @@ function adminEditBegegnung(): void
$datum = normalisiertesDatum($jInput->get('datum_jahr', 0, 'INT') == 0 ? null : sprintf("%04d-%02d-%02d", $jInput->get('datum_jahr', 0, 'INT'), $jInput->get('datum_monat', 0, 'INT'), $jInput->get('datum_tag', 0, 'INT'))); $datum = normalisiertesDatum($jInput->get('datum_jahr', 0, 'INT') == 0 ? null : sprintf("%04d-%02d-%02d", $jInput->get('datum_jahr', 0, 'INT'), $jInput->get('datum_monat', 0, 'INT'), $jInput->get('datum_tag', 0, 'INT')));
$uhrzeit = normalisierteUhrzeit(sprintf(" %02d-%02d-00", $jInput->get('uhrzeit_stunden', 0, 'INT'), $jInput->get('uhrzeit_minuten', 0, 'INT'))); $uhrzeit = normalisierteUhrzeit(sprintf(" %02d-%02d-00", $jInput->get('uhrzeit_stunden', 0, 'INT'), $jInput->get('uhrzeit_minuten', 0, 'INT')));
$zeitpunkt = $datum == null || $uhrzeit == null ? null : ($datum . " " . $uhrzeit); $zeitpunkt = $datum == null || $uhrzeit == null ? null : ($datum . " " . $uhrzeit);
$spiel_nr = $jInput->get('spiel_nr', 0, 'INT');
$spieltag_titel = $db->escape(trim($jInput->get('spieltag_titel', '', 'RAW')));
$heim_team_id = $jInput->get('heim_team_id', 0, 'INT'); $heim_team_id = $jInput->get('heim_team_id', 0, 'INT');
$gast_team_id = $jInput->get('gast_team_id', 0, 'INT'); $gast_team_id = $jInput->get('gast_team_id', 0, 'INT');
$spielort_id = $jInput->get('spielort_id', 0, 'INT'); $spielort_id = $jInput->get('spielort_id', 0, 'INT');
@@ -7845,8 +7901,10 @@ function adminEditBegegnung(): void
$begegnung = null; $begegnung = null;
$user_id = isExternalDatabase() ? 0 : Factory::getContainer()->get(SiteApplication::class)->getIdentity()->id; $user_id = isExternalDatabase() ? 0 : Factory::getContainer()->get(SiteApplication::class)->getIdentity()->id;
if ($id == 0) { if ($id == 0) {
$query = "INSERT INTO #__sportsmanager_begegnung (zeitpunkt, spieltag, heim_team_id, gast_team_id, spielort_id, tisch, nichtraucherschutz)" $query = "INSERT INTO #__sportsmanager_begegnung (zeitpunkt, spieltag, spieltag_titel, spiel_nr, heim_team_id, gast_team_id, spielort_id, tisch, nichtraucherschutz)"
. "\n VALUES (" . ($zeitpunkt != null ? "'$zeitpunkt'" : "NULL") . ", " . ($runde != null ? "'$runde'" : "NULL") . ", '$heim_team_id', '$gast_team_id', " . ($spielort_id != 0 ? "'$spielort_id'" : "NULL") . ", '$tisch', '$nichtraucherschutz');"; . "\n VALUES (" . ($zeitpunkt != null ? "'$zeitpunkt'" : "NULL") . ", " . ($runde != null ? "'$runde'" : "NULL")
. "\n , '$spieltag_titel', " . ($spiel_nr != 0 ? "'$spiel_nr'" : "NULL") . ", '$heim_team_id', '$gast_team_id'"
. "\n , " . ($spielort_id != 0 ? "'$spielort_id'" : "NULL") . ", '$tisch', '$nichtraucherschutz');";
$db->setQuery($query); $db->setQuery($query);
if (!$db->execute()) { if (!$db->execute()) {
die($db->stderr(true)); die($db->stderr(true));
@@ -7881,10 +7939,15 @@ function adminEditBegegnung(): void
} }
} }
if ($begegnung->heim_team_id != $heim_team_id || $begegnung->gast_team_id != $gast_team_id || $begegnung->zeitpunkt != $zeitpunkt || $begegnung->spieltag != $runde || $begegnung->spielort_id != $spielort_id || (empty($begegnung->tisch) != empty($tisch) || $begegnung->tisch != $tisch) || $begegnung->nichtraucherschutz != $nichtraucherschutz) { if ($begegnung->heim_team_id != $heim_team_id || $begegnung->gast_team_id != $gast_team_id ||
$begegnung->zeitpunkt != $zeitpunkt || $begegnung->spieltag != $runde || $begegnung->spiel_nr != $spiel_nr ||
$begegnung->spieltag_titel != $spieltag_titel || $begegnung->spielort_id != $spielort_id || (empty($begegnung->tisch) != empty($tisch) ||
$begegnung->tisch != $tisch) || $begegnung->nichtraucherschutz != $nichtraucherschutz) {
$query = "UPDATE #__sportsmanager_begegnung" $query = "UPDATE #__sportsmanager_begegnung"
. "\n SET zeitpunkt = " . ($zeitpunkt != null ? "'$zeitpunkt'" : "NULL") . "," . "\n SET zeitpunkt = " . ($zeitpunkt != null ? "'$zeitpunkt'" : "NULL") . ","
. "\n spieltag = " . ($runde != null ? "'$runde'" : "NULL") . "," . "\n spieltag = " . ($runde != null ? "'$runde'" : "NULL") . ","
. "\n spieltag_titel = '$spieltag_titel',"
. "\n spiel_nr = " .($spiel_nr != 0 ? "'$spiel_nr'" : "NULL") . ","
. "\n heim_team_id = '$heim_team_id'," . "\n heim_team_id = '$heim_team_id',"
. "\n gast_team_id = '$gast_team_id'," . "\n gast_team_id = '$gast_team_id',"
. "\n spielort_id = " . ($spielort_id != 0 ? "'$spielort_id'" : "NULL") . "," . "\n spielort_id = " . ($spielort_id != 0 ? "'$spielort_id'" : "NULL") . ","
@@ -8319,7 +8382,7 @@ function adminSaveBegegnungSpielplan(): void
} }
if ($zwischenergebnis) { if ($zwischenergebnis) {
$query = "INSERT INTO #__sportsmanager_unbestaetigtes_ergebnis (begegnung_id, vorschlagendes_team_id, zwischenergebnis, kommentar, vorgeschlagen)" $query = "INSERT IGNORE INTO #__sportsmanager_unbestaetigtes_ergebnis (begegnung_id, vorschlagendes_team_id, zwischenergebnis, kommentar, vorgeschlagen)"
. "\n VALUES ('$id', " . ($bestaetigen != 0 ? "'$vorschlagendes_team_id'" : "'0'") . ", '1', '$kommentar', now());"; . "\n VALUES ('$id', " . ($bestaetigen != 0 ? "'$vorschlagendes_team_id'" : "'0'") . ", '1', '$kommentar', now());";
$db->setQuery($query); $db->setQuery($query);
if (!$db->execute()) { if (!$db->execute()) {
@@ -8333,7 +8396,7 @@ function adminSaveBegegnungSpielplan(): void
abortWithError($db->stderr(true)); abortWithError($db->stderr(true));
} }
} else if ($bestaetigen != 0) { } else if ($bestaetigen != 0) {
$query = "INSERT INTO #__sportsmanager_unbestaetigtes_ergebnis (begegnung_id, vorschlagendes_team_id, kommentar, vorgeschlagen)" $query = "INSERT IGNORE INTO #__sportsmanager_unbestaetigtes_ergebnis (begegnung_id, vorschlagendes_team_id, kommentar, vorgeschlagen)"
. "\n VALUES ('$id', '$vorschlagendes_team_id', '$kommentar', now());"; . "\n VALUES ('$id', '$vorschlagendes_team_id', '$kommentar', now());";
$db->setQuery($query); $db->setQuery($query);
if (!$db->execute()) { if (!$db->execute()) {
@@ -9491,6 +9554,8 @@ function adminBegegnungenImportieren(): void
redirectSportsManagerURL('&task=admin_spieler', Text::_('COM_SPORTSMANAGER_NO_FILE_SPECIFIED')); redirectSportsManagerURL('&task=admin_spieler', Text::_('COM_SPORTSMANAGER_NO_FILE_SPECIFIED'));
} }
$encoding = detectFileEncoding($_FILES["daten"]["tmp_name"]);
$handle = fopen($_FILES["daten"]["tmp_name"], "r"); $handle = fopen($_FILES["daten"]["tmp_name"], "r");
if (!$handle) { if (!$handle) {
redirectSportsManagerURL('&task=admin_spieler', Text::_('COM_SPORTSMANAGER_COULD_NOT_OPEN_FILE')); redirectSportsManagerURL('&task=admin_spieler', Text::_('COM_SPORTSMANAGER_COULD_NOT_OPEN_FILE'));
@@ -9512,6 +9577,7 @@ function adminBegegnungenImportieren(): void
$Titelzeile = null; $Titelzeile = null;
$import_zeile = false; $import_zeile = false;
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) { while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
if (empty($data[0])){continue;}
if ($Zeile == 1) { if ($Zeile == 1) {
foreach($data as $spalte_nr => $spalte) foreach($data as $spalte_nr => $spalte)
{ {
@@ -9520,7 +9586,7 @@ function adminBegegnungenImportieren(): void
if (vergleich($spalte,"heim,heimteam,heimmannschaft")) $Titelzeile['Heim'] = $spalte_nr; if (vergleich($spalte,"heim,heimteam,heimmannschaft")) $Titelzeile['Heim'] = $spalte_nr;
if (vergleich($spalte,"gast,gastteam,gastmannschaft")) $Titelzeile['Gast'] = $spalte_nr; if (vergleich($spalte,"gast,gastteam,gastmannschaft")) $Titelzeile['Gast'] = $spalte_nr;
if (vergleich($spalte,"spielnr,spielnummer")) $Titelzeile['Spiel_Nr'] = $spalte_nr; if (vergleich($spalte,"spielnr,spielnummer")) $Titelzeile['Spiel_Nr'] = $spalte_nr;
if (vergleich($spalte,"spieltagtitel")) $Titelzeile['Spieltag_Titel'] = $spalte_nr; if (vergleich($spalte,"spieltagtitel,spieltitel")) $Titelzeile['Spieltag_Titel'] = $spalte_nr;
if (vergleich($spalte,"jahr,spieljahr")) $Titelzeile['Spieljahr'] = $spalte_nr; if (vergleich($spalte,"jahr,spieljahr")) $Titelzeile['Spieljahr'] = $spalte_nr;
if (vergleich($spalte,"kalenderwoche,woche,kw")) $Titelzeile['Kalenderwoche'] = $spalte_nr; if (vergleich($spalte,"kalenderwoche,woche,kw")) $Titelzeile['Kalenderwoche'] = $spalte_nr;
} }
@@ -9529,10 +9595,16 @@ function adminBegegnungenImportieren(): void
$bgcolor = "green"; $bgcolor = "green";
$Begegnung[$Zeile]['spieltag'] = $data[$Titelzeile['Spieltag_Nr']]; $Begegnung[$Zeile]['spieltag'] = $data[$Titelzeile['Spieltag_Nr']];
$Begegnung[$Zeile]['zeitpunkt'] = UhrzeitWandlerDE($data[$Titelzeile['Spielstart']]); $Begegnung[$Zeile]['zeitpunkt'] = UhrzeitWandlerDE($data[$Titelzeile['Spielstart']]);
if ($encoding == "UTF-8"){
$Begegnung[$Zeile]['heim_team_id'] = $Mannschaften[$data[$Titelzeile['Heim']]]['team_id']; $Begegnung[$Zeile]['heim_team_id'] = $Mannschaften[$data[$Titelzeile['Heim']]]['team_id'];
$Begegnung[$Zeile]['gast_team_id'] = $Mannschaften[$data[$Titelzeile['Gast']]]['team_id']; $Begegnung[$Zeile]['gast_team_id'] = $Mannschaften[$data[$Titelzeile['Gast']]]['team_id'];
if (isset($data[$Titelzeile['Spiel_Nr']])) $Begegnung[$Zeile]['spiel_nr'] = $data[$Titelzeile['Spiel_Nr']];
if (isset($data[$Titelzeile['Spieltag_Titel']])) $Begegnung[$Zeile]['spieltag_titel'] = $data[$Titelzeile['Spieltag_Titel']]; if (isset($data[$Titelzeile['Spieltag_Titel']])) $Begegnung[$Zeile]['spieltag_titel'] = $data[$Titelzeile['Spieltag_Titel']];
} else {
$Begegnung[$Zeile]['heim_team_id'] = $Mannschaften[utf8_encode($data[$Titelzeile['Heim']])]['team_id'];
$Begegnung[$Zeile]['gast_team_id'] = $Mannschaften[utf8_encode($data[$Titelzeile['Gast']])]['team_id'];
if (isset($data[$Titelzeile['Spieltag_Titel']])) $Begegnung[$Zeile]['spieltag_titel'] = utf8_encode($data[$Titelzeile['Spieltag_Titel']]);
}
if (isset($data[$Titelzeile['Spiel_Nr']])) $Begegnung[$Zeile]['spiel_nr'] = $data[$Titelzeile['Spiel_Nr']];
echo "<tr style='color: white;'>"; echo "<tr style='color: white;'>";
if ($Begegnung[$Zeile]['spieltag'] > 99 or $Begegnung[$Zeile]['spieltag'] < 1) { if ($Begegnung[$Zeile]['spieltag'] > 99 or $Begegnung[$Zeile]['spieltag'] < 1) {
$bgcolor = "red"; $bgcolor = "red";
@@ -9552,7 +9624,6 @@ function adminBegegnungenImportieren(): void
$Mannschaften[$data[$Titelzeile['Heim']]]['heimspiel_uhrzeit']); $Mannschaften[$data[$Titelzeile['Heim']]]['heimspiel_uhrzeit']);
} }
$Begegnung[$Zeile]['zeitpunkt'] = $data[$Titelzeile['Spielstart']];
if (!validateDate($Begegnung[$Zeile]['zeitpunkt'])) { if (!validateDate($Begegnung[$Zeile]['zeitpunkt'])) {
$bgcolor = "red"; $bgcolor = "red";
$import = false; $import = false;
@@ -9572,7 +9643,12 @@ function adminBegegnungenImportieren(): void
} else { } else {
$bgcolor = "green"; $bgcolor = "green";
} }
echo "<td style='text-align: center; background-color:" . $bgcolor . "'>" . $data[$Titelzeile['Heim']] . "</td>"; echo "<td style='text-align: center; background-color:" . $bgcolor . "'>";
if ($encoding == "UTF-8")
echo $data[$Titelzeile['Heim']];
else
echo utf8_encode($data[$Titelzeile['Heim']]);
echo "</td>";
if ($Begegnung[$Zeile]['gast_team_id'] == "") { if ($Begegnung[$Zeile]['gast_team_id'] == "") {
if ($data[$Titelzeile['Gast']] == "spielfrei") { if ($data[$Titelzeile['Gast']] == "spielfrei") {
$bgcolor = "orange"; $bgcolor = "orange";
@@ -9584,7 +9660,12 @@ function adminBegegnungenImportieren(): void
} else { } else {
$bgcolor = "green"; $bgcolor = "green";
} }
echo "<td style='text-align: center; background-color:" . $bgcolor . "'>" . $data[$Titelzeile['Gast']] . "</td>"; echo "<td style='text-align: center; background-color:" . $bgcolor . "'>";
if ($encoding == "UTF-8")
echo $data[$Titelzeile['Gast']];
else
echo utf8_encode($data[$Titelzeile['Gast']]);
echo "</td>";
echo "</tr>"; echo "</tr>";
} }
if (!$import_zeile) { if (!$import_zeile) {
@@ -9592,6 +9673,7 @@ function adminBegegnungenImportieren(): void
} }
$Zeile++; $Zeile++;
} }
echo "<tr><td colspan=4 style='text-align: center;'>Dateiformat: $encoding</td></tr>";
echo "</table>"; echo "</table>";
fclose($handle); fclose($handle);
@@ -9663,7 +9745,12 @@ function adminBegegnungenRundeErzeugenForm(): void
. "\n FROM #__sportsmanager_spielort" . "\n FROM #__sportsmanager_spielort"
. "\n ORDER BY ortsname, name, ortsteil"; . "\n ORDER BY ortsname, name, ortsteil";
$spielorte = loadObjectList($db, $query); $spielorte = loadObjectList($db, $query);
HTML_sportsmanager_admin::adminBegegnungenRundeErzeugen($veranstaltung, $rows, $row, $spielorte); $query = "SELECT spieltag_titel FROM #__sportsmanager_begegnung"
. "\n WHERE spieltag_titel IS NOT NULL"
. "\n GROUP BY spieltag_titel"
. "\n ORDER BY spieltag_titel;";
$auswahl_spieltagtitel = loadObjectList($db, $query);
HTML_sportsmanager_admin::adminBegegnungenRundeErzeugen($veranstaltung, $rows, $row, $spielorte, $auswahl_spieltagtitel);
} }
#[NoReturn] function adminBegegnungenRundeErzeugen(): void #[NoReturn] function adminBegegnungenRundeErzeugen(): void
@@ -9696,6 +9783,7 @@ function adminBegegnungenRundeErzeugenForm(): void
} }
$rundentyp = $jInput->get('rundentyp', -1, 'INT'); $rundentyp = $jInput->get('rundentyp', -1, 'INT');
$runde = max(min(abs($jInput->get('runde', 1, 'INT')), $rundentyp == -2 ? 99 : 9999), 1); $runde = max(min(abs($jInput->get('runde', 1, 'INT')), $rundentyp == -2 ? 99 : 9999), 1);
$spieltag_titel = $db->escape(trim($jInput->get('spieltag_titel', '', 'RAW')));
$platzierung_ende = max(min(abs($jInput->get('platzierung_ende', 0, 'INT')), $runde + 99), 1); $platzierung_ende = max(min(abs($jInput->get('platzierung_ende', 0, 'INT')), $runde + 99), 1);
if ($rundentyp >= 10000) if ($rundentyp >= 10000)
@@ -9715,8 +9803,10 @@ function adminBegegnungenRundeErzeugenForm(): void
$teamIds[$i] = $jInput->get('team_id_' . $i, 0, 'INT'); $teamIds[$i] = $jInput->get('team_id_' . $i, 0, 'INT');
$spielort_ids = array(); $spielort_ids = array();
for ($i = 1; $i <= $anzahlteams; $i += 2) for ($i = 1; $i <= $anzahlteams; $i += 2){
$spielort_ids[$i] = $jInput->get('spielort_id_' . $i, 0, 'INT'); $spielort_ids[$i] = $jInput->get('spielort_id_' . $i, 0, 'INT');
$spiel_nr[$i] = $jInput->get('spiel_nr_' . $i, 0, 'INT');
}
for ($teamNr = 1; $teamNr < $anzahlteams; $teamNr += 2) { for ($teamNr = 1; $teamNr < $anzahlteams; $teamNr += 2) {
$heim_team_id = $teamIds[$teamNr]; $heim_team_id = $teamIds[$teamNr];
@@ -9748,14 +9838,15 @@ function adminBegegnungenRundeErzeugenForm(): void
$zeitpunkt = sprintf("%04d-%02d-%02d %02d:%02d", $ts["year"], $ts["mon"], $ts["mday"], floor($heim_team->heimspiel_uhrzeit / 100), $heim_team->heimspiel_uhrzeit % 100); $zeitpunkt = sprintf("%04d-%02d-%02d %02d:%02d", $ts["year"], $ts["mon"], $ts["mday"], floor($heim_team->heimspiel_uhrzeit / 100), $heim_team->heimspiel_uhrzeit % 100);
} }
$query = "INSERT INTO #__sportsmanager_begegnung (zeitpunkt, spieltag, heim_team_id, gast_team_id, spielort_id)" $query = "INSERT INTO #__sportsmanager_begegnung (zeitpunkt, spieltag, spieltag_titel, spiel_nr, heim_team_id, gast_team_id, spielort_id)"
. "\n VALUES (" . ($zeitpunkt != null ? "'$zeitpunkt'" : "NULL") . ", " . ($runde != null ? "'$runde'" : "NULL") . ", '$heim_team_id', '$gast_team_id', " . ($spielort_ids[$teamNr] != 0 ? "'$spielort_ids[$teamNr]'" : "NULL") . ");"; . "\n VALUES (" . ($zeitpunkt != null ? "'$zeitpunkt'" : "NULL") . ", " . ($runde != null ? "'$runde'" : "NULL")
. "\n , '$spieltag_titel', " . ($spiel_nr[$teamNr] != 0 ? "'$spiel_nr[$teamNr]'" : "NULL")
. "\n , '$heim_team_id', '$gast_team_id', " . ($spielort_ids[$teamNr] != 0 ? "'$spielort_ids[$teamNr]'" : "NULL") . ");";
$db->setQuery($query); $db->setQuery($query);
if (!$db->execute()) { if (!$db->execute()) {
die($db->stderr(true)); die($db->stderr(true));
} }
} }
redirectSportsManagerURL('&task=admin_begegnungen&veranstaltungid=' . $veranstaltungId); redirectSportsManagerURL('&task=admin_begegnungen&veranstaltungid=' . $veranstaltungId);
} }
@@ -9818,7 +9909,12 @@ function adminBegegnungenPokalrundeAuslosenForm(): void
. "\n ORDER BY spieltag DESC"; . "\n ORDER BY spieltag DESC";
$veranstaltung->nicht_abgeschlossene_spiele = loadResult($db, $query); $veranstaltung->nicht_abgeschlossene_spiele = loadResult($db, $query);
HTML_sportsmanager_admin::adminBegegnungenPokalrundeAuslosenForm($veranstaltung,getAuswahlSpieltagtitel()); $query = "SELECT *"
. "\n FROM #__sportsmanager_spielort"
. "\n ORDER BY ortsname, name, ortsteil";
$spielorte = loadObjectList($db, $query);
HTML_sportsmanager_admin::adminBegegnungenPokalrundeAuslosenForm($veranstaltung,getAuswahlSpieltagtitel(),$spielorte);
} }
#[NoReturn] function adminBegegnungenPokalrundeAuslosen(): void #[NoReturn] function adminBegegnungenPokalrundeAuslosen(): void
@@ -9828,6 +9924,7 @@ function adminBegegnungenPokalrundeAuslosenForm(): void
$sperren = false; $sperren = false;
$veranstaltungId = $jInput->get('veranstaltungid', 0, 'INT'); $veranstaltungId = $jInput->get('veranstaltungid', 0, 'INT');
$spielort_id = $jInput->get('spielort_id', 0, 'INT');
$rundenNr = $jInput->get('runde', 0, 'INT'); $rundenNr = $jInput->get('runde', 0, 'INT');
$rundenTitel = $jInput->get('rundentitel', 0, 'STRING'); $rundenTitel = $jInput->get('rundentitel', 0, 'STRING');
$spielumplatz3 = $jInput->get('spielumplatz3', 0, 'INT'); $spielumplatz3 = $jInput->get('spielumplatz3', 0, 'INT');
@@ -9978,7 +10075,7 @@ function adminBegegnungenPokalrundeAuslosenForm(): void
$query .= "('" . $match['zeitpunkt'] . "', " . $rundenNr . $query .= "('" . $match['zeitpunkt'] . "', " . $rundenNr .
", '" . $match['rundentitel'] . "', " . $key . ", '" . $match['rundentitel'] . "', " . $key .
", '" . $match['heim'] . "', '" . $match['gast'] . "'" . ", '" . $match['heim'] . "', '" . $match['gast'] . "'" .
", " . ($match['heimspielort_id'] != 0 ? "'" . $match['heimspielort_id'] . "'" : "NULL") . ")"; ", " . ($spielort_id != 0 ? "'" . $spielort_id . "'" : "NULL") . ")";
} }
$query .= "; "; $query .= "; ";
$db->setQuery($query); $db->setQuery($query);
@@ -10007,9 +10104,11 @@ function adminBegegnungenPokalrundeAuslosenForm(): void
$sperren = false; $sperren = false;
$veranstaltungId = $jInput->get('veranstaltungid', 0, 'INT'); $veranstaltungId = $jInput->get('veranstaltungid', 0, 'INT');
$spielort_id = $jInput->get('spielort_id', 0, 'INT');
$rundenNr = $jInput->get('runde', 0, 'INT'); $rundenNr = $jInput->get('runde', 0, 'INT');
$rundenTitel = $jInput->get('rundentitel', 0, 'STRING'); $rundenTitel = $jInput->get('rundentitel', 0, 'STRING');
$spielumplatz3 = $jInput->get('spielumplatz3', 0, 'INT'); $spielumplatz3 = $jInput->get('spielumplatz3', 0, 'INT');
$heimrecht_losen = $jInput->get('heimrecht_losen', 0, 'INT');
if ($veranstaltungId == 0) die("Missing id!"); if ($veranstaltungId == 0) die("Missing id!");
@@ -10159,12 +10258,22 @@ function adminBegegnungenPokalrundeAuslosenForm(): void
$matches[2]['rundentitel'] = "Spiel um Platz 3"; $matches[2]['rundentitel'] = "Spiel um Platz 3";
} }
if ($heimrecht_losen)
{
foreach ($matches as $key => $match) {
if (random_int(0, 1) === 1) {
$tmp = $matches[$key]['heim'];
$matches[$key]['heim'] = $matches[$key]['gast'];
$matches[$key]['gast'] = $tmp;
}
}
}
$Fehlertext = ""; $Fehlertext = "";
foreach($matches AS $spiel_nr => $match) foreach($matches AS $spiel_nr => $match)
{ {
$matches[$spiel_nr]['rundentitel'] = $matches[$spiel_nr]['rundentitel'] ?? $rundenTitel; $matches[$spiel_nr]['rundentitel'] = $matches[$spiel_nr]['rundentitel'] ?? $rundenTitel;
$matches[$spiel_nr]['zeitpunkt'] = $zeitpunkt; $matches[$spiel_nr]['zeitpunkt'] = $zeitpunkt;
$matches[$spiel_nr]['heimspielort_id'] = $teams[$teams_setzliste[$setzung[0]]]['heimspielort_id'];
$team_heim = $match['heim']; $team_heim = $match['heim'];
if ($datum_kw != null && $teams[$team_heim]['heimspiel_wochentag'] !== 0) { if ($datum_kw != null && $teams[$team_heim]['heimspiel_wochentag'] !== 0) {
$ts = getdate(mondaykw($datum_kw, $datum_jahr, $teams[$team_heim]['heimspiel_wochentag'] - 1)); $ts = getdate(mondaykw($datum_kw, $datum_jahr, $teams[$team_heim]['heimspiel_wochentag'] - 1));
@@ -10185,7 +10294,7 @@ function adminBegegnungenPokalrundeAuslosenForm(): void
$query .= "('" . $match['zeitpunkt'] . "', " . $rundenNr . $query .= "('" . $match['zeitpunkt'] . "', " . $rundenNr .
", '" . $match['rundentitel'] . "', " . $key . ", '" . $match['rundentitel'] . "', " . $key .
", '" . $match['heim'] . "', '" . $match['gast'] . "'" . ", '" . $match['heim'] . "', '" . $match['gast'] . "'" .
", " . ($match['heimspielort_id'] != 0 ? "'" . $match['heimspielort_id'] . "'" : "NULL") . ")"; ", " . ($spielort_id != 0 ? "'" . $spielort_id . "'" : "NULL") . ")";
} }
$query .= "; "; $query .= "; ";
$db->setQuery($query); $db->setQuery($query);
@@ -10348,7 +10457,13 @@ function adminBegegnungenExportForm(): void
if ($export == "spielplan" or $export == "spielberichte") { if ($export == "spielplan" or $export == "spielberichte") {
$query = " $query = "
SELECT t1.begegnung_id AS ID, t5.saisonbezeichnung AS Saison, SELECT t1.begegnung_id AS ID, ";
if (einstellungswert("verbands_kuerzel") == "STFV"){
$query .= "
CONCAT(t5.saisonbezeichnung,LPAD(t4.kategorie,2,'0'),LPAD(t1.spieltag,2,'0'),LPAD(IFNULL(t1.spiel_nr, '0'),2,'0')) AS stfv_id, ";
}
$query .= "
t5.saisonbezeichnung AS Saison,
t4.bezeichnung AS Liga, t1.zeitpunkt AS Spielstart, t2.teamname AS Heim, t3.teamname AS Gast, t4.bezeichnung AS Liga, t1.zeitpunkt AS Spielstart, t2.teamname AS Heim, t3.teamname AS Gast,
t1.spieltag AS Spieltag_Nr, t1.spiel_nr AS Spiel_Nr, t1.heim_punkte AS Heim_Tore, t1.spieltag AS Spieltag_Nr, t1.spiel_nr AS Spiel_Nr, t1.heim_punkte AS Heim_Tore,
t1.gast_punkte AS Gast_Tore, t1.heim_spielpunkte AS Heim_Satzpunkte, t1.gast_punkte AS Gast_Tore, t1.heim_spielpunkte AS Heim_Satzpunkte,
@@ -10359,7 +10474,7 @@ function adminBegegnungenExportForm(): void
LEFT JOIN #__sportsmanager_veranstaltung AS t4 ON t2.veranstaltung_id = t4.veranstaltung_id LEFT JOIN #__sportsmanager_veranstaltung AS t4 ON t2.veranstaltung_id = t4.veranstaltung_id
LEFT JOIN #__sportsmanager_saison AS t5 ON t4.saison_id = t5.saison_id LEFT JOIN #__sportsmanager_saison AS t5 ON t4.saison_id = t5.saison_id
WHERE t4.veranstaltung_id = " . $veranstaltungId . " WHERE t4.veranstaltung_id = " . $veranstaltungId . "
ORDER BY t4.veranstaltung_id, t1.spieltag, t1.zeitpunkt; ORDER BY t4.veranstaltung_id, t1.spieltag, t1.spiel_nr, t1.zeitpunkt;
"; ";
$rows = loadObjectList($db, $query); $rows = loadObjectList($db, $query);
@@ -10519,11 +10634,11 @@ function adminEditTurnier(): void
HTML_sportsmanager_admin::adminEditTurnier($row, $veranstalter, $saisons, $vorlage, $users, $berechtigt_fuer_turnier, $kategorien); HTML_sportsmanager_admin::adminEditTurnier($row, $veranstalter, $saisons, $vorlage, $users, $berechtigt_fuer_turnier, $kategorien);
} }
#[NoReturn] function adminSaveTurnier(): void function adminSaveTurnier(): void
{ {
$db = getDatabase(); $db = getDatabase();
$jInput = Factory::getContainer()->get(SiteApplication::class)->input; $jInput = Factory::getContainer()->get(SiteApplication::class)->input;
$Fehlertext = "";
if (!benutzerZugriff("turniere_aendern")) if (!benutzerZugriff("turniere_aendern"))
keinZugriff(); keinZugriff();
@@ -10537,7 +10652,10 @@ function adminEditTurnier(): void
$saison_id = $jInput->get('saison_id', 0, 'INT'); $saison_id = $jInput->get('saison_id', 0, 'INT');
$turnierort = $db->escape(trim($jInput->get('turnierort', '', 'RAW'))); $turnierort = $db->escape(trim($jInput->get('turnierort', '', 'RAW')));
$erster_tag = normalisiertesDatum(sprintf("%04d-%02d-%02d", $jInput->get('erster_tag_jahr', 2000, 'INT'), $jInput->get('erster_tag_monat', 1, 'INT'), $jInput->get('erster_tag_tag', 1, 'INT'))); $erster_tag = normalisiertesDatum(sprintf("%04d-%02d-%02d", $jInput->get('erster_tag_jahr', 2000, 'INT'), $jInput->get('erster_tag_monat', 1, 'INT'), $jInput->get('erster_tag_tag', 1, 'INT')));
if (!validateDate($erster_tag,'Y-m-d'))
$Fehlertext = "Bitte g&uuml;ltiges Datum eingeben";
$mehrtaegig = $jInput->get('mehrtaegig', 0, 'INT'); $mehrtaegig = $jInput->get('mehrtaegig', 0, 'INT');
$reminder_count = $jInput->get('reminder_count', 0, 'INT');
if (!$mehrtaegig) if (!$mehrtaegig)
$letzter_tag = $erster_tag; $letzter_tag = $erster_tag;
else else
@@ -10551,6 +10669,11 @@ function adminEditTurnier(): void
$berechtigt_fuer_turnier_user_ids[] = $berechtigt_user_id; $berechtigt_fuer_turnier_user_ids[] = $berechtigt_user_id;
} }
if ($Fehlertext != ""){
echo "<span style='display: inline-block; background: red; color: white;vertical-align: middle;'>$Fehlertext</span>\n";
return;
}
if ($vorlage) { if ($vorlage) {
$vorlage_id = $id; $vorlage_id = $id;
$id = 0; $id = 0;
@@ -10561,7 +10684,20 @@ function adminEditTurnier(): void
} }
if ($id == 0) { if ($id == 0) {
$query = "INSERT INTO #__sportsmanager_turnier (veranstalter_id, turnierbezeichnung, saison_id, turnierort, erster_tag" . ($letzter_tag != null ? ", letzter_tag" : "") . ", kategorie) VALUES ('$veranstalterId', '$turnierbezeichnung', '$saison_id', '$turnierort', '$erster_tag'" . ($letzter_tag != null ? ", '$letzter_tag'" : "") . ", '$kategorie');"; $query = $db->getQuery(true)
->select('wert')
->from('#__sportsmanager_einstellungen')
->where('name = ' . $db->quote('enable_email_reminders'));
$remindersEnabled = loadResult($db, $query);
$query = "INSERT INTO #__sportsmanager_turnier (veranstalter_id, turnierbezeichnung, saison_id, turnierort, erster_tag"
. ($letzter_tag != null ? ", letzter_tag" : "")
. ", kategorie, reminder_count) VALUES ('$veranstalterId', '$turnierbezeichnung', '$saison_id', '$turnierort', '$erster_tag'"
. ($letzter_tag != null ? ", '$letzter_tag'" : "")
. ", '$kategorie', "
. (!$remindersEnabled ? "'3'" : "'0'")
. ")";
$db->setQuery($query); $db->setQuery($query);
if (!$db->execute()) { if (!$db->execute()) {
die($db->stderr(true)); die($db->stderr(true));
@@ -10575,9 +10711,20 @@ function adminEditTurnier(): void
. "\n turnierort = '$turnierort'," . "\n turnierort = '$turnierort',"
. "\n erster_tag = '$erster_tag'," . "\n erster_tag = '$erster_tag',"
. "\n letzter_tag = " . ($letzter_tag != null ? "'$letzter_tag'" : "NULL") . "," . "\n letzter_tag = " . ($letzter_tag != null ? "'$letzter_tag'" : "NULL") . ","
. "\n kategorie = '$kategorie'" . "\n kategorie = '$kategorie',"
. "\n reminder_count = '$reminder_count'"
. "\n WHERE turnier_id = $id"; . "\n WHERE turnier_id = $id";
$db->setQuery($query); $db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
if ($letzter_tag == $erster_tag){
$query = "UPDATE #__sportsmanager_turnierdisziplin"
. "\n SET beginn = CONCAT('$erster_tag', ' ', TIME(beginn))"
. "\n WHERE turnier_id = $id";
}
$db->setQuery($query);
if (!$db->execute()) { if (!$db->execute()) {
die($db->stderr(true)); die($db->stderr(true));
} }
@@ -11862,6 +12009,7 @@ function adminImportTurnierdisziplinMeldungenSpieleForm(): void
if ($matchingNodes->length != 1) { if ($matchingNodes->length != 1) {
redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $id, "Datei darf nur eine Disziplin enthalten."); redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $id, "Datei darf nur eine Disziplin enthalten.");
} }
$turniersystemVorrunde = $matchingNodes->item(0)->getAttribute("system");
} }
if ($disziplinZusatzrunde != null) { if ($disziplinZusatzrunde != null) {
@@ -11872,6 +12020,7 @@ function adminImportTurnierdisziplinMeldungenSpieleForm(): void
if ($matchingNodes->length != 1) { if ($matchingNodes->length != 1) {
redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $id, "Datei darf nur eine Disziplin enthalten."); redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $id, "Datei darf nur eine Disziplin enthalten.");
} }
$turniersystemZusatzrunde = $matchingNodes->item(0)->getAttribute("system");
} }
if ($disziplinZusatzrunde2 != null) { if ($disziplinZusatzrunde2 != null) {
@@ -11882,6 +12031,7 @@ function adminImportTurnierdisziplinMeldungenSpieleForm(): void
if ($matchingNodes->length != 1) { if ($matchingNodes->length != 1) {
redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $id, "Datei darf nur eine Disziplin enthalten."); redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $id, "Datei darf nur eine Disziplin enthalten.");
} }
$turniersystemZusatzrunde2 = $matchingNodes->item(0)->getAttribute("system");
} }
$matchingNodes = $disziplin->getElementsByTagName("disziplin"); $matchingNodes = $disziplin->getElementsByTagName("disziplin");
@@ -11891,6 +12041,7 @@ function adminImportTurnierdisziplinMeldungenSpieleForm(): void
if ($matchingNodes->length != 1) { if ($matchingNodes->length != 1) {
redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $id, "Die uebergebene Datei darf nur eine Disziplin enthalten."); redirectSportsManagerURL('&task=admin_turnierdisziplin_meldungen_spiele&turnierdisziplinid=' . $id, "Die uebergebene Datei darf nur eine Disziplin enthalten.");
} }
$turniersystemHauptrunde = $matchingNodes->item(0)->getAttribute("system");
// Spieler-Ids über Spielerliste ermitteln // Spieler-Ids über Spielerliste ermitteln
$meldungenSpieler = array(); $meldungenSpieler = array();
@@ -12171,7 +12322,7 @@ function adminImportTurnierdisziplinMeldungenSpieleForm(): void
// Spiele speichern // Spiele speichern
$totalVorrunde = 0; $totalVorrunde = 0;
if ($disziplinVorrunde != null) { if ($disziplinVorrunde != null && $turniersystemVorrunde != "Monster-DYP") {
$matchingNodes = $disziplinVorrunde->getElementsByTagName("runde"); $matchingNodes = $disziplinVorrunde->getElementsByTagName("runde");
if ($matchingNodes != null) { if ($matchingNodes != null) {
$totalVorrunde = $matchingNodes->length; $totalVorrunde = $matchingNodes->length;
@@ -12246,7 +12397,7 @@ function adminImportTurnierdisziplinMeldungenSpieleForm(): void
} }
// Spiele speichern // Spiele speichern
if ($disziplinZusatzrunde != null) { if ($disziplinZusatzrunde != null && $turniersystemZusatzrunde != "Monster-DYP") {
$matchingNodes = $disziplinZusatzrunde->getElementsByTagName("runde"); $matchingNodes = $disziplinZusatzrunde->getElementsByTagName("runde");
if ($matchingNodes != null) { if ($matchingNodes != null) {
$totalZusatzrunde = $matchingNodes->length; $totalZusatzrunde = $matchingNodes->length;
@@ -12320,7 +12471,7 @@ function adminImportTurnierdisziplinMeldungenSpieleForm(): void
} }
// Spiele speichern // Spiele speichern
if ($disziplinZusatzrunde2 != null) { if ($disziplinZusatzrunde2 != null && $turniersystemZusatzrunde2 != "Monster-DYP") {
$matchingNodes = $disziplinZusatzrunde2->getElementsByTagName("runde"); $matchingNodes = $disziplinZusatzrunde2->getElementsByTagName("runde");
if ($matchingNodes != null) { if ($matchingNodes != null) {
$totalZusatzrunde2 = $matchingNodes->length; $totalZusatzrunde2 = $matchingNodes->length;
@@ -12393,6 +12544,7 @@ function adminImportTurnierdisziplinMeldungenSpieleForm(): void
} }
} }
if ($turniersystemHauptrunde != "Monster-DYP") {
$matchingNodes = $disziplin->getElementsByTagName("runde"); $matchingNodes = $disziplin->getElementsByTagName("runde");
if ($matchingNodes != null) { if ($matchingNodes != null) {
$total = $matchingNodes->length; $total = $matchingNodes->length;
@@ -12466,6 +12618,7 @@ function adminImportTurnierdisziplinMeldungenSpieleForm(): void
} }
} }
} }
}
foreach (array(1, 2, 3, 10) as $rundenstufe) { foreach (array(1, 2, 3, 10) as $rundenstufe) {
$query = "SELECT runde, COUNT(*) AS spiele" $query = "SELECT runde, COUNT(*) AS spiele"
@@ -5291,6 +5291,150 @@ 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 ($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']))
@@ -1186,7 +1189,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 +1207,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 +1225,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);
@@ -1385,6 +1388,7 @@ function aktuelleBegegnungen($pineingabe = FALSE): void
HTML_sportsmanager::aktuelleBegegnungenHeader($params->get('titel'), $params->get('beschreibung'), $ticker_anzeigen, $pineingabe_anzeigen); HTML_sportsmanager::aktuelleBegegnungenHeader($params->get('titel'), $params->get('beschreibung'), $ticker_anzeigen, $pineingabe_anzeigen);
if ($praesentation == 0) { if ($praesentation == 0) {
begegnungenAnzeigen(NULL, NULL, NULL, 7, true, true, false, Text::_('COM_SPORTSMANAGER_RUNNING_MATCHES'), true, true);
begegnungenAnzeigen(NULL, NULL, NULL, 7, false, true, true, Text::_('COM_SPORTSMANAGER_MATCHES_THE_LAST_7_DAYS'), true, true); begegnungenAnzeigen(NULL, NULL, NULL, 7, false, true, true, Text::_('COM_SPORTSMANAGER_MATCHES_THE_LAST_7_DAYS'), true, true);
begegnungenAnzeigen(NULL, NULL, NULL, 14, true, false, true, Text::_('COM_SPORTSMANAGER_MATCHES_THE_NEXT_14_DAYS'), false, true); begegnungenAnzeigen(NULL, NULL, NULL, 14, true, false, true, Text::_('COM_SPORTSMANAGER_MATCHES_THE_NEXT_14_DAYS'), false, true);
administrationFooter(); administrationFooter();
@@ -2866,17 +2870,32 @@ 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)";
$query .= "\n GROUP BY spieler_id";
if (!empty($kategorie)) 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
@@ -2995,7 +3014,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);
@@ -3003,7 +3026,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);
@@ -3787,13 +3815,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');
@@ -3804,7 +3833,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();
} }
@@ -3903,10 +3932,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);
} }
@@ -4809,7 +4839,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"
@@ -4818,6 +4847,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";
@@ -4919,6 +4954,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;
@@ -5010,7 +5047,12 @@ 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 .= ",";
$query .= "('$rangliste_id', '$turnierplatzierung->spieler_id', '$turnierdisziplin->turnierdisziplin_id', '$turnierplatzierung->platz', '$p')";
$Anzahl++;
}
$query .= " ON DUPLICATE KEY UPDATE punkte = punkte + VALUES(punkte);";
if ($Anzahl > 0){
$db->setQuery($query); $db->setQuery($query);
if (!$db->execute()) { if (!$db->execute()) {
die($db->stderr(true)); die($db->stderr(true));
@@ -5036,21 +5078,25 @@ 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') ";
$Anzahl++;
$spieler_punkte = $spieler_punkte_summe;
$platz++;
}
$query .= " ON DUPLICATE KEY UPDATE punkte = VALUES(punkte), teilnahmen = VALUES(teilnahmen), platz = VALUES(platz);";
if ($Anzahl > 0){
$db->setQuery($query); $db->setQuery($query);
if (!$db->execute()) { if (!$db->execute()) {
die($db->stderr(true)); die($db->stderr(true));
} }
$spieler_punkte = $spieler_punkte_summe;
$platz++;
} }
$db->transactionCommit(); $db->transactionCommit();
@@ -5553,7 +5599,13 @@ 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 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"; . "\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";
@@ -201,7 +201,7 @@ function kategorieFilter($prefix, $suffix = ""): string
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 +219,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;
}
@@ -444,7 +444,14 @@ static function turniere($turniere): void
if (!empty($turnier->disziplinen)) { if (!empty($turnier->disziplinen)) {
?> ?>
<br/> <br/>
<small><?php echo $turnier->disziplinen; ?></small> <small>
<?php
$parts = preg_split('/,(?![^()]*\))/m', $turnier->disziplinen);
$parts = array_map('trim', $parts); // remove extra spaces
foreach ($parts as $discipline) {
echo $discipline . "<br>";
} ?>
</small>
<?php <?php
} }
?> ?>
@@ -1080,11 +1087,24 @@ static function begegnungenAnzeigen($veranstaltung, $modus, $rows, $zeitfenster,
$monat = "..."; $monat = "...";
$spieltag = 0; $spieltag = 0;
$spielort_name = ""; $spielort_name = "";
$Spieltagname = "";
$Spieltagname_Buffer = "";
foreach ($rows as $row) { foreach ($rows as $row) {
$ergebnis_vorhanden = $row->heim_punkte != null || $row->gast_punkte != null; $ergebnis_vorhanden = $row->heim_punkte != null || $row->gast_punkte != null;
if ($zeitfenster == 0 && $veranstaltung != null) { if ($zeitfenster == 0 && $veranstaltung != null) {
if ($veranstaltung->unterteilung == 0 || $veranstaltung->unterteilung == 1) { if ($veranstaltung->unterteilung == 0 || $veranstaltung->unterteilung == 1) {
if ($spieltag != $row->spieltag || $spielort_name != $row->spielort_name) {
if ($row->spieltag > 999)
$Spieltagname = htmlentities_utf8(Rundenbezeichnung($row->spieltag, $veranstaltung->unterteilung == 0, true));
else if ($veranstaltung->unterteilung == 1)
$Spieltagname = "Runde " . $row->spieltag;
else
$Spieltagname = "Spieltag " . $row->spieltag;
if ($row->spieltag < 999 && $veranstaltung->spieltag_titel_zeigen == 1 && $row->spieltag_titel != "")
$Spieltagname .= " - " . $row->spieltag_titel;
if ($Spieltagname_Buffer != $Spieltagname || $spielort_name != $row->spielort_name) {
$spieltag = $row->spieltag; $spieltag = $row->spieltag;
$spielort_name = $row->spielort_name; $spielort_name = $row->spielort_name;
?> ?>
@@ -1105,6 +1125,7 @@ static function begegnungenAnzeigen($veranstaltung, $modus, $rows, $zeitfenster,
</tr> </tr>
<?php <?php
} }
$Spieltagname_Buffer = $Spieltagname;
} else if ($monat != substr($row->zeitpunkt, 0, 7)) { // Freundschaftsspiel } else if ($monat != substr($row->zeitpunkt, 0, 7)) { // Freundschaftsspiel
$monat = substr($row->zeitpunkt, 0, 7); $monat = substr($row->zeitpunkt, 0, 7);
if (strlen($monat) == 0) if (strlen($monat) == 0)
@@ -1304,8 +1325,11 @@ static function turnierbaumAnzeigen($veranstaltung,$begegnungen): void
$oben = $hoehe * pow(2, $runde) * $spiel + $offset; $oben = $hoehe * pow(2, $runde) * $spiel + $offset;
$links = ($breite + $abstand) * $runde; $links = ($breite + $abstand) * $runde;
echo "\n<div "; echo "\n<div ";
if ($begegnungen[$runde + 1][$spiel + 1]['link']) if ($begegnungen[$runde + 1][$spiel + 1]['link']){
echo "onclick=\"window.location.href='" . $begegnungen[$runde + 1][$spiel + 1]['link'] . "';\" "; echo "onclick=\"window.location.href='" . $begegnungen[$runde + 1][$spiel + 1]['link'] . "';\" ";
echo "onmouseover=\"this.style.backgroundColor='lightblue';\" ";
echo "onmouseout=\"this.style.backgroundColor='white';\" ";
}
echo "class='matchbox' style='top: " . $oben . "px; left: " . $links . "px;' echo "class='matchbox' style='top: " . $oben . "px; left: " . $links . "px;'
title='" . $begegnungen[$runde + 1][$spiel + 1]['tooltiptext'] . "'>"; title='" . $begegnungen[$runde + 1][$spiel + 1]['tooltiptext'] . "'>";
echo "<span class='" . $class['heim'] . "'>"; echo "<span class='" . $class['heim'] . "'>";
@@ -1731,8 +1755,8 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
<table style='width: 100%; border-collapse: collapse;' <table style='width: 100%; border-collapse: collapse;'
class="uk-table-hover uk-table-divider uk-table-middle dtfl-table-medium contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>"> class="uk-table-hover uk-table-divider uk-table-middle dtfl-table-medium contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr class="sectiontableheader<?php echo $params->get('pageclass_sfx'); ?>"> <tr class="sectiontableheader<?php echo $params->get('pageclass_sfx'); ?>">
<th><strong><?php echo Text::_('COM_SPORTSMANAGER_PLACE'); ?></strong></th> <th style="text-align: center; width: 80px;"><strong><?php echo Text::_('COM_SPORTSMANAGER_PLACE'); ?></strong></th>
<th style="text-align: left; width: 280px;"> <th style="text-align: left; width: 320px;">
<strong><?php echo Text::_('COM_SPORTSMANAGER_TEAM'); ?></strong></th> <strong><?php echo Text::_('COM_SPORTSMANAGER_TEAM'); ?></strong></th>
<?php <?php
if ($bilder_anzeigen) { if ($bilder_anzeigen) {
@@ -1998,21 +2022,22 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
?> ?>
<!-- Gruppentabelle Hauptrunde --> <!-- Gruppentabelle Hauptrunde -->
<div class="uk-overflow-auto"> <div class="uk-overflow-auto">
<table <table style='width: 450px; border-collapse: collapse;'
class="uk-table uk-table-hover uk-table-divider uk-table-middle dtfl-table-small contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>"> class="uk-table-hover uk-table-divider uk-table-middle dtfl-table-small contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr class="sectiontableheader<?php echo $params->get('pageclass_sfx'); ?>"> <tr class="sectiontableheader<?php echo $params->get('pageclass_sfx'); ?>">
<th><strong><?php echo Text::_('COM_SPORTSMANAGER_PLACE'); ?></strong></th> <th style="text-align: center; width: 80px;"><strong><?php echo Text::_('COM_SPORTSMANAGER_PLACE'); ?></strong></th>
<th style="text-align: left"> <th style="text-align: left; width: 320px;">
<strong><?php echo Text::_('COM_SPORTSMANAGER_TEAM'); ?></strong></th> <strong><?php echo Text::_('COM_SPORTSMANAGER_TEAM'); ?></strong></th>
<?php if ($bilder_anzeigen) { ?>
<th style="text-align: center; width: 70px;"></th>
<?php } ?>
</tr> </tr>
<?php <?php
$laufende_veranstaltung = $teams[count($teams) - 1]->platz == null; $laufende_veranstaltung = $teams[count($teams) - 1]->platz == null;
$platz = -1; $platz = -1;
$k = 0; $k = 0;
foreach ($teams foreach ($teams as $team) {
as $team) {
if ($laufende_veranstaltung && $team->platz != $platz && $team->platz == null) { if ($laufende_veranstaltung && $team->platz != $platz && $team->platz == null) {
?> ?>
<tr> <tr>
@@ -2040,10 +2065,6 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
?> ?>
</td> </td>
<td nowrap> <td nowrap>
<table style="width: 100%; border: none; border-spacing: 0; padding: 0">
<tr>
<td>
<?php <?php
echo "<a href=\"" . SportsManagerURL('&task=team_details&id=' . $team->team_id) . "\">" . htmlentities_utf8(NichtLeererString($team->teamname)) . "</a>"; echo "<a href=\"" . SportsManagerURL('&task=team_details&id=' . $team->team_id) . "\">" . htmlentities_utf8(NichtLeererString($team->teamname)) . "</a>";
?> ?>
@@ -2051,7 +2072,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
<?php <?php
if ($bilder_anzeigen) { if ($bilder_anzeigen) {
?> ?>
<td style="width: 50px" height="50" style="text-align: right"> <td style="text-align: center;">
<?php <?php
$bild = bildHTML("mannschaften", $team->team_id, 50, 50, 0, 0, 'border="0"'); $bild = bildHTML("mannschaften", $team->team_id, 50, 50, 0, 0, 'border="0"');
if ($bild != null) { if ($bild != null) {
@@ -2067,34 +2088,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
} }
?> ?>
</tr> </tr>
</table>
</td>
<?php <?php
/*
<td nowrap style="text-align: center">
<?php
echo Rundenbezeichnung($team->letzter_spieltag);
?>
</td>
<td nowrap style="text-align: center">
<?php
echo $team->letzter_spieltag;
?>
</td>
<td nowrap style="text-align: center">
<?php
echo $team->zuletzt_gewonnen;
?>
</td>
<td nowrap style="text-align: center">
<?php
echo $spieltag_verlorene_begegnungen . " | " . $spieltag_einmal_vollstaendig . " = ". $spieltag_mannschaften;
?>
</td>
</tr>
<?php
*/
} }
?> ?>
</table> </table>
@@ -3082,7 +3076,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
} }
} }
static function vereine($titel, $beschreibung, $rows, $organisationAnzeigen): void static function vereine($titel, $beschreibung, $rows, $organisationAnzeigen, $spalteMitgliederAnzeigen): void
{ {
global $params; global $params;
if (!empty($titel)) { ?> if (!empty($titel)) { ?>
@@ -3118,14 +3112,17 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
<th style='text-align: center; width: 120px;' nowrap>Vereinslogo</th> <th style='text-align: center; width: 120px;' nowrap>Vereinslogo</th>
<?php } ?> <?php } ?>
<th style='text-align: left;' nowrap><strong> <th style='text-align: left;' nowrap><strong>
<a href="verband/vereine?view=sportsmanager&task=sort_by_vereinsname"> <a href="<?php echo SportsManagerURL('&view=sportsmanager&task=sort_by_vereinsname'); ?>">
<?php echo Text::_('COM_SPORTSMANAGER_TEAM_NAME2'); ?> <?php echo Text::_('COM_SPORTSMANAGER_TEAM_NAME2'); ?>
</a> </a>
</strong></th> </strong></th>
<?php if ($spalteMitgliederAnzeigen){ ?>
<th style='text-align: center;width: 120px;' nowrap><strong> <th style='text-align: center;width: 120px;' nowrap><strong>
<a href="verband/vereine?view=sportsmanager&task=sort_by_mitglieder"> <a href="<?php echo SportsManagerURL('&view=sportsmanager&task=sort_by_mitglieder'); ?>">
<?php echo Text::_('COM_SPORTSMANAGER_MEMBERS'); ?></a></strong></th> <?php echo Text::_('COM_SPORTSMANAGER_MEMBERS'); ?></a></strong></th>
<th style='text-align: left;' nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_TEAM_SEAT'); ?></strong></th> <th style='text-align: left;' nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_TEAM_SEAT'); ?>
</strong></th>
<?php } ?>
<?php if ($organisationAnzeigen) { ?> <?php if ($organisationAnzeigen) { ?>
<th style='text-align: left;' nowrap>Organisation</th> <th style='text-align: left;' nowrap>Organisation</th>
<?php } ?> <?php } ?>
@@ -3153,9 +3150,11 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
<a href="<?php echo SportsManagerURL('&task=verein_details&id=' . $row->verein_id); ?>"> <a href="<?php echo SportsManagerURL('&task=verein_details&id=' . $row->verein_id); ?>">
<?php echo htmlentities_utf8(NichtLeererString($row->vereinsname)); ?></a> <?php echo htmlentities_utf8(NichtLeererString($row->vereinsname)); ?></a>
</td> </td>
<?php if ($spalteMitgliederAnzeigen){ ?>
<td nowrap style="text-align: center"> <td nowrap style="text-align: center">
<?php echo $row->mitglieder; ?> <?php echo $row->mitglieder; ?>
</td> </td>
<?php } ?>
<td style='text-align: left;' nowrap><?php if (!empty($row->vereinssitz)) echo htmlentities_utf8($row->vereinssitz . (!empty($row->vereinssitz_ortsteil) ? ("-" . $row->vereinssitz_ortsteil) : "")); ?></td> <td style='text-align: left;' nowrap><?php if (!empty($row->vereinssitz)) echo htmlentities_utf8($row->vereinssitz . (!empty($row->vereinssitz_ortsteil) ? ("-" . $row->vereinssitz_ortsteil) : "")); ?></td>
<?php if ($organisationAnzeigen) { <?php if ($organisationAnzeigen) {
echo "<td nowrap style='text-align: left;'>" . $row->veranstalterbezeichnung . "</td>"; echo "<td nowrap style='text-align: left;'>" . $row->veranstalterbezeichnung . "</td>";
@@ -3423,7 +3422,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
<table class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>"> <table class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr> <tr>
<td nowrap class="contentheading<?php echo $params->get('pageclass_sfx'); ?>" <td nowrap class="contentheading<?php echo $params->get('pageclass_sfx'); ?>"
style="width: 100%"><?php echo Text::_('COM_SPORTSMANAGER_MEMBERS'); ?></td> style="width: 100%"><?php echo Text::_('COM_SPORTSMANAGER_ACTIVE_MEMBERS'); ?></td>
</tr> </tr>
</table> </table>
</div> </div>
@@ -4277,9 +4276,20 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
} }
} }
static function 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):void { static function 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):void {
global $params; global $params;
if ((count($vereine) == 0) && !benutzerZugriff("spieler_aendern") && !benutzerVeranstalterModerator() && !benutzerVereinModerator())
{
echo "Sie haben keine Berechtigung auf diesen Datensatz!!!";
die;
}
?> ?>
<table style="width: 100%; border: none; border-spacing: 0; padding: 3px"> <table style="width: 100%; border: none; border-spacing: 0; padding: 3px">
<tr> <tr>
@@ -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--) {
@@ -374,7 +374,16 @@ class HTML_sportsmanager_admin
echo htmlentities_utf8($row->turnierbezeichnung); echo htmlentities_utf8($row->turnierbezeichnung);
if (!empty($row->disziplinen)) { if (!empty($row->disziplinen)) {
?> ?>
<br/><small><?php echo $row->disziplinen; ?></small> <br/>
<small>
<?php
$parts = preg_split('/,(?![^()]*\))/m', $row->disziplinen);
$parts = array_map('trim', $parts); // remove extra spaces
foreach ($parts as $discipline) {
echo $discipline . "<br>";
}
?>
</small>
<?php <?php
} }
?> ?>
@@ -637,6 +646,18 @@ class HTML_sportsmanager_admin
<td nowrap style="width: 60%; vertical-align: top"> <td nowrap style="width: 60%; vertical-align: top">
<div class="uk-overflow-auto"> <div class="uk-overflow-auto">
<table style="width: 100%"> <table style="width: 100%">
<tr>
<td nowrap style="width: 20%; text-align: right">
<label
for="association_short_name"><?php echo Text::_('COM_SPORTSMANAGER_ASSOCIATION_SHORT_NAME'); ?>
:</label>
</td>
<td nowrap>
<input class="uk-select uk-form-width-medium" type="text" name="verbands_kuerzel"
id="association_short_name" size="16" maxlength="16" style="height: 36px;"
value="<?php if (isset($einstellungen["verbands_kuerzel"])) echo htmlentities_utf8($einstellungen["verbands_kuerzel"]); ?>"/>
</td>
</tr>
<tr> <tr>
<td nowrap style="width: 20%; text-align: right"> <td nowrap style="width: 20%; text-align: right">
<label <label
@@ -723,18 +744,14 @@ class HTML_sportsmanager_admin
<tr> <tr>
<td nowrap style="width: 20%; text-align: right"> <td nowrap style="width: 20%; text-align: right">
<label <label
for="show_member"><?php echo Text::_('COM_SPORTSMANAGER_VIEW_LEAST_MEMBER_COUNT'); ?> for="show_member_count"><?php echo Text::_('COM_SPORTSMANAGER_VIEW_LEAST_MEMBER_COUNT'); ?>
:</label> :</label>
</td> </td>
<td nowrap> <td nowrap>
<select class="uk-select uk-form-width-medium" name="anzahl_mitglieder_zeigen" <input style='height: 34px;' class="uk-select uk-form-width-medium" type="text"
id="show_member" size="1"> id="show_member_count"
<?php value= <?php echo $einstellungen["anzahl_mitglieder_zeigen"]; ?>
for ($wert = 0; $wert <= 99; $wert++) { name="anzahl_mitglieder_zeigen" placeholder="Zahl eingeben">
echo "<option value=\"" . $wert . "\"" . (isset($einstellungen["anzahl_mitglieder_zeigen"]) && $einstellungen["anzahl_mitglieder_zeigen"] == $wert ? " selected" : "") . ">" . $wert . "</option>";
}
?>
</select>
</td> </td>
</tr> </tr>
<tr> <tr>
@@ -755,6 +772,24 @@ class HTML_sportsmanager_admin
</select> </select>
</td> </td>
</tr> </tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label
for="show_count_members"><?php echo Text::_('COM_SPORTSMANAGER_SHOW_MEMBER_COUNT'); ?>
:</label>
</td>
<td nowrap>
<select class="uk-select uk-form-width-medium" name="spalte_mitglieder_zeigen"
id="show_count_members" size="1">
<?php
$spalte_mitglieder_zeigen = array(1 => Text::_('JYES'), 0 => Text::_('JNO'));
foreach ($spalte_mitglieder_zeigen as $wert => $bezeichnung) {
echo "<option value=\"" . $wert . "\"" . (isset($einstellungen["spalte_mitglieder_zeigen"]) && $einstellungen["spalte_mitglieder_zeigen"] == $wert ? " selected" : "") . ">" . htmlentities_utf8($bezeichnung) . "</option>";
}
?>
</select>
</td>
</tr>
<tr> <tr>
<td nowrap style="width: 20%; text-align: right"> <td nowrap style="width: 20%; text-align: right">
<label <label
@@ -854,6 +889,22 @@ class HTML_sportsmanager_admin
</select> </select>
</td> </td>
</tr> </tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label
for="enable_email_reminders"><?php echo Text::_('COM_SPORTSMANAGER_USE_EMAIL_REMINDERS'); ?>
:</label>
</td>
<td nowrap>
<select class="uk-select uk-form-width-medium" name="enable_email_reminders"
id="enable_email_reminders" size="1">
<?php
echo "<option value='1'" . (isset($einstellungen['enable_email_reminders']) && $einstellungen['enable_email_reminders'] == 1 ? " selected" : "") . ">" . htmlentities_utf8(Text::_('JYES')) . "</option>";
echo "<option value='0'" . (isset($einstellungen['enable_email_reminders']) && $einstellungen['enable_email_reminders'] == 0 ? " selected" : "") . ">" . htmlentities_utf8(Text::_('JNO')) . "</option>";
?>
</select>
</td>
</tr>
<tr> <tr>
<td nowrap colspan="2">&nbsp; <td nowrap colspan="2">&nbsp;
@@ -905,6 +956,35 @@ class HTML_sportsmanager_admin
class="button"/> class="button"/>
<input type="hidden" name="task" value="admin_einstellungen_save"/> <input type="hidden" name="task" value="admin_einstellungen_save"/>
</form> </form>
<script>
// Eingabefelder nur für Zahlen
function enableNumberOnly(input) {
// Blockiere alles außer Ziffern
input.addEventListener("beforeinput", function (e) {
if (e.data && /[^0-9]/.test(e.data)) {
e.preventDefault();
}
});
// Entferne führende Nullen
input.addEventListener("input", function () {
if (this.value.length > 1 && this.value.startsWith("0")) {
this.value = this.value.replace(/^0+/, "");
}
});
// Validiere beim Absenden
input.form.addEventListener("submit", function (e) {
if (input.value.trim() === "") {
e.preventDefault();
alert("Bitte eine Zahl eingeben das Feld darf nicht leer bleiben!");
input.focus();
}
});
}
enableNumberOnly(document.getElementById("show_member_count"));
</script>
<?php <?php
} }
@@ -1043,7 +1123,6 @@ class HTML_sportsmanager_admin
static function adminSpieler($filter, $rows, $anzahlSpieler, $admin_uebersicht, $beschraenkter_zugriff, $ansprechpartner_importieren, $ansprechpartner_exportieren, $ansprechpartner_spielerdaten_aendern, $ansprechpartner_bilder_aendern): void static function adminSpieler($filter, $rows, $anzahlSpieler, $admin_uebersicht, $beschraenkter_zugriff, $ansprechpartner_importieren, $ansprechpartner_exportieren, $ansprechpartner_spielerdaten_aendern, $ansprechpartner_bilder_aendern): void
{ {
global $params; global $params;
?> ?>
<div <div
class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_PLAYERS'); ?> class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_PLAYERS'); ?>
@@ -1163,8 +1242,10 @@ class HTML_sportsmanager_admin
:</strong> :</strong>
</td> </td>
<td nowrap style="text-align: right"><?php echo $anzahlSpieler["passiv"]; ?></td> <td nowrap style="text-align: right"><?php echo $anzahlSpieler["passiv"]; ?></td>
<td></td> <td nowrap style="vertical-align: top"><strong><?php echo Text::_('COM_SPORTSMANAGER_PLAYER_UNATTACHED'); ?>
<td></td> :</strong>
</td>
<td nowrap style="text-align: right"><?php echo $anzahlSpieler["vereinslos"]; ?></td>
</tr> </tr>
<tr> <tr>
<td nowrap style="vertical-align: top"><strong><?php echo Text::_('COM_SPORTSMANAGER_MEN_ACTIVE'); ?> <td nowrap style="vertical-align: top"><strong><?php echo Text::_('COM_SPORTSMANAGER_MEN_ACTIVE'); ?>
@@ -1320,11 +1401,11 @@ class HTML_sportsmanager_admin
<form action="<?php echo SportsManagerURL($row != null ? ('#id' . $row->spieler_id) : ''); ?>" method="post" <form action="<?php echo SportsManagerURL($row != null ? ('#id' . $row->spieler_id) : ''); ?>" method="post"
name="adminForm" id="adminForm" enctype="multipart/form-data"> name="adminForm" id="adminForm" enctype="multipart/form-data">
<div class="uk-overflow-auto"> <div class="uk-overflow-auto">
<table class="uk-table" style="width: 100%"> <table style="width: 100%">
<tr> <tr>
<td nowrap style="width: 60%; vertical-align: top"> <td nowrap style="width: 60%; vertical-align: top">
<div class="uk-overflow-auto"> <div class="uk-overflow-auto">
<table class="uk-table" style="width: 100%"> <table style="width: 100%">
<tr> <tr>
<td nowrap style="width: 20%; text-align: right"> <td nowrap style="width: 20%; text-align: right">
<label for="lastname"><?php echo Text::_('COM_SPORTSMANAGER_LAST_NAME') ?> <label for="lastname"><?php echo Text::_('COM_SPORTSMANAGER_LAST_NAME') ?>
@@ -5018,6 +5099,7 @@ class HTML_sportsmanager_admin
static function adminKategorien($kategorien): void static function adminKategorien($kategorien): void
{ {
global $params; global $params;
$anzahl = array(0,50,100,50,50,100,50,50);
?> ?>
<div <div
@@ -5059,7 +5141,7 @@ class HTML_sportsmanager_admin
</td> </td>
</tr> </tr>
<?php <?php
for ($nummer = 1; $nummer <= 50; $nummer++) { for ($nummer = 1; $nummer <= $anzahl[$typ]; $nummer++) {
?> ?>
<tr> <tr>
<td nowrap style="width: 20%; text-align: right"> <td nowrap style="width: 20%; text-align: right">
@@ -5966,11 +6048,11 @@ class HTML_sportsmanager_admin
<form action="<?php echo SportsManagerURL(); ?>" method="post" name="adminForm" id="adminForm"> <form action="<?php echo SportsManagerURL(); ?>" method="post" name="adminForm" id="adminForm">
<div class="uk-overflow-auto"> <div class="uk-overflow-auto">
<table class="uk-table" style="width: 100%"> <table style="width: 100%">
<tr> <tr>
<td nowrap style="width: 60%; vertical-align: top"> <td nowrap style="width: 60%; vertical-align: top">
<div class="uk-overflow-auto"> <div class="uk-overflow-auto">
<table class="uk-table" style="width: 100%"> <table style="width: 100%">
<tr> <tr>
<td nowrap style="width: 20%; text-align: right"> <td nowrap style="width: 20%; text-align: right">
<label <label
@@ -5978,8 +6060,8 @@ class HTML_sportsmanager_admin
:</label> :</label>
</td> </td>
<td nowrap> <td nowrap>
<input class="inputbox" type="text" name="bezeichnung" id="designation" <input class="uk-select uk-form-width-large" type="text" name="bezeichnung" id="designation"
size="50" maxlength="100" size="50" maxlength="100" style="height: 34px;"
value="<?php if ($spielerstatistik != null) echo htmlentities_utf8($spielerstatistik->bezeichnung); ?>"/> value="<?php if ($spielerstatistik != null) echo htmlentities_utf8($spielerstatistik->bezeichnung); ?>"/>
</td> </td>
</tr> </tr>
@@ -6008,7 +6090,7 @@ class HTML_sportsmanager_admin
<select class="uk-select uk-form-width-medium" name="kategorie" <select class="uk-select uk-form-width-medium" name="kategorie"
id="category" size="1"> id="category" size="1">
<?php <?php
for ($i = 1; $i <= 50; $i++) { for ($i = 1; $i <= 100; $i++) {
echo "<option value=\"" . $i . "\"" . ($spielerstatistik != null ? ($spielerstatistik->kategorie == $i ? " selected" : "") : "") . ">" . $i . (isset($kategorien[$i]) ? htmlentities_utf8(" " . $kategorien[$i]) : "") . "</option>"; echo "<option value=\"" . $i . "\"" . ($spielerstatistik != null ? ($spielerstatistik->kategorie == $i ? " selected" : "") : "") . ">" . $i . (isset($kategorien[$i]) ? htmlentities_utf8(" " . $kategorien[$i]) : "") . "</option>";
} }
?> ?>
@@ -6024,7 +6106,7 @@ class HTML_sportsmanager_admin
<select class="uk-select uk-form-width-medium" name="reihenfolge" id="order" <select class="uk-select uk-form-width-medium" name="reihenfolge" id="order"
size="1"> size="1">
<?php <?php
for ($i = 1; $i <= 50; $i++) { for ($i = 1; $i <= 100; $i++) {
echo "<option value=\"" . $i . "\"" . ($spielerstatistik != null ? ($spielerstatistik->reihenfolge == $i ? " selected" : "") : "") . ">" . $i . "</option>"; echo "<option value=\"" . $i . "\"" . ($spielerstatistik != null ? ($spielerstatistik->reihenfolge == $i ? " selected" : "") : "") . ">" . $i . "</option>";
} }
?> ?>
@@ -6124,7 +6206,7 @@ class HTML_sportsmanager_admin
:</label> :</label>
</td> </td>
<td nowrap> <td nowrap>
<select class="uk-select uk-form-width-medium" name="tabellenwertung" <select class="uk-select uk-form-width-large" name="tabellenwertung"
id="table_evaluation" size="1"> id="table_evaluation" size="1">
<?php <?php
$typ = array(Text::_('COM_SPORTSMANAGER_POINTS_WON_LOST_DIFFERENCE'), Text::_('COM_SPORTSMANAGER_PERFORMANCE_INDEX'), Text::_('COM_SPORTSMANAGER_PERFORMANCE_INDEX2')); $typ = array(Text::_('COM_SPORTSMANAGER_POINTS_WON_LOST_DIFFERENCE'), Text::_('COM_SPORTSMANAGER_PERFORMANCE_INDEX'), Text::_('COM_SPORTSMANAGER_PERFORMANCE_INDEX2'));
@@ -6140,7 +6222,7 @@ class HTML_sportsmanager_admin
<label for="type"><?php echo Text::_('COM_SPORTSMANAGER_TYPE'); ?>:</label> <label for="type"><?php echo Text::_('COM_SPORTSMANAGER_TYPE'); ?>:</label>
</td> </td>
<td nowrap> <td nowrap>
<select class="uk-select uk-form-width-medium" name="typ" id="type" <select class="uk-select uk-form-width-large" name="typ" id="type"
size="1"> size="1">
<?php <?php
$bezeichnungen = array(0 => Text::_('COM_SPORTSMANAGER_INDIVIDUAL_STATISTICS'), 1 => Text::_('COM_SPORTSMANAGER_INDIVIDUAL_STATISTICS_SINGLES'), 2 => Text::_('COM_SPORTSMANAGER_INDIVIDUAL_STATISTICS_DOUBLES'), 3 => Text::_('COM_SPORTSMANAGER_STATISTICS_DOUBLES')); $bezeichnungen = array(0 => Text::_('COM_SPORTSMANAGER_INDIVIDUAL_STATISTICS'), 1 => Text::_('COM_SPORTSMANAGER_INDIVIDUAL_STATISTICS_SINGLES'), 2 => Text::_('COM_SPORTSMANAGER_INDIVIDUAL_STATISTICS_DOUBLES'), 3 => Text::_('COM_SPORTSMANAGER_STATISTICS_DOUBLES'));
@@ -7093,7 +7175,7 @@ class HTML_sportsmanager_admin
<select class="uk-select uk-form-width-medium" style='width: 350px;' name="kategorie" <select class="uk-select uk-form-width-medium" style='width: 350px;' name="kategorie"
id="category" size="1"> id="category" size="1">
<?php <?php
for ($i = 1; $i <= 50; $i++) { for ($i = 1; $i <= 100; $i++) {
echo "<option value=\"" . $i . "\"" . ($row != null ? ($row->kategorie == $i ? " selected" : "") : "") . ">" . $i . (isset($kategorien[$i]) ? htmlentities_utf8(" " . $kategorien[$i]) : "") . "</option>"; echo "<option value=\"" . $i . "\"" . ($row != null ? ($row->kategorie == $i ? " selected" : "") : "") . ">" . $i . (isset($kategorien[$i]) ? htmlentities_utf8(" " . $kategorien[$i]) : "") . "</option>";
} }
?> ?>
@@ -7109,7 +7191,7 @@ class HTML_sportsmanager_admin
<select class="uk-select uk-form-width-medium" name="reihenfolge" id="order" <select class="uk-select uk-form-width-medium" name="reihenfolge" id="order"
size="1"> size="1">
<?php <?php
for ($i = 1; $i <= 50; $i++) { for ($i = 1; $i <= 100; $i++) {
echo "<option value=\"" . $i . "\"" . ($row != null ? ($row->reihenfolge == $i ? " selected" : "") : "") . ">" . $i . "</option>"; echo "<option value=\"" . $i . "\"" . ($row != null ? ($row->reihenfolge == $i ? " selected" : "") : "") . ">" . $i . "</option>";
} }
?> ?>
@@ -8761,16 +8843,16 @@ class HTML_sportsmanager_admin
<a href="<?php echo SportsManagerURL('&task=admin_uebersicht'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_BACK'); ?></a> <a href="<?php echo SportsManagerURL('&task=admin_uebersicht'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_BACK'); ?></a>
</td> </td>
</tr> </tr>
<td nowrap>
<a href="<?php echo SportsManagerURL('&task=admin_begegnung_edit&veranstaltungid=' . $veranstaltung->veranstaltung_id); ?>"><?php echo Text::_('COM_SPORTSMANAGER_ADD_MEETING'); ?></a>
</td>
<?php $Spalte_Nr = self::checkZeilenumbruch($Spalte_Nr, $max_Spalten); ?>
<?php if ($veranstaltung->tabellenwertung == -3 || $veranstaltung->tabellenwertung == -4){ ?> <?php if ($veranstaltung->tabellenwertung == -3 || $veranstaltung->tabellenwertung == -4){ ?>
<td nowrap> <td nowrap>
<a href="<?php echo SportsManagerURL('&task=admin_begegnungen_pokalrunde_auslosen_form&veranstaltungid=' . $veranstaltung->veranstaltung_id); ?>"><?php echo Text::_('COM_SPORTSMANAGER_CUP_ROUND_GENERATION'); ?></a> <a href="<?php echo SportsManagerURL('&task=admin_begegnungen_pokalrunde_auslosen_form&veranstaltungid=' . $veranstaltung->veranstaltung_id); ?>"><?php echo Text::_('COM_SPORTSMANAGER_CUP_ROUND_GENERATION'); ?></a>
</td> </td>
<?php $Spalte_Nr = self::checkZeilenumbruch($Spalte_Nr, $max_Spalten); ?> <?php $Spalte_Nr = self::checkZeilenumbruch($Spalte_Nr, $max_Spalten); ?>
<?php } else { ?> <?php } else { ?>
<td nowrap>
<a href="<?php echo SportsManagerURL('&task=admin_begegnung_edit&veranstaltungid=' . $veranstaltung->veranstaltung_id); ?>"><?php echo Text::_('COM_SPORTSMANAGER_ADD_MEETING'); ?></a>
</td>
<?php $Spalte_Nr = self::checkZeilenumbruch($Spalte_Nr, $max_Spalten); ?>
<td nowrap> <td nowrap>
<a href="<?php echo SportsManagerURL('&task=admin_begegnungen_runde_erzeugen_form&veranstaltungid=' . $veranstaltung->veranstaltung_id); ?>"><?php echo $veranstaltung->unterteilung == 0 ? Text::_('COM_SPORTSMANAGER_GAMEDAY_GENERATION') : Text::_('COM_SPORTSMANAGER_ROUND_GENERATION'); ?></a> <a href="<?php echo SportsManagerURL('&task=admin_begegnungen_runde_erzeugen_form&veranstaltungid=' . $veranstaltung->veranstaltung_id); ?>"><?php echo $veranstaltung->unterteilung == 0 ? Text::_('COM_SPORTSMANAGER_GAMEDAY_GENERATION') : Text::_('COM_SPORTSMANAGER_ROUND_GENERATION'); ?></a>
</td> </td>
@@ -8799,18 +8881,9 @@ class HTML_sportsmanager_admin
?> ?>
<table class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>"> <table class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr class="sectiontableheader<?php echo $params->get('pageclass_sfx'); ?>"> <tr class="sectiontableheader<?php echo $params->get('pageclass_sfx'); ?>">
<?php <th nowrap style="text-align: left;"><strong><?php echo Text::_('COM_SPORTSMANAGER_SCHEDULE_DATE'); ?></strong></th>
if ($veranstaltung->unterteilung == 0 || $veranstaltung->unterteilung == 1) { <th nowrap style="text-align: left;"><strong><?php echo Text::_('COM_SPORTSMANAGER_HOME_TEAM'); ?></strong></th>
?> <th nowrap style="text-align: left;"><strong><?php echo Text::_('COM_SPORTSMANAGER_GUEST_TEAM'); ?></strong></th>
<th nowrap>
<strong><?php echo $veranstaltung->unterteilung == 0 ? Text::_('COM_SPORTSMANAGER_GAMEDAY') : Text::_('COM_SPORTSMANAGER_ROUND'); ?></strong>
</th>
<?php
}
?>
<th nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_SCHEDULE_DATE'); ?></strong></th>
<th nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_HOME_TEAM'); ?></strong></th>
<th nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_GUEST_TEAM'); ?></strong></th>
<th nowrap> <th nowrap>
<strong><?php echo $modus->punktetyp == 0 ? Text::_('COM_SPORTSMANAGER_GOALS') : Text::_('COM_SPORTSMANAGER_SETS'); ?></strong> <strong><?php echo $modus->punktetyp == 0 ? Text::_('COM_SPORTSMANAGER_GOALS') : Text::_('COM_SPORTSMANAGER_SETS'); ?></strong>
</th> </th>
@@ -8818,37 +8891,61 @@ class HTML_sportsmanager_admin
<th nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_GAME_RESULT_DELAYS');?></strong></th> <th nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_GAME_RESULT_DELAYS');?></strong></th>
</tr> </tr>
<?php <?php
$k = 0; $k = 0;
$spieltag = -1; $monat = "...";
$Spieltagname = "";
$Spieltagname_Buffer = "";
foreach ($rows as $row) { foreach ($rows as $row) {
$ergebnis_vorhanden = $row->heim_punkte != null || $row->gast_punkte != null; $ergebnis_vorhanden = $row->heim_punkte != null || $row->gast_punkte != null;
if ($veranstaltung->unterteilung == 0 || $veranstaltung->unterteilung == 1) {
if ($row->spieltag > 999)
$Spieltagname = htmlentities_utf8(Rundenbezeichnung($row->spieltag, $veranstaltung->unterteilung == 0, true));
else if ($veranstaltung->unterteilung == 1)
$Spieltagname = "Runde " . $row->spieltag;
else
$Spieltagname = "Spieltag " . $row->spieltag;
if ($row->spieltag < 999 && $veranstaltung->spieltag_titel_zeigen == 1 && $row->spieltag_titel != "")
$Spieltagname .= " - " . $row->spieltag_titel;
if ($Spieltagname_Buffer != $Spieltagname){
?> ?>
<tr class="sectiontableheader<?php echo $params->get('pageclass_sfx'); ?>">
<td nowrap style="text-align: left; vertical-align: bottom; height: 36px; font-style: italic; font-size: 70%; font-weight: 600;">
<?php echo $Spieltagname; ?>
</td>
</tr>
<?php
}
$Spieltagname_Buffer = $Spieltagname;
} else if ($monat != substr($row->zeitpunkt, 0, 7)) {
$monat = substr($row->zeitpunkt, 0, 7);
if (strlen($monat) == 0)
$monatsbezeichnung = "N/A";
else {
$monatsname = array(Text::_('COM_SPORTSMANAGER_JANUARY'), Text::_('COM_SPORTSMANAGER_FEBRUARY'), Text::_('COM_SPORTSMANAGER_MARCH'), Text::_('COM_SPORTSMANAGER_APRIL'), Text::_('COM_SPORTSMANAGER_MAY'), Text::_('COM_SPORTSMANAGER_JUNE'), Text::_('COM_SPORTSMANAGER_JULY'), Text::_('COM_SPORTSMANAGER_AUGUST'), Text::_('COM_SPORTSMANAGER_SEPTEMBER'), Text::_('COM_SPORTSMANAGER_OCTOBER'), Text::_('COM_SPORTSMANAGER_NOVEMBER'), Text::_('COM_SPORTSMANAGER_DECEMBER'));
$monatsbezeichnung = $monatsname[substr($monat, 5, 2) - 1] . " " . substr($monat, 0, 4);
}
?>
<tr>
<td nowrap height="4"></td>
</tr>
<tr class="sectiontableheader<?php echo $params->get('pageclass_sfx'); ?>" style="text-align: center">
<th nowrap><span style="font-size: 70%; "><i>
<?php echo htmlentities_utf8($monatsbezeichnung); ?></i></span>
</th>
</tr>
<?php
}
?>
<tr class="sectiontableentry<?php echo $k + 1; <tr class="sectiontableentry<?php echo $k + 1;
$k = ($k + 1) % 2; ?><?php echo $params->get('pageclass_sfx'); ?>"> $k = ($k + 1) % 2; ?><?php echo $params->get('pageclass_sfx'); ?>">
<?php
if ($veranstaltung->unterteilung == 0 || $veranstaltung->unterteilung == 1) {
?>
<td nowrap style="text-align: center;">
<a id="id<?php echo $row->begegnung_id; ?>"></a>
<?php
if ($veranstaltung->spieltag_titel_zeigen == 0){
if ($spieltag != $row->spieltag) {
$spieltag = $row->spieltag;
echo htmlentities_utf8(Rundenbezeichnung($spieltag, $veranstaltung->unterteilung == 0, true));
}
}
if ($veranstaltung->spieltag_titel_zeigen == 1){
if ($spieltag != $row->spieltag_titel) {
$spieltag = $row->spieltag_titel;
echo htmlentities_utf8($spieltag);
}
}
?>
</td>
<?php
}
?>
<td nowrap><a <td nowrap><a
href="<?php echo SportsManagerURL('&task=admin_begegnung_edit&veranstaltungid=' . $veranstaltung->veranstaltung_id . '&id=' . $row->begegnung_id); ?>"> href="<?php echo SportsManagerURL('&task=admin_begegnung_edit&veranstaltungid=' . $veranstaltung->veranstaltung_id . '&id=' . $row->begegnung_id); ?>">
<?php <?php
@@ -8896,10 +8993,11 @@ class HTML_sportsmanager_admin
} }
} }
static function adminEditBegegnung($veranstaltung, $row, $neuer_eintrag, $teams, $spielorte): void static function adminEditBegegnung($veranstaltung, $row, $neuer_eintrag, $teams, $spielorte, $auswahl_spieltagtitel): void
{ {
global $params; global $params;
?> ?>
<style>td{padding: 2px;}</style>
<div <div
class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_ENCOUNTER_IN_COMPETITION'); ?> class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_ENCOUNTER_IN_COMPETITION'); ?>
'<?php echo htmlentities_utf8($veranstaltung->bezeichnung); ?> '<?php echo htmlentities_utf8($veranstaltung->bezeichnung); ?>
@@ -8909,11 +9007,11 @@ class HTML_sportsmanager_admin
action="<?php echo SportsManagerURL(($row != null && !$neuer_eintrag) ? ('#id' . $row->begegnung_id) : ''); ?>" action="<?php echo SportsManagerURL(($row != null && !$neuer_eintrag) ? ('#id' . $row->begegnung_id) : ''); ?>"
method="post" name="adminForm" id="adminForm"> method="post" name="adminForm" id="adminForm">
<div class="uk-overflow-auto"> <div class="uk-overflow-auto">
<table class="uk-table" style="width: 100%"> <table style="width: 100%">
<tr> <tr>
<td nowrap style="width: 60%; vertical-align: top"> <td nowrap style="width: 60%; vertical-align: top">
<div class="uk-overflow-auto"> <div class="uk-overflow-auto">
<table class="uk-table" style="width: 100%"> <table style="width: 100%">
<tr> <tr>
<td nowrap style="width: 20%; text-align: right"> <td nowrap style="width: 20%; text-align: right">
<label <label
@@ -8921,7 +9019,7 @@ class HTML_sportsmanager_admin
:</label> :</label>
</td> </td>
<td nowrap> <td nowrap>
<select class="uk-select uk-form-width-medium" name="datum_tag" <select class="uk-select uk-form-width-xsmall" name="datum_tag"
id="schedule_date" size="1"> id="schedule_date" size="1">
<?php <?php
$datum = "0000-00-00"; $datum = "0000-00-00";
@@ -8935,7 +9033,7 @@ class HTML_sportsmanager_admin
} }
?> ?>
</select> </select>
<select class="uk-select uk-form-width-medium" name="datum_monat" size="1" <select class="uk-select uk-form-width-small" name="datum_monat" size="1"
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_SCHEDULE_DATE_MONTH'); ?>"> aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_SCHEDULE_DATE_MONTH'); ?>">
<?php <?php
$datum_monat = substr($datum, 5, 2); $datum_monat = substr($datum, 5, 2);
@@ -8946,7 +9044,7 @@ class HTML_sportsmanager_admin
} }
?> ?>
</select> </select>
<select class="uk-select uk-form-width-medium" name="datum_jahr" size="1" <select class="uk-select uk-form-width-small" name="datum_jahr" size="1"
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_SCHEDULE_DATE_YEAR'); ?>"> aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_SCHEDULE_DATE_YEAR'); ?>">
<?php <?php
$datum_jahr = substr($datum, 0, 4); $datum_jahr = substr($datum, 0, 4);
@@ -8956,7 +9054,7 @@ class HTML_sportsmanager_admin
} }
?> ?>
</select> </select>
<select class="uk-select uk-form-width-medium" name="uhrzeit_stunden" <select class="uk-select uk-form-width-xsmall" name="uhrzeit_stunden"
size="1" size="1"
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_SCHEDULE_DATE_HOUR'); ?>"> aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_SCHEDULE_DATE_HOUR'); ?>">
<?php <?php
@@ -8970,7 +9068,7 @@ class HTML_sportsmanager_admin
} }
?> ?>
</select> </select>
<select class="uk-select uk-form-width-medium" name="uhrzeit_minuten" <select class="uk-select uk-form-width-xsmall" name="uhrzeit_minuten"
size="1" size="1"
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_SCHEDULE_DATE_MINUTE'); ?>"> aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_SCHEDULE_DATE_MINUTE'); ?>">
<?php <?php
@@ -9036,7 +9134,48 @@ class HTML_sportsmanager_admin
</tr> </tr>
<?php <?php
} }
if ($veranstaltung->spieltag_titel_zeigen)
echo "<tr>";
else
echo "<tr style='display: none;'>";
?> ?>
<td nowrap style="width: 20%; text-align: right">
<label for="game_title"><?php echo Text::_('COM_SPORTSMANAGER_LABEL_GAME_TITLE'); ?>
:</label>
</td>
<td nowrap>
<input list="auswahl_spieltagtitel" class="uk-select uk-form-width-medium" type="text" name="spieltag_titel"
id="game_title" size="32" maxlength="20" style="height: 34px;width: 300px;"
value="<?php if ($row != null) echo htmlentities_utf8($row->spieltag_titel); ?>"/>
<datalist id="auswahl_spieltagtitel" >
<?php if ($auswahl_spieltagtitel){ ?>
<?php foreach($auswahl_spieltagtitel AS $titel){ ?>
<option value="<?= htmlspecialchars($titel->spieltag_titel, ENT_QUOTES) ?>"></option>
<?php } ?>
<?php } ?>
</datalist>
</td>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label
for="game_nr"><?php echo Text::_('COM_SPORTSMANAGER_LABEL_GAME_NUMBER'); ?>
:</label>
</td>
<td nowrap>
<?php if ($neuer_eintrag) {$row->spiel_nr = "";} ?>
<select class="uk-select uk-form-width-xsmall" id="game_nr" size="1"
title="Spielnummer (optional)" name="spiel_nr">
<option value=""></option>
<?php
for ($i = 1; $i <= 99; $i++)
{
echo "<option value=\"" . $i . "\"" . ($row->spiel_nr == $i ? " selected" : "") . ">" . $i . "</option>";
}
?>
</select>
</td>
</tr>
<tr> <tr>
<td nowrap style="width: 20%; text-align: right"> <td nowrap style="width: 20%; text-align: right">
<label <label
@@ -9102,8 +9241,8 @@ class HTML_sportsmanager_admin
:</label> :</label>
</td> </td>
<td nowrap> <td nowrap>
<input class="inputbox" type="text" name="tisch" id="table" size="50" <input class="uk-select uk-form-width-medium" type="text" name="tisch" id="table" size="50"
maxlength="255" maxlength="255" style="height: 34px;"
value="<?php if ($row != null) echo htmlentities_utf8($row->tisch); ?>"/> value="<?php if ($row != null) echo htmlentities_utf8($row->tisch); ?>"/>
</td> </td>
</tr> </tr>
@@ -9141,7 +9280,8 @@ class HTML_sportsmanager_admin
</div> </div>
<input type="submit" name="save" value="<?php echo Text::_('COM_SPORTSMANAGER_SAVE'); ?>" class="button" <input type="submit" name="save" value="<?php echo Text::_('COM_SPORTSMANAGER_SAVE'); ?>" class="button"
onclick="if (document.adminForm.heim_team_id.value === document.adminForm.gast_team_id.value) { alert('<?php echo Text::_('COM_SPORTSMANAGER_HOME_VISITING_TEAMS_DIFFERENT'); ?>'); return false; } return true;"/> onclick="if (document.adminForm.heim_team_id.value === document.adminForm.gast_team_id.value)
{ alert('<?php echo Text::_('COM_SPORTSMANAGER_HOME_VISITING_TEAMS_DIFFERENT'); ?>'); return false; } return true;"/>
<input type="submit" name="cancel" value="<?php echo Text::_('COM_SPORTSMANAGER_CANCEL'); ?>" <input type="submit" name="cancel" value="<?php echo Text::_('COM_SPORTSMANAGER_CANCEL'); ?>"
class="button"/> class="button"/>
<input type="hidden" name="task" value="admin_begegnung_save"/> <input type="hidden" name="task" value="admin_begegnung_save"/>
@@ -10000,7 +10140,7 @@ class HTML_sportsmanager_admin
<?php <?php
} }
static function adminBegegnungenRundeErzeugen($veranstaltung, $rows, $row, $spielorte): void static function adminBegegnungenRundeErzeugen($veranstaltung, $rows, $row, $spielorte, $auswahl_spieltagtitel): void
{ {
global $params; global $params;
$anzahlteams = count($rows); $anzahlteams = count($rows);
@@ -10014,11 +10154,11 @@ class HTML_sportsmanager_admin
<form action="<?php echo SportsManagerURL(); ?>" method="post" name="adminForm" id="adminForm"> <form action="<?php echo SportsManagerURL(); ?>" method="post" name="adminForm" id="adminForm">
<div class="uk-overflow-auto"> <div class="uk-overflow-auto">
<table class="uk-table" style="width: 100%"> <table style="width: 100%">
<tr> <tr>
<td nowrap style="width: 60%; vertical-align: top"> <td nowrap style="width: 60%; vertical-align: top">
<div class="uk-overflow-auto"> <div class="uk-overflow-auto">
<table class="uk-table" style="width: 100%"> <table style="width: 100%">
<tr> <tr>
<td nowrap style="width: 20%; text-align: right"> <td nowrap style="width: 20%; text-align: right">
<label <label
@@ -10039,7 +10179,7 @@ class HTML_sportsmanager_admin
} }
} }
</script> </script>
<select class="uk-select uk-form-width-medium" name="datum_tag" <select class="uk-select uk-form-width-xsmall" name="datum_tag"
id="schedule_date" size="1" id="schedule_date" size="1"
onchange="tag_changed();"> onchange="tag_changed();">
<?php <?php
@@ -10059,7 +10199,7 @@ class HTML_sportsmanager_admin
} }
?> ?>
</select> </select>
<select class="uk-select uk-form-width-medium" name="datum_monat" size="1" <select class="uk-select uk-form-width-small" name="datum_monat" size="1"
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_SCHEDULE_DATE_MONTH'); ?>"> aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_SCHEDULE_DATE_MONTH'); ?>">
<?php <?php
$datum_monat = substr($datum, 5, 2); $datum_monat = substr($datum, 5, 2);
@@ -10070,7 +10210,7 @@ class HTML_sportsmanager_admin
} }
?> ?>
</select> </select>
<select class="uk-select uk-form-width-medium" name="datum_jahr" size="1" <select class="uk-select uk-form-width-small" name="datum_jahr" size="1"
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_SCHEDULE_DATE_YEAR'); ?>"> aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_SCHEDULE_DATE_YEAR'); ?>">
<?php <?php
$datum_jahr = substr($datum, 0, 4); $datum_jahr = substr($datum, 0, 4);
@@ -10080,7 +10220,7 @@ class HTML_sportsmanager_admin
} }
?> ?>
</select> </select>
<select class="uk-select uk-form-width-medium" name="uhrzeit_stunden" <select class="uk-select uk-form-width-xsmall" name="uhrzeit_stunden"
size="1" size="1"
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_SCHEDULE_DATE_HOUR'); ?>"> aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_SCHEDULE_DATE_HOUR'); ?>">
<?php <?php
@@ -10094,7 +10234,7 @@ class HTML_sportsmanager_admin
} }
?> ?>
</select> </select>
<select class="uk-select uk-form-width-medium" name="uhrzeit_minuten" <select class="uk-select uk-form-width-xsmall" name="uhrzeit_minuten"
size="1" size="1"
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_SCHEDULE_DATE_MINUTE'); ?>"> aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_SCHEDULE_DATE_MINUTE'); ?>">
<?php <?php
@@ -10162,7 +10302,30 @@ class HTML_sportsmanager_admin
} }
?> ?>
<?php <?php
if ($veranstaltung->spieltag_titel_zeigen)
echo "<tr>";
else
echo "<tr style='display: none;'>";
?>
<td nowrap style="width: 20%; text-align: right">
<label for="game_title"><?php echo Text::_('COM_SPORTSMANAGER_LABEL_GAME_TITLE'); ?>
:</label>
</td>
<td nowrap>
<input list="auswahl_spieltagtitel" class="uk-select uk-form-width-medium" type="text" name="spieltag_titel"
id="game_title" size="32" maxlength="20" style="height: 34px;width: 280px;"
value="<?php if ($row != null) echo htmlentities_utf8($row->spieltag_titel); ?>"/>
<datalist id="auswahl_spieltagtitel" >
<?php if ($auswahl_spieltagtitel){ ?>
<?php foreach($auswahl_spieltagtitel AS $titel){ ?>
<option value="<?= htmlspecialchars($titel->spieltag_titel, ENT_QUOTES) ?>"></option>
<?php } ?>
<?php } ?>
</datalist>
</td>
</tr>
<?php
$spielnummer = "";
for ($teamnr = 1; $teamnr < $anzahlteams; $teamnr += 2) { for ($teamnr = 1; $teamnr < $anzahlteams; $teamnr += 2) {
?> ?>
<tr> <tr>
@@ -10170,6 +10333,16 @@ class HTML_sportsmanager_admin
<?php if ($teamnr == 1) echo Text::_('COM_SPORTSMANAGER_PAIRINGS') . ":"; ?> <?php if ($teamnr == 1) echo Text::_('COM_SPORTSMANAGER_PAIRINGS') . ":"; ?>
</td> </td>
<td nowrap> <td nowrap>
<select class="uk-select uk-form-width-xsmall" size="1" id="game_nr"
name="spiel_nr_<?php echo $teamnr; ?>" title="Spielnummer (optional)">
<option value=""></option>
<?php
for ($i = 1; $i <= 99; $i++)
{
echo "<option value=\"" . $i . "\"" . ($i == $spielnummer ? " selected " : "") . ">" . $i . "</option>";
}
?>
</select>
<select class="uk-select uk-form-width-medium" <select class="uk-select uk-form-width-medium"
name="team_id_<?php echo $teamnr; ?>" size="1" name="team_id_<?php echo $teamnr; ?>" size="1"
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_PAIRING_TEAM'); ?>"> aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_PAIRING_TEAM'); ?>">
@@ -10236,7 +10409,7 @@ class HTML_sportsmanager_admin
<?php <?php
} }
static function adminBegegnungenPokalrundeAuslosenForm($veranstaltung,$auswahl_rundentitel): void static function adminBegegnungenPokalrundeAuslosenForm($veranstaltung,$auswahl_rundentitel,$spielorte): void
{ {
global $params; global $params;
$sperren = false; $sperren = false;
@@ -10358,6 +10531,33 @@ class HTML_sportsmanager_admin
?> ?>
</select> </select>
</td> </td>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label for="venue"><?php echo Text::_('COM_SPORTSMANAGER_VENUE'); ?>
:</label>
</td>
<td nowrap>
<select class="uk-select uk-form-width-medium" name="spielort_id" id="venue"
size="1">
<option
value="0"><?php echo Text::_('COM_SPORTSMANAGER_HOME_TEAM2'); ?></option>
<?php
$ortsname = -1;
foreach ($spielorte as $spielort) {
if ($ortsname != $spielort->ortsname) {
if ($ortsname != -1)
echo "</optgroup>";
echo "<optgroup label=\"" . htmlentities_utf8(!empty($spielort->ortsname) ? $spielort->ortsname : Text::_('COM_SPORTSMANAGER_WITHOUT_PLACE')) . "\">";
$ortsname = $spielort->ortsname;
}
echo "<option value=\"" . $spielort->spielort_id . "\">" . htmlentities_utf8($spielort->name) . "</option>";
}
if ($ortsname != -1)
echo "</optgroup>";
?>
</select>
</td>
</tr> </tr>
<tr> <tr>
<td nowrap style="width: 20%; text-align: right"> <td nowrap style="width: 20%; text-align: right">
@@ -10374,7 +10574,7 @@ class HTML_sportsmanager_admin
</td> </td>
<td nowrap> <td nowrap>
<input list="auswahl_rundentitel" class="uk-select uk-form-width-large" <input list="auswahl_rundentitel" class="uk-select uk-form-width-large"
style="height: 34px; text-align: left;" type="text" name="rundentitel" id="rundentitel" size="32" maxlength="32" style="height: 34px; width: 280px; text-align: left;" type="text" name="rundentitel" id="rundentitel" size="32" maxlength="20"
value="<?php echo $veranstaltung->titelVorschlag; ?>"/> value="<?php echo $veranstaltung->titelVorschlag; ?>"/>
<datalist id="auswahl_rundentitel" > <datalist id="auswahl_rundentitel" >
<?php if ($auswahl_rundentitel){ ?> <?php if ($auswahl_rundentitel){ ?>
@@ -10385,6 +10585,24 @@ class HTML_sportsmanager_admin
</datalist> </datalist>
</td> </td>
</tr> </tr>
<?php if ($veranstaltung->tabellenwertung == -4){ ?>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label for="heimrecht_losen"><?php echo Text::_('COM_SPORTSMANAGER_DRAW_FOR_HOME'); ?>
:</label>
</td>
<td nowrap>
<select class="uk-select uk-form-width-medium" name="heimrecht_losen" id="heimrecht_losen" size="1">
<?php
$heimrechtlosen = array(Text::_('COM_SPORTSMANAGER_NO'), Text::_('COM_SPORTSMANAGER_YES'));
for ($i = 0; $i <= 1; $i++) {
echo "<option value=\"" . $i . "\">" . htmlentities_utf8($heimrechtlosen[$i]) . "</option>";
}
?>
</select>
</td>
</tr>
<?php } ?>
<?php if ($veranstaltung->letzteRunde == $veranstaltung->naechsteRunde) {$display = "";} else {$display = "none";} ?> <?php if ($veranstaltung->letzteRunde == $veranstaltung->naechsteRunde) {$display = "";} else {$display = "none";} ?>
<tr style='display: <?php echo $display; ?>;'> <tr style='display: <?php echo $display; ?>;'>
<td nowrap style="width: 20%; text-align: right"> <td nowrap style="width: 20%; text-align: right">
@@ -11272,27 +11490,13 @@ class HTML_sportsmanager_admin
class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_TOURNAMENT'); ?> class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_TOURNAMENT'); ?>
: <?php echo($row != null ? ($vorlage ? Text::_('COM_SPORTSMANAGER_ADD_VIA_TEMPLATE') : Text::_('COM_SPORTSMANAGER_CHANGING')) : Text::_('COM_SPORTSMANAGER_ADD')); ?></div> : <?php echo($row != null ? ($vorlage ? Text::_('COM_SPORTSMANAGER_ADD_VIA_TEMPLATE') : Text::_('COM_SPORTSMANAGER_CHANGING')) : Text::_('COM_SPORTSMANAGER_ADD')); ?></div>
<script type="text/javascript">
function letzter_tag_anzeigen() {
if (document.getElementById("row_letzter_tag").style.display !== '') {
document.getElementById("row_letzter_tag").style.display = '';
document.getElementById("button_mehrtaegig").value = 'Eintägig'
document.adminForm.mehrtaegig.value = 1;
} else {
document.getElementById("row_letzter_tag").style.display = 'none';
document.getElementById("button_mehrtaegig").value = 'Mehrtägig'
document.adminForm.mehrtaegig.value = 0;
}
}
</script>
<form action="<?php echo SportsManagerURL(); ?>" method="post" name="adminForm" id="adminForm"> <form action="<?php echo SportsManagerURL(); ?>" method="post" name="adminForm" id="adminForm">
<div class="uk-overflow-auto"> <div class="uk-overflow-auto">
<table class="uk-table" style="width: 100%"> <table style="width: 100%">
<tr> <tr>
<td nowrap style="width: 60%; vertical-align: top"> <td nowrap style="width: 60%; vertical-align: top">
<div class="uk-overflow-auto"> <div class="uk-overflow-auto">
<table class="uk-table" style="width: 100%"> <table style="width: 100%">
<tr> <tr>
<td nowrap style="width: 20%; text-align: right"> <td nowrap style="width: 20%; text-align: right">
<label <label
@@ -11380,6 +11584,9 @@ class HTML_sportsmanager_admin
else else
$datum = date("Y-m-d"); $datum = date("Y-m-d");
$datum_tag = substr($datum, 8, 2); $datum_tag = substr($datum, 8, 2);
if ($vorlage)
$datum_tag = "";
echo "<option value=\"\"></option>";
for ($i = 1; $i <= 31; $i++) { for ($i = 1; $i <= 31; $i++) {
echo "<option value=\"" . $i . "\" " . ($datum_tag == $i ? "selected" : "") . ">" . $i . "</option>"; echo "<option value=\"" . $i . "\" " . ($datum_tag == $i ? "selected" : "") . ">" . $i . "</option>";
} }
@@ -11390,6 +11597,9 @@ class HTML_sportsmanager_admin
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_TOURNAMENT_START_MONTH'); ?>"> aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_TOURNAMENT_START_MONTH'); ?>">
<?php <?php
$datum_monat = substr($datum, 5, 2); $datum_monat = substr($datum, 5, 2);
if ($vorlage)
$datum_monat = "";
echo "<option value=\"\"></option>";
$monate = array(Text::_('COM_SPORTSMANAGER_JANUARY'), Text::_('COM_SPORTSMANAGER_FEBRUARY'), Text::_('COM_SPORTSMANAGER_MARCH'), Text::_('COM_SPORTSMANAGER_APRIL'), Text::_('COM_SPORTSMANAGER_MAY'), Text::_('COM_SPORTSMANAGER_JUNE'), Text::_('COM_SPORTSMANAGER_JULY'), Text::_('COM_SPORTSMANAGER_AUGUST'), Text::_('COM_SPORTSMANAGER_SEPTEMBER'), Text::_('COM_SPORTSMANAGER_OCTOBER'), Text::_('COM_SPORTSMANAGER_NOVEMBER'), Text::_('COM_SPORTSMANAGER_DECEMBER')); $monate = array(Text::_('COM_SPORTSMANAGER_JANUARY'), Text::_('COM_SPORTSMANAGER_FEBRUARY'), Text::_('COM_SPORTSMANAGER_MARCH'), Text::_('COM_SPORTSMANAGER_APRIL'), Text::_('COM_SPORTSMANAGER_MAY'), Text::_('COM_SPORTSMANAGER_JUNE'), Text::_('COM_SPORTSMANAGER_JULY'), Text::_('COM_SPORTSMANAGER_AUGUST'), Text::_('COM_SPORTSMANAGER_SEPTEMBER'), Text::_('COM_SPORTSMANAGER_OCTOBER'), Text::_('COM_SPORTSMANAGER_NOVEMBER'), Text::_('COM_SPORTSMANAGER_DECEMBER'));
for ($i = 1; $i <= 12; $i++) { for ($i = 1; $i <= 12; $i++) {
echo "<option value=\"" . $i . "\" " . ($datum_monat == $i ? "selected" : "") . ">" . htmlentities_utf8($monate[$i - 1]) . "</option>"; echo "<option value=\"" . $i . "\" " . ($datum_monat == $i ? "selected" : "") . ">" . htmlentities_utf8($monate[$i - 1]) . "</option>";
@@ -11468,8 +11678,8 @@ class HTML_sportsmanager_admin
<td nowrap> <td nowrap>
<select class="uk-select uk-form-width-medium" <select class="uk-select uk-form-width-medium"
name="berechtigt_fuer_turnier_user_<?php echo $nummer; ?>_id" name="berechtigt_fuer_turnier_user_<?php echo $nummer; ?>_id"
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_ELIGIBLE_USER'); ?>" id="eligible_for_tournament_<?php echo $nummer; ?>_id"
size="1"> aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_ELIGIBLE_USER'); ?>">
<option value="0"></option> <option value="0"></option>
<?php <?php
foreach ($users as $user) foreach ($users as $user)
@@ -11482,6 +11692,7 @@ class HTML_sportsmanager_admin
} }
?> ?>
</tr> </tr>
<tr id='eligible_for_tournament-error'></tr>
</table> </table>
</td> </td>
</tr> </tr>
@@ -11498,14 +11709,51 @@ class HTML_sportsmanager_admin
</div> </div>
<input type="submit" name="save" value="<?php echo Text::_('COM_SPORTSMANAGER_SAVE'); ?>" class="button"/> <input type="submit" name="save" value="<?php echo Text::_('COM_SPORTSMANAGER_SAVE'); ?>" class="button"/>
<input type="submit" name="cancel" value="<?php echo Text::_('COM_SPORTSMANAGER_CANCEL'); ?>" <input type="button" name="cancel" value="<?php echo Text::_('COM_SPORTSMANAGER_CANCEL'); ?>"
onclick="window.location.href='<?php echo SportsManagerURL(); ?>'"
class="button"/> class="button"/>
<input type="hidden" name="task" value="admin_turnier_save"/> <input type="hidden" name="task" value="admin_turnier_save"/>
<input type="hidden" name="id" value="<?php echo($row != null ? $row->turnier_id : "0"); ?>"/> <input type="hidden" name="id" value="<?php echo($row != null ? $row->turnier_id : "0"); ?>"/>
<input type="hidden" name="vorlage" value="<?php echo $vorlage; ?>"/> <input type="hidden" name="vorlage" value="<?php echo $vorlage; ?>"/>
<input type="hidden" name="mehrtaegig" <input type="hidden" name="mehrtaegig"
value="<?php echo !empty($row) && $row->erster_tag != $row->letzter_tag ? "1" : "0"; ?>"/> value="<?php echo !empty($row) && $row->erster_tag != $row->letzter_tag ? "1" : "0"; ?>"/>
<input type="hidden" name="reminder_count"
value="<?php echo !empty($row) ? $row->reminder_count : "0"; ?>"/>
</form> </form>
<script type="text/javascript">
function letzter_tag_anzeigen() {
if (document.getElementById("row_letzter_tag").style.display !== '') {
document.getElementById("row_letzter_tag").style.display = '';
document.getElementById("button_mehrtaegig").value = 'Eintägig'
document.adminForm.mehrtaegig.value = 1;
} else {
document.getElementById("row_letzter_tag").style.display = 'none';
document.getElementById("button_mehrtaegig").value = 'Mehrtägig'
document.adminForm.mehrtaegig.value = 0;
}
}
document.getElementById('adminForm').addEventListener('submit', function(e) {
// Get all selects
const selects = this.querySelectorAll('[id^="eligible_for_tournament_"]');
let valid = false;
// Check if at least one has a value
selects.forEach(select => {
if (select.value !== '0') {
valid = true;
}
});
if (!valid) {
e.preventDefault(); // Stop form submission
document.getElementById('eligible_for_tournament-error').innerHTML = "<td colspan='2' style='color: red'>Please select at least one organizer.</td>";
} else {
document.getElementById('eligible_for_tournament-error').innerHTML = ""; // Clear error
}
});
</script>
<?php <?php
} }
@@ -11591,17 +11839,26 @@ class HTML_sportsmanager_admin
static function adminEditTurnierdisziplin($turnier, $row, $ranglisten, $systeme): void static function adminEditTurnierdisziplin($turnier, $row, $ranglisten, $systeme): void
{ {
global $params; global $params;
if ($turnier->erster_tag == $turnier->letzter_tag)
$tag_zeigen = "none";
else
$tag_zeigen = "inline-block";
?> ?>
<style>
td {
padding: 3px;
}
</style>
<div <div
class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_TOURNAMENT_DISCIPLINE'); ?><?php echo $row != null ? Text::_('COM_SPORTSMANAGER_CHANGING') : Text::_('COM_SPORTSMANAGER_ADD') ?><?php echo htmlentities_utf8($turnier->turnierbezeichnung . " (" . FormatiertesDatum($turnier->erster_tag, false) . " - " . FormatiertesDatum($turnier->letzter_tag, false) . ")"); ?></div> class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_TOURNAMENT_DISCIPLINE'); ?>&nbsp;<?php echo $row != null ? Text::_('COM_SPORTSMANAGER_CHANGING') : Text::_('COM_SPORTSMANAGER_ADD') ?>&nbsp;<?php echo htmlentities_utf8($turnier->turnierbezeichnung . " (" . FormatiertesDatum($turnier->erster_tag, false) . " - " . FormatiertesDatum($turnier->letzter_tag, false) . ")"); ?></div>
<form action="<?php echo SportsManagerURL(); ?>" method="post" name="adminForm" id="adminForm"> <form action="<?php echo SportsManagerURL(); ?>" method="post" name="adminForm" id="adminForm">
<div class="uk-overflow-auto"> <div class="uk-overflow-auto">
<table class="uk-table" style="width: 100%"> <table style="width: 100%">
<tr> <tr>
<td nowrap style="width: 60%; vertical-align: top"> <td nowrap style="width: 60%; vertical-align: top">
<div class="uk-overflow-auto"> <div class="uk-overflow-auto">
<table class="uk-table" style="width: 100%"> <table style="width: 100%">
<tr> <tr>
<td nowrap style="width: 20%; text-align: right"> <td nowrap style="width: 20%; text-align: right">
<label <label
@@ -11664,8 +11921,8 @@ class HTML_sportsmanager_admin
:</label> :</label>
</td> </td>
<td nowrap> <td nowrap>
<select class="uk-select uk-form-width-medium" name="datum_tag" <select class="uk-select uk-form-width-small" name="datum_tag"
id="date_begin" size="1"> id="date_begin" size="1" style="display: <?php echo $tag_zeigen; ?>">
<?php <?php
$datum = $turnier->erster_tag; $datum = $turnier->erster_tag;
if ($row != null) if ($row != null)
@@ -11678,7 +11935,7 @@ class HTML_sportsmanager_admin
} }
?> ?>
</select> </select>
<select class="uk-select uk-form-width-medium" name="datum_monat" size="1" <select class="uk-select uk-form-width-small" name="datum_monat" size="1" style="display: <?php echo $tag_zeigen; ?>"
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_SCHEDULE_DATE_MONTH'); ?>"> aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_SCHEDULE_DATE_MONTH'); ?>">
<?php <?php
$datum_monat = substr($datum, 5, 2); $datum_monat = substr($datum, 5, 2);
@@ -11689,7 +11946,7 @@ class HTML_sportsmanager_admin
} }
?> ?>
</select> </select>
<select class="uk-select uk-form-width-medium" name="datum_jahr" size="1" <select class="uk-select uk-form-width-small" name="datum_jahr" size="1" style="display: <?php echo $tag_zeigen; ?>"
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_SCHEDULE_DATE_YEAR'); ?>"> aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_SCHEDULE_DATE_YEAR'); ?>">
<?php <?php
$datum_jahr = substr($datum, 0, 4); $datum_jahr = substr($datum, 0, 4);
@@ -11699,7 +11956,7 @@ class HTML_sportsmanager_admin
} }
?> ?>
</select> </select>
<select class="uk-select uk-form-width-medium" name="uhrzeit_stunden" <select class="uk-select uk-form-width-small" name="uhrzeit_stunden"
size="1" size="1"
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_SCHEDULE_DATE_HOUR'); ?>"> aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_SCHEDULE_DATE_HOUR'); ?>">
<?php <?php
@@ -11713,7 +11970,7 @@ class HTML_sportsmanager_admin
} }
?> ?>
</select> </select>
<select class="uk-select uk-form-width-medium" name="uhrzeit_minuten" <select class="uk-select uk-form-width-small" name="uhrzeit_minuten"
size="1" size="1"
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_SCHEDULE_DATE_MINUTE'); ?>"> aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_SCHEDULE_DATE_MINUTE'); ?>">
<?php <?php
@@ -11770,7 +12027,8 @@ class HTML_sportsmanager_admin
<td nowrap> <td nowrap>
<select class="uk-select uk-form-width-medium" <select class="uk-select uk-form-width-medium"
name="rangliste_id_<?php echo $i; ?>" name="rangliste_id_<?php echo $i; ?>"
id="ranking_<?php echo $i; ?>" size="1"> id="ranking_<?php echo $i; ?>" size="1"
style="width: 480px;">
<option value="0"></option> <option value="0"></option>
<?php <?php
$rangliste_system_id = 0; $rangliste_system_id = 0;
@@ -11791,7 +12049,8 @@ class HTML_sportsmanager_admin
:</label> :</label>
<select class="uk-select uk-form-width-medium" <select class="uk-select uk-form-width-medium"
name="rangliste_system_id_<?php echo $i; ?>" name="rangliste_system_id_<?php echo $i; ?>"
id="system_<?php echo $i; ?>" size="1"> id="system_<?php echo $i; ?>" size="1"
style="width: 275px;">
<option <option
value="0"><?php echo Text::_('COM_SPORTSMANAGER_RANKING_SETTING'); ?></option> value="0"><?php echo Text::_('COM_SPORTSMANAGER_RANKING_SETTING'); ?></option>
<?php <?php
@@ -11866,7 +12125,7 @@ class HTML_sportsmanager_admin
:</label> :</label>
</td> </td>
<td nowrap> <td nowrap>
<select class="uk-select uk-form-width-medium" name="voranmeldung_datum_tag" <select class="uk-select uk-form-width-small" name="voranmeldung_datum_tag"
id="appointment_date" id="appointment_date"
size="1"> size="1">
<?php <?php
@@ -11881,7 +12140,7 @@ class HTML_sportsmanager_admin
} }
?> ?>
</select> </select>
<select class="uk-select uk-form-width-medium" <select class="uk-select uk-form-width-small"
name="voranmeldung_datum_monat" name="voranmeldung_datum_monat"
size="1" size="1"
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_SCHEDULE_DATE_MONTH'); ?>"> aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_SCHEDULE_DATE_MONTH'); ?>">
@@ -11894,7 +12153,7 @@ class HTML_sportsmanager_admin
} }
?> ?>
</select> </select>
<select class="uk-select uk-form-width-medium" <select class="uk-select uk-form-width-small"
name="voranmeldung_datum_jahr" name="voranmeldung_datum_jahr"
size="1" size="1"
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_SCHEDULE_DATE_YEAR'); ?>"> aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_SCHEDULE_DATE_YEAR'); ?>">
@@ -11906,7 +12165,7 @@ class HTML_sportsmanager_admin
} }
?> ?>
</select> </select>
<select class="uk-select uk-form-width-medium" <select class="uk-select uk-form-width-small"
name="voranmeldung_uhrzeit_stunden" name="voranmeldung_uhrzeit_stunden"
size="1" size="1"
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_SCHEDULE_DATE_HOUR'); ?>"> aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_SCHEDULE_DATE_HOUR'); ?>">
@@ -11921,7 +12180,7 @@ class HTML_sportsmanager_admin
} }
?> ?>
</select> </select>
<select class="uk-select uk-form-width-medium" <select class="uk-select uk-form-width-small"
name="voranmeldung_uhrzeit_minuten" name="voranmeldung_uhrzeit_minuten"
size="1" size="1"
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_SCHEDULE_DATE_MINUTE'); ?>"> aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_SCHEDULE_DATE_MINUTE'); ?>">
@@ -40,6 +40,9 @@ class HTML_sportsmanager_ticker
continue; continue;
else else
$status = 'upcoming'; $status = 'upcoming';
if ($begegnung->spieltag_titel)
$spieltag = $begegnung->spieltag_titel;
else
$spieltag = Rundenbezeichnung($begegnung->spieltag, $begegnung->unterteilung == 0, false, true); $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); $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;
@@ -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,8 +317,9 @@ 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_PLAYER_DETAILS="Spielerdetails" COM_SPORTSMANAGER_PLAYER_DETAILS="Spielerdetails"
COM_SPORTSMANAGER_PLAYER_LIST_DETAILS="Spielerliste/-details" COM_SPORTSMANAGER_PLAYER_LIST_DETAILS="Spielerliste/-details"
@@ -360,6 +363,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"
@@ -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"
@@ -891,6 +896,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 +1018,4 @@ 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"
@@ -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,8 +317,9 @@ 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_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"
@@ -358,8 +361,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"
@@ -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"
@@ -891,6 +896,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"
@@ -1009,3 +1016,4 @@ 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"
+23 -2
View File
@@ -905,6 +905,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`)"
@@ -1013,7 +1014,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 );
@@ -1117,7 +1118,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 = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'datenbank_version', wert = '106';"; $query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'datenbank_version', wert = '108';";
$db->setQuery( $query ); $db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); } if (!$db->execute()) { die($db->stderr(true)); }
@@ -1137,6 +1138,26 @@ 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 = '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);