diff --git a/src/structure/components/com_sportsmanager/admin.php b/src/structure/components/com_sportsmanager/admin.php index 28d38ec..bd33156 100644 --- a/src/structure/components/com_sportsmanager/admin.php +++ b/src/structure/components/com_sportsmanager/admin.php @@ -6411,6 +6411,89 @@ function adminEditOrdnungsstrafe(): void redirectSportsManagerURL('&task=admin_ordnungsstrafen'); } +#[NoReturn] function adminExportOrdnungsstrafen(): void +{ + $db = getDatabase(); + $jInput = Factory::getContainer()->get(SiteApplication::class)->input; + + $filter['saison'] = $jInput->get('filter_saison_id', 0, 'INT'); + $filter['verein'] = $jInput->get('filter_verein_id', 0, 'INT'); + $filter['veranstaltung'] = $jInput->get('filter_veranstaltung_id', 0, 'INT'); + $filter['aussteller'] = $jInput->get('filter_aussteller_id', 0, 'INT'); + + if (!benutzerZugriff("benutzerVeranstalterModerator")) + keinZugriff(true); + + if (empty($filter['saison'])) + $filter['saison'] = $saisons[0]->saison_id; + if (!isset($filter['verein'])) + $filter['verein'] = 0; + if (!isset($filter['veranstaltung'])) + $filter['veranstaltung'] = 0; + if (!isset($filter['aussteller'])) + $filter['aussteller'] = 0; + + $query = "SELECT t1.ordnungsstrafen_id AS ID, t3.begegnung_id AS Spiel_ID, t7.bezeichnung AS Liga," + . "\n t3.spieltag AS Spieltag, t9.vereinsname AS Verein, t2.verstoss AS Verstoss, t8.name AS Aussteller," + . "\n (t1.multiplikator * t2.gebuehr + t2.zusatzgebuehr) AS Gebuehr," + . "\n t1.ausstelldatum AS Ausstelldatum, t1.status AS Status" + . "\n FROM #__sportsmanager_ordnungsstrafen AS t1" + . "\n LEFT JOIN #__sportsmanager_verstoesse AS t2 ON t1.verstoesse_id = t2.verstoesse_id" + . "\n LEFT JOIN #__sportsmanager_begegnung AS t3 ON t1.begegnung_id = t3.begegnung_id" + . "\n LEFT JOIN #__sportsmanager_team AS t4 ON t1.team_id = t4.team_id" + . "\n LEFT JOIN #__sportsmanager_verein AS t9 ON t4.verein_id = t9.verein_id" + . "\n LEFT JOIN #__sportsmanager_team AS t5 ON t3.heim_team_id = t5.team_id" + . "\n LEFT JOIN #__sportsmanager_team AS t6 ON t3.gast_team_id = t6.team_id" + . "\n LEFT JOIN #__sportsmanager_veranstaltung AS t7 ON t4.veranstaltung_id = t7.veranstaltung_id" + . "\n LEFT JOIN #__users AS t8 ON t1.aussteller_id = t8.id" + . "\n WHERE t7.saison_id = '" . $filter['saison'] . "'"; + if (!empty($filter['verein'])) + $query .= "\n AND t9.verein_id = '" . $filter['verein'] . "'"; + if (!empty($filter['veranstaltung'])) + $query .= "\n AND t7.veranstaltung_id = '" . $filter['veranstaltung'] . "'"; + if (!empty($filter['aussteller'])) + $query .= "\n AND t8.id = '" . $filter['aussteller'] . "'"; + $query .= "\n ORDER BY ordnungsstrafen_id"; + $rows = loadObjectList($db, $query); + + $dateiname .= "Ordnungsstrafen.csv"; + $dateiname = bereinigterDateiname($dateiname); + ob_end_clean(); // Wegen UTF-8-Zeichen, die in der ausgabe vorhanden sind + Header("Content-Type: text/x-csv"); + Header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT'); + Header('Content-Disposition: attachment; filename="' . $dateiname . '"'); + Header("Pragma: no-cache"); + + $data = ""; + $trennzeichen = ";"; + $spalte = 0; + $header = ""; + + foreach ($rows[0] as $field => $value) { + if ($spalte != 0) { + $header .= $trennzeichen; + } + $header .= $field; + $spalte++; + } + foreach ($rows as $row) { + $line = ''; + $spalte = 0; + foreach ($row as $value) { + if ($spalte != 0) { + $line .= $trennzeichen; + } + $line .= $value; + $spalte++; + } + $data .= trim($line) . "\n"; + } + + echo $header . "\n" . utf8_decode($data); + + die(); +} + function adminRegelwerke(): void { $db = getDatabase(); diff --git a/src/structure/components/com_sportsmanager/sportsmanager.php b/src/structure/components/com_sportsmanager/sportsmanager.php index 3fe698c..233be91 100644 --- a/src/structure/components/com_sportsmanager/sportsmanager.php +++ b/src/structure/components/com_sportsmanager/sportsmanager.php @@ -377,6 +377,9 @@ if ($task == "spielerbild") { case 'admin_ordnungsstrafe_remove': adminRemoveOrdnungsstrafe(); break; + case 'admin_ordnungsstrafen_export': + adminExportOrdnungsstrafen(); + break; case 'admin_verstoesse': adminVerstoesse(); break; diff --git a/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php b/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php index 9f063f7..e3bc3bf 100644 --- a/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php +++ b/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php @@ -6838,30 +6838,30 @@ class HTML_sportsmanager_admin } function sendMail() { - let to = document.getElementById("to").value.trim(); - if (!to) { alert("Bitte Empfänger eingeben!"); return; } + let to = document.getElementById("to").value.trim(); + if (!to) { alert("Bitte Empfänger eingeben!"); return; } - let ccRaw = document.getElementById("cc").value; - let bccRaw = document.getElementById("bcc").value; + let ccRaw = document.getElementById("cc").value; + let bccRaw = document.getElementById("bcc").value; - let cc = buildAddressList(ccRaw); - let bcc = buildAddressList(bccRaw); + let cc = buildAddressList(ccRaw); + let bcc = buildAddressList(bccRaw); - let subject = encodeURIComponent(document.getElementById("subject").value); - let body = encodeURIComponent(document.getElementById("body").value); + let subject = encodeURIComponent(document.getElementById("subject").value); + let body = encodeURIComponent(document.getElementById("body").value); - // Mailto-Link zusammenbauen - let mailto = `mailto:${encodeURIComponent(to)}?`; + // Mailto-Link zusammenbauen + let mailto = `mailto:${encodeURIComponent(to)}?`; - if (cc) mailto += `cc=${cc}&`; - if (bcc) mailto += `bcc=${bcc}&`; - if (subject) mailto += `subject=${subject}&`; - if (body) mailto += `body=${body}`; + if (cc) mailto += `cc=${cc}&`; + if (bcc) mailto += `bcc=${bcc}&`; + if (subject) mailto += `subject=${subject}&`; + if (body) mailto += `body=${body}`; - mailto = mailto.replace(/[&?]+$/, ""); // aufräumen + mailto = mailto.replace(/[&?]+$/, ""); // aufräumen - // Mailclient öffnen - window.location.href = mailto; + // Mailclient öffnen + window.location.href = mailto; } @@ -6910,7 +6910,7 @@ class HTML_sportsmanager_admin   + + + @@ -6965,7 +6969,9 @@ class HTML_sportsmanager_admin - + + + " method="post" name="adminForm" id="adminForm" enctype="multipart/form-data">
- - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - -
- - - -
- - - -
- - - - -
- - - -
- - - -
- - - -
- - - -
-
-
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + +
+ + + +
+ + + + +
+ + + +
+ + + +
+ + + +
+ + + +
@@ -7220,35 +7218,26 @@ class HTML_sportsmanager_admin
- - - + +
-
- - - - - - - -
- - - -
  + + + + + + - -
+ + + +
  -
- -
+
- @@ -7330,140 +7319,133 @@ class HTML_sportsmanager_admin
- - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
-
-
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+