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