diff --git a/src/structure/components/com_sportsmanager/admin.php b/src/structure/components/com_sportsmanager/admin.php index 6d094d0..f41868e 100644 --- a/src/structure/components/com_sportsmanager/admin.php +++ b/src/structure/components/com_sportsmanager/admin.php @@ -62,7 +62,7 @@ function detectFileEncoding(string $filename): string { } // Verarbeitung von Vorlagen -function renderTemplate($template, $vars = []): string +function renderTemplate($template, $vars = []): string { // 1. IF_NOT mit optionalem ELSE @@ -100,7 +100,7 @@ function renderTemplate($template, $vars = []): string ); // 3. Einzelne Variablen ersetzen - $template = preg_replace_callback( + return preg_replace_callback( '/\{([A-Z0-9_]+)\}/i', function($m) use ($vars) { $var = $m[1]; @@ -108,8 +108,6 @@ function renderTemplate($template, $vars = []): string }, $template ); - - return $template; } function adminUebersicht(): void @@ -6148,7 +6146,7 @@ function adminOrdnungsstrafeMailen(): void $db = getDatabase(); $jInput = Factory::getContainer()->get(SiteApplication::class)->input; $id = $jInput->get('id', 0, 'INT'); - + if (!benutzerZugriff("benutzerVeranstalterModerator")) keinZugriff(true); @@ -6179,10 +6177,10 @@ function adminOrdnungsstrafeMailen(): void . "\n GROUP BY email" . "\n ORDER BY nachname, vorname;"; $vereinsansprechpartner = loadObjectList($db, $query); - + $var["Ansprechpartner"] = ""; $to = ""; - + foreach ($vereinsansprechpartner AS $ansprechpartner){ if ($var["Ansprechpartner"] == "") $var["Ansprechpartner"] = $ansprechpartner->vorname . " " . $ansprechpartner->nachname; @@ -6211,26 +6209,26 @@ function adminOrdnungsstrafeMailen(): void $var["Zusatztext"] = $ordnungsstrafe->zusatztext; $var["Erweitert"] = $ordnungsstrafe->weitere_angaben; $var["Aussteller"] = $ordnungsstrafe->aussteller; - + $cc = $vorlagen[0]->cc; $bcc = $vorlagen[0]->bcc; $subject = $vorlagen[0]->betreff; $message = renderTemplate($template, $var); $backtomail = "admin_ordnungsstrafe_mailen&id=" . $id; $backtosender = "admin_ordnungsstrafen"; - + $vorlage = new stdClass(); $vorlage->id = $ordnungsstrafe->ordnungsstrafen_id; $vorlage->name = 'Ordnungsstrafe'; - + HTML_sportsmanager_admin::adminMailto($to,$cc,$bcc,$subject,$message,$backtomail,$backtosender,$vorlage); } function sendJoomlaMail(): void { $db = getDatabase(); - $jInput = Factory::getContainer()->get(SiteApplication::class)->input; - $config = Factory::getConfig(); + $app = Factory::getContainer()->get(SiteApplication::class); + $jInput = $app->input; $back = $db->escape(trim($jInput->get('back', '', 'RAW'))); $to = $db->escape(trim($jInput->get('an', '', 'RAW'))); @@ -6240,8 +6238,8 @@ function sendJoomlaMail(): void $body = nl2br(trim($jInput->get('nachricht', '', 'RAW'))); // Joomla From-Adresse aus Konfiguration - $fromEmail = $config->get('mailfrom'); $fromName = 'STFV'; + $fromEmail = $app->getCfg('mailfrom'); // Mailer erstellen über FactoryInterface $mailer = Factory::getContainer() @@ -6295,7 +6293,7 @@ function adminOrdnungsstrafen(): void { $db = getDatabase(); $jInput = Factory::getContainer()->get(SiteApplication::class)->input; - + if (!benutzerZugriff("mannschaftswettbewerb_aendern")) keinZugriff(); @@ -6315,7 +6313,7 @@ function adminOrdnungsstrafen(): void . "\n GROUP BY t7.veranstaltung_id" . "\n ORDER BY t7.bezeichnung"; $veranstaltungen = loadObjectList($db, $query); - + $query = "SELECT t9.verein_id, t9.vereinsname" . "\n FROM #__sportsmanager_ordnungsstrafen AS t1" . "\n LEFT JOIN #__sportsmanager_team AS t4 ON t1.team_id = t4.team_id" @@ -6341,7 +6339,7 @@ function adminOrdnungsstrafen(): void $filter['veranstaltung'] = 0; if (!isset($filter['aussteller'])) $filter['aussteller'] = 0; - + $query = "SELECT *, t2.verstoss, t4.teamname, t9.vereinsname, t8.name, t1.ausstelldatum," . "\n CONCAT(t5.teamname, ' - ', t6.teamname, ' (', t7.bezeichnung, ')') AS begegnung," . "\n (t1.multiplikator * t2.gebuehr + t2.zusatzgebuehr) AS gebuehr," @@ -6364,7 +6362,7 @@ function adminOrdnungsstrafen(): void $query .= "\n AND t8.id = '" . $filter['aussteller'] . "'"; $query .= "\n ORDER BY ordnungsstrafen_id"; $rows = loadObjectList($db, $query); - + HTML_sportsmanager_admin::adminOrdnungsstrafen($rows,$saisons,$veranstaltungen,$vereine,$aussteller,$filter); } @@ -6372,19 +6370,19 @@ function adminEditOrdnungsstrafe(): void { $db = getDatabase(); $jInput = Factory::getContainer()->get(SiteApplication::class)->input; - + if (!benutzerZugriff("mannschaftswettbewerb_aendern")) keinZugriff(); $id = $jInput->get('id', 0, 'INT'); $begegnungid = $jInput->get('begegnungid', 0, 'INT'); $user_id = isExternalDatabase() ? 0 : (isJson() ? getUserID() : Factory::getContainer()->get(SiteApplication::class)->getIdentity()->id); - + if ($id == 0){ $row = null; } else { $query = "SELECT t1.*, t2.name as aussteller, t3.name as versender, t4.name as rechnungssteller" - . "\n FROM #__sportsmanager_ordnungsstrafen AS t1" + . "\n FROM #__sportsmanager_ordnungsstrafen AS t1" . "\n LEFT JOIN #__users AS t2 ON t1.aussteller_id = t2.id" . "\n LEFT JOIN #__users AS t3 ON t1.versender_id = t3.id" . "\n LEFT JOIN #__users AS t4 ON t1.rechnungssteller_id = t4.id" @@ -6413,7 +6411,7 @@ function adminEditOrdnungsstrafe(): void . "\n LEFT JOIN #__sportsmanager_veranstaltung AS t4 ON t2.veranstaltung_id = t4.veranstaltung_id" . "\n WHERE t1.begegnung_id = $begegnungid;"; $begegnungen = loadObjectList($db, $query); - + $query = "SELECT t1.verstoesse_id," . "\n IF (t1.regelwerke_id = '0', t1.verstoss, CONCAT (t1.verstoss, ' (', t2.regelwerk, ')')) AS verstoss" . "\n FROM #__sportsmanager_verstoesse AS t1" @@ -6438,7 +6436,7 @@ function adminEditOrdnungsstrafe(): void if ($jInput->get('cancel', false, 'BOOL')) { redirectSportsManagerURL('&task=admin_ordnungsstrafen'); } - + $filter_saison_id = $jInput->get('filter_saison_id', 0, 'INT'); $user_id = isExternalDatabase() ? 0 : (isJson() ? getUserID() : Factory::getContainer()->get(SiteApplication::class)->getIdentity()->id); $id = $jInput->get('id', 0, 'INT'); @@ -6453,7 +6451,7 @@ function adminEditOrdnungsstrafe(): void if ($jInput->get('save', false, 'BOOL')) { if ($id == 0) { $query = "INSERT INTO #__sportsmanager_ordnungsstrafen" - . "\n (ordnungsstrafen_id,verstoesse_id,begegnung_id,team_id,aussteller_id,ausstelldatum,multiplikator,weitere_angaben)" + . "\n (ordnungsstrafen_id,verstoesse_id,begegnung_id,team_id,aussteller_id,ausstelldatum,multiplikator,weitere_angaben)" . "\n VALUES (NULL,'$verstoesse_id','$begegnung_id','$team_id','$aussteller_id','$ausstelldatum','$multiplikator','$weitere_angaben');"; } else { $query = "UPDATE #__sportsmanager_ordnungsstrafen" @@ -6472,7 +6470,7 @@ function adminEditOrdnungsstrafe(): void } redirectSportsManagerURL('&task=admin_ordnungsstrafen&filter_saison_id='.$filter_saison_id); } - + $query = ""; if ($jInput->get('set_versender', '', 'RAW') == 'set') { $query = "UPDATE #__sportsmanager_ordnungsstrafen" @@ -6500,7 +6498,7 @@ function adminEditOrdnungsstrafe(): void . "\n rechnungsdatum = NULL" . "\n WHERE ordnungsstrafen_id = $id;"; } - + $db->setQuery($query); if (!$db->execute()) { die($db->stderr(true)); @@ -6517,7 +6515,7 @@ function adminEditOrdnungsstrafe(): void keinZugriff(); $id = $jInput->get('id', 0, 'INT'); - + $query = "DELETE FROM #__sportsmanager_ordnungsstrafen WHERE ordnungsstrafen_id = $id;"; $db->setQuery($query); if (!$db->execute()) { @@ -6538,7 +6536,7 @@ function adminEditOrdnungsstrafe(): void if (!benutzerZugriff("benutzerVeranstalterModerator")) keinZugriff(true); - + $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," . "\n (t1.multiplikator * t2.gebuehr + t2.zusatzgebuehr) AS Gebuehr," @@ -6565,7 +6563,7 @@ function adminEditOrdnungsstrafe(): void $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 @@ -6573,12 +6571,12 @@ function adminEditOrdnungsstrafe(): void 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; @@ -6598,9 +6596,9 @@ function adminEditOrdnungsstrafe(): void } $data .= trim($line) . "\n"; } - + echo $header . "\n" . utf8_decode($data); - + die(); } @@ -6610,7 +6608,7 @@ function adminRegelwerke(): void if (!benutzerZugriff("benutzerVeranstalterModerator")) keinZugriff(true); - + $query = "SELECT *," . "\n IF(EXISTS(SELECT * FROM #__sportsmanager_veranstaltung WHERE #__sportsmanager_regelwerke.regelwerke_id = regelwerke_id), 1, 0) AS veranstaltungen," . "\n IF(EXISTS(SELECT * FROM #__sportsmanager_verstoesse WHERE #__sportsmanager_regelwerke.regelwerke_id = regelwerke_id), 1, 0) AS verstoesse" @@ -6686,9 +6684,9 @@ function adminEditRegelwerk(): void . "\n OR EXISTS(SELECT * FROM #__sportsmanager_verstoesse WHERE regelwerke_id = $id)," . "\n 1, 0);"; - if (loadResult($db, $query)) + if (loadResult($db, $query)) redirectSportsManagerURL('&task=admin_regelwerke',Text::_('COM_SPORTSMANAGER_UNABLE_REMOVE_EXISTING_LINKS')); - + $query = "DELETE FROM #__sportsmanager_regelwerke WHERE regelwerke_id = $id;"; $db->setQuery($query); if (!$db->execute()) { @@ -6708,7 +6706,7 @@ function adminVerstoesse(): void . "\n FROM #__sportsmanager_verstoesse" . "\n ORDER BY verstoesse_id"; $rows = loadObjectList($db, $query); - + $query = "SELECT *," . "\n IF(EXISTS(SELECT * FROM #__sportsmanager_ordnungsstrafen WHERE #__sportsmanager_ordnungsstrafen.verstoesse_id = verstoesse_id), 1, 0) AS ordnungsstrafen" . "\n FROM #__sportsmanager_regelwerke" @@ -6744,7 +6742,7 @@ function adminEditVerstoss(): void . "\n FROM #__sportsmanager_regelwerke" . "\n ORDER BY regelwerke_id"; $regelwerke = loadObjectList($db, $query); - + HTML_sportsmanager_admin::adminEditVerstoss($row,$regelwerke); } @@ -6811,9 +6809,9 @@ function adminEditVerstoss(): void . "\n EXISTS(SELECT * FROM #__sportsmanager_ordnungsstrafen WHERE verstoesse_id = $id)," . "\n 1, 0);"; - if (loadResult($db, $query)) + if (loadResult($db, $query)) redirectSportsManagerURL('&task=admin_verstoesse',Text::_('COM_SPORTSMANAGER_UNABLE_REMOVE_EXISTING_LINKS')); - + $query = "DELETE FROM #__sportsmanager_verstoesse WHERE verstoesse_id = $id;"; $db->setQuery($query); if (!$db->execute()) { @@ -6834,8 +6832,8 @@ function adminEditEmailVorlage($vorlage): void . "\n WHERE vorlage = '" . $vorlage . "'"; $rows = loadObjectList($db, $query); $row = $rows[0]; - - $vars = "Ansprechpartner, SPO, GO, Regelwerk, Verstoss, Begegnung, Liga, Spieltag, + + $vars = "Ansprechpartner, SPO, GO, Regelwerk, Verstoss, Begegnung, Liga, Spieltag,
Spieldatum, Verein, Gebuehr, Zusatztext, Erweitert, Aussteller"; HTML_sportsmanager_admin::adminEditEmailVorlage($vorlage,$row,$vars); } @@ -6856,7 +6854,7 @@ function adminSaveEmailVorlage(): void $cc = $db->escape(trim($jInput->get('cc', '', 'RAW'))); $bcc = $db->escape(trim($jInput->get('bcc', '', 'RAW'))); $email_text = $db->escape(trim($jInput->get('email_text', '', 'RAW'))); - + $query = "UPDATE #__sportsmanager_email_vorlagen" . "\n SET betreff = '$betreff'," . "\n cc = '$cc'," @@ -8731,9 +8729,9 @@ 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->spiel_nr != $spiel_nr || - $begegnung->spieltag_titel != $spieltag_titel || $begegnung->spielort_id != $spielort_id || (empty($begegnung->tisch) != empty($tisch) || + 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" . "\n SET zeitpunkt = " . ($zeitpunkt != null ? "'$zeitpunkt'" : "NULL") . "," @@ -11253,8 +11251,8 @@ function adminBegegnungenExportForm(): void 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 .= " + } + $query .= " t5.saisonbezeichnung AS Saison, 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, @@ -11346,7 +11344,7 @@ function adminBegegnungenExportForm(): void } $dateiname = "Spielberichte " . $veranstaltung->bezeichnung; } - + $dateiname .= ".csv"; $dateiname = bereinigterDateiname($dateiname); ob_end_clean(); // Wegen UTF-8-Zeichen, die in der ausgabe vorhanden sind @@ -11354,12 +11352,12 @@ function adminBegegnungenExportForm(): void 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; @@ -11379,9 +11377,9 @@ function adminBegegnungenExportForm(): void } $data .= trim($line) . "\n"; } - + echo $header . "\n" . utf8_decode($data); - + die(); } @@ -11465,7 +11463,7 @@ function adminSaveTurnier(): void echo "$Fehlertext\n"; return; } - + if ($vorlage) { $vorlage_id = $id; $id = 0; @@ -11510,7 +11508,7 @@ function adminSaveTurnier(): void if (!$db->execute()) { die($db->stderr(true)); } - + if ($letzter_tag == $erster_tag){ $query = "UPDATE #__sportsmanager_turnierdisziplin" . "\n SET beginn = CONCAT('$erster_tag', ' ', TIME(beginn))" @@ -13335,7 +13333,7 @@ function adminImportTurnierdisziplinMeldungenSpieleForm(): void } } } - + if ($turniersystemHauptrunde != "Monster-DYP") { $matchingNodes = $disziplin->getElementsByTagName("runde"); if ($matchingNodes != null) {