feat: prevent email flood on new created tournaments when email reminder are turned on in later stages

This commit is contained in:
Marvin Flock
2025-09-25 23:43:11 +02:00
parent cfe4f871f7
commit 9b4eb13d52
@@ -21,14 +21,14 @@ require_once JPATH_SITE . '/components/com_sportsmanager/database/init.php';
function UhrzeitWandlerDE(string $input): string {
// mögliche Datumsformate
$formats = [
'Y-m-d H:i',
'd.m.Y H:i',
'Y-m-d H:i',
'd.m.Y H:i',
'd.m.Y H:i:s',
];
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');
@@ -9618,7 +9618,7 @@ function adminBegegnungenImportieren(): void
if ($encoding == "UTF-8")
echo $data[$Titelzeile['Heim']];
else
echo utf8_encode($data[$Titelzeile['Heim']]);
echo utf8_encode($data[$Titelzeile['Heim']]);
echo "</td>";
if ($Begegnung[$Zeile]['gast_team_id'] == "") {
if ($data[$Titelzeile['Gast']] == "spielfrei") {
@@ -10633,7 +10633,20 @@ function adminEditTurnier(): void
}
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);
if (!$db->execute()) {
die($db->stderr(true));