Ordnungsstrafen implementiert

This commit is contained in:
Jürgen Meyer
2025-12-11 17:52:36 +01:00
parent d17280edb1
commit e7dbfa6402
7 changed files with 1731 additions and 9 deletions
@@ -61,6 +61,56 @@ function detectFileEncoding(string $filename): string {
return $encoding ?: 'UTF-8'; // Fallback auf UTF-8 return $encoding ?: 'UTF-8'; // Fallback auf UTF-8
} }
// Verarbeitung von Vorlagen
function renderTemplate($template, $vars = []) {
// 1. IF_NOT mit optionalem ELSE
$template = preg_replace_callback(
'/\{IF_NOT ([A-Z0-9_]+)\}(.*?)((\{ELSE\}(.*?))?)\{END_IF\}/si',
function($m) use ($vars) {
$var = $m[1];
$ifText = $m[2];
$elseText = isset($m[5]) ? $m[5] : '';
if (empty($vars[$var])) {
return $ifText;
} else {
return $elseText;
}
},
$template
);
// 2. IF mit optionalem ELSE
$template = preg_replace_callback(
'/\{IF ([A-Z0-9_]+)\}(.*?)((\{ELSE\}(.*?))?)\{END_IF\}/si',
function($m) use ($vars) {
$var = $m[1];
$ifText = $m[2];
$elseText = isset($m[5]) ? $m[5] : '';
if (!empty($vars[$var])) {
return $ifText;
} else {
return $elseText;
}
},
$template
);
// 3. Einzelne Variablen ersetzen
$template = preg_replace_callback(
'/\{([A-Z0-9_]+)\}/i',
function($m) use ($vars) {
$var = $m[1];
return $vars[$var] ?? "";
},
$template
);
return $template;
}
function adminUebersicht(): void function adminUebersicht(): void
{ {
$db = getDatabase(); $db = getDatabase();
@@ -684,6 +734,7 @@ function adminEinstellungen(): void
$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'); $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');
$ordnungsstrafen_verwenden = $jInput->get('ordnungsstrafen_verwenden', 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'); $enableEmailReminders = $jInput->get('enable_email_reminders', 0, 'INT');
@@ -763,6 +814,14 @@ function adminEinstellungen(): void
die($db->stderr(true)); die($db->stderr(true));
} }
$query = "REPLACE #__sportsmanager_einstellungen"
. "\n SET name = 'ordnungsstrafen_verwenden'"
. ", wert = '$ordnungsstrafen_verwenden'";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$query = "REPLACE #__sportsmanager_einstellungen" $query = "REPLACE #__sportsmanager_einstellungen"
. "\n SET name = 'ansprechpartner_ausblenden'" . "\n SET name = 'ansprechpartner_ausblenden'"
. ", wert = '$ansprechpartner_ausblenden'"; . ", wert = '$ansprechpartner_ausblenden'";
@@ -6079,6 +6138,546 @@ function adminEditSaison(): void
redirectSportsManagerURL('&task=admin_saisons'); redirectSportsManagerURL('&task=admin_saisons');
} }
function adminOrdnungsstrafeMailen(): void
{
$db = getDatabase();
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
$id = $jInput->get('id', 0, 'INT');
if (!benutzerZugriff("benutzerVeranstalterModerator"))
keinZugriff(true);
$query = "SELECT *, t2.verstoss, t2.paragraph_spo, t2.paragraph_go, t2.zusatztext, t10.regelwerk,"
. "\n t4.teamname, t9.verein_id, t9.vereinsname, t8.name AS aussteller, t1.ausstelldatum, t1.status,"
. "\n t7.bezeichnung as veranstaltung, CONCAT(t3.spieltag, '. Spieltag') as spieltag,"
. "\n t3.spieltag_titel, DATE_FORMAT(t3.zeitpunkt, '%d.%m.%Y') AS spieldatum,"
. "\n CONCAT(t5.teamname, ' - ', t6.teamname) AS begegnung,"
. "\n (t1.multiplikator * t2.gebuehr + t2.zusatzgebuehr) AS gebuehr"
. "\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_regelwerke AS t10 ON t2.regelwerke_id = t10.regelwerke_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 t1.ordnungsstrafen_id = '$id'";
$rows = loadObjectList($db, $query);
$ordnungsstrafe = $rows[0];
$query = "SELECT * FROM #__sportsmanager_vereinsansprechpartner"
. "\n WHERE verein_id = '" . $rows[0]->verein_id . "'"
. "\n GROUP BY email"
. "\n ORDER BY vereinsansprechpartner_id;";
$vereinsansprechpartner = loadObjectList($db, $query);
$var["Ansprechpartner"] = "";
$to = "";
foreach ($vereinsansprechpartner AS $ansprechpartner){
if ($var["Ansprechpartner"] == "")
$var["Ansprechpartner"] = $ansprechpartner->vorname . " " . $ansprechpartner->nachname;
else
$var["Ansprechpartner"] .= ", " . $ansprechpartner->vorname . " " . $ansprechpartner->nachname;
if ($to == "")
$to = $ansprechpartner->email;
else
$to .= ";" . $ansprechpartner->email;
}
$query = "SELECT * FROM #__sportsmanager_email_vorlagen WHERE vorlage = 'Ordnungsstrafe';";
$vorlagen = loadObjectList($db, $query);
$template = $vorlagen[0]->email_text;
$var["SPO"] = $ordnungsstrafe->paragraph_spo;
$var["GO"] = $ordnungsstrafe->paragraph_go;
$var["Regelwerk"] = $ordnungsstrafe->regelwerk;
$var["Verstoss"] = $ordnungsstrafe->verstoss;
$var["Begegnung"] = $ordnungsstrafe->begegnung;
$var["Liga"] = $ordnungsstrafe->veranstaltung;
$var["Spieltag"] = $ordnungsstrafe->spieltag;
$var["Spieldatum"] = $ordnungsstrafe->spieldatum;
$var["Verein"] = $ordnungsstrafe->vereinsname;
$var["Gebuehr"] = $ordnungsstrafe->gebuehr;
$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);
$back = "admin_ordnungsstrafen";
HTML_sportsmanager_admin::adminMailto($to,$cc,$bcc,$subject,$message,$back);
}
function adminOrdnungsstrafen(): void
{
$db = getDatabase();
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
if (!benutzerZugriff("mannschaftswettbewerb_aendern") && !benutzerVeranstaltungModerator($veranstaltungId))
keinZugriff();
$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');
$query = "SELECT * FROM #__sportsmanager_saison ORDER BY saisonbezeichnung DESC;";
$saisons = loadObjectList($db, $query);
$query = "SELECT t7.veranstaltung_id, t7.bezeichnung"
. "\n FROM #__sportsmanager_ordnungsstrafen AS t1"
. "\n LEFT JOIN #__sportsmanager_team AS t4 ON t1.team_id = t4.team_id"
. "\n LEFT JOIN #__sportsmanager_veranstaltung AS t7 ON t4.veranstaltung_id = t7.veranstaltung_id"
. "\n WHERE t7.veranstaltung_id <> '' "
. "\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"
. "\n LEFT JOIN #__sportsmanager_verein AS t9 ON t4.verein_id = t9.verein_id"
. "\n WHERE t9.verein_id <> '' "
. "\n GROUP BY t9.verein_id"
. "\n ORDER BY t9.vereinsname";
$vereine = loadObjectList($db, $query);
$query = "SELECT t8.id, t8.name"
. "\n FROM #__sportsmanager_ordnungsstrafen AS t1"
. "\n LEFT JOIN #__users AS t8 ON t1.aussteller_id = t8.id"
. "\n WHERE t8.id <> '' "
. "\n GROUP BY t8.id"
. "\n ORDER BY t8.name";
$aussteller = loadObjectList($db, $query);
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 *, t2.verstoss, t4.teamname, t9.vereinsname, t8.name, t1.ausstelldatum, t1.status,"
. "\n CONCAT(t5.teamname, ' - ', t6.teamname, ' (', t7.bezeichnung, ')') AS begegnung,"
. "\n (t1.multiplikator * t2.gebuehr + t2.zusatzgebuehr) AS gebuehr"
. "\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);
HTML_sportsmanager_admin::adminOrdnungsstrafen($rows,$saisons,$veranstaltungen,$vereine,$aussteller,$filter);
}
function adminEditOrdnungsstrafe(): void
{
$db = getDatabase();
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
if (!benutzerZugriff("mannschaftswettbewerb_aendern") && !benutzerVeranstaltungModerator($veranstaltungId))
keinZugriff();
$id = $jInput->get('id', 0, 'INT');
$begegnungid = $jInput->get('begegnungid', 0, 'INT');
$veranstaltungid = $jInput->get('veranstaltungid', 0, 'INT');
if ($id == 0){
$row = null;
$user_id = isExternalDatabase() ? 0 : (isJson() ? getUserID() : Factory::getContainer()->get(SiteApplication::class)->getIdentity()->id);
} else {
$query = "SELECT * FROM #__sportsmanager_ordnungsstrafen WHERE ordnungsstrafen_id = $id";
$rows = loadObjectList($db, $query);
if (count($rows) < 1) die("Wrong id!");
$row = $rows[0];
$begegnungid = $row->begegnung_id;
$user_id = $row->aussteller_id;
}
if ($begegnungid == 0)
redirectSportsManagerURL('&task=admin_ordnungsstrafen', 'Missing id');
$query = "SELECT * FROM #__users WHERE id = '$user_id';";
$aussteller = loadObjectList($db, $query);
$query = "SELECT t1.begegnung_id, t1.heim_team_id, t1.gast_team_id, t1.gast_team_id,"
. "\n t2.teamname AS heim_name, t3.teamname AS gast_name,"
. "\n t1.zeitpunkt, t1.spieltag, t1.spieltag_titel, t1.spiel_nr,"
. "\n t4.veranstaltung_id as veranstaltung_id, t4.bezeichnung AS veranstaltung, t4.regelwerke_id,"
. "\n CONCAT(t2.teamname, ' - ', t3.teamname, ' (', t4.bezeichnung, ')') AS begegnung"
. "\n FROM #__sportsmanager_begegnung AS t1"
. "\n LEFT JOIN #__sportsmanager_team AS t2 ON t1.heim_team_id = t2.team_id"
. "\n LEFT JOIN #__sportsmanager_team AS t3 ON t1.gast_team_id = t3.team_id"
. "\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"
. "\n LEFT JOIN #__sportsmanager_regelwerke AS t2 ON t1.regelwerke_id = t2.regelwerke_id ";
$query .= "WHERE zur_auswahl = 1 ";
if ($begegnungen[0]->regelwerke_id != 0)
$query .= "AND t1.regelwerke_id = '" . $begegnungen[0]->regelwerke_id . "' ";
$query .= "ORDER BY t1.regelwerke_id, t1.verstoesse_id;";
$verstoesse = loadObjectList($db, $query);
HTML_sportsmanager_admin::adminEditOrdnungsstrafe($row,$begegnungen[0],$teams,$verstoesse,$aussteller[0]);
}
#[NoReturn] function adminSaveOrdnungsstrafe(): void
{
$db = getDatabase();
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
if (!benutzerZugriff("mannschaftswettbewerb_aendern") && !benutzerVeranstaltungModerator($veranstaltungId))
keinZugriff();
if ($jInput->get('cancel', false, 'BOOL')) {
redirectSportsManagerURL('&task=admin_ordnungsstrafen');
}
$id = $jInput->get('id', 0, 'INT');
$verstoesse_id = $jInput->get('verstoesse_id', 0, 'INT');
$begegnung_id = $jInput->get('begegnung_id', 0, 'INT');
$team_id = $jInput->get('team_id', 0, 'INT');
$aussteller_id = $jInput->get('aussteller_id', 0, 'INT');
$ausstelldatum = $db->escape(trim($jInput->get('ausstelldatum', '', 'RAW')));
$multiplikator = $jInput->get('multiplikator', 0, 'INT');
$weitere_angaben = $db->escape(trim($jInput->get('weitere_angaben', '', 'RAW')));
$status = $db->escape($jInput->get('status', '', 'RAW'));
if ($id == 0)
$query = "INSERT INTO #__sportsmanager_ordnungsstrafen"
. "\n (ordnungsstrafen_id,verstoesse_id,begegnung_id,team_id,aussteller_id,ausstelldatum,multiplikator,weitere_angaben,status)"
. "\n VALUES (NULL,'$verstoesse_id','$begegnung_id','$team_id','$aussteller_id','$ausstelldatum','$multiplikator','$weitere_angaben','$status');";
else {
$query = "UPDATE #__sportsmanager_ordnungsstrafen"
. "\n SET verstoesse_id = '$verstoesse_id',"
. "\n begegnung_id = '$begegnung_id',"
. "\n team_id = '$team_id',"
. "\n aussteller_id = '$aussteller_id',"
. "\n ausstelldatum = '$ausstelldatum',"
. "\n multiplikator = '$multiplikator',"
. "\n weitere_angaben = '$weitere_angaben',"
. "\n status = '$status'"
. "\n WHERE ordnungsstrafen_id = $id";
}
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
redirectSportsManagerURL('&task=admin_ordnungsstrafen');
}
#[NoReturn] function adminRemoveOrdnungsstrafe(): void
{
$db = getDatabase();
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
if (!benutzerZugriff("mannschaftswettbewerb_aendern") && !benutzerVeranstaltungModerator($veranstaltungId))
keinZugriff();
$id = $jInput->get('id', 0, 'INT');
$query = "DELETE FROM #__sportsmanager_ordnungsstrafen WHERE ordnungsstrafen_id = $id;";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
redirectSportsManagerURL('&task=admin_ordnungsstrafen');
}
function adminRegelwerke(): void
{
$db = getDatabase();
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"
. "\n FROM #__sportsmanager_regelwerke"
. "\n ORDER BY regelwerke_id";
$rows = loadObjectList($db, $query);
HTML_sportsmanager_admin::adminRegelwerke($rows);
}
function adminEditRegelwerk(): void
{
$db = getDatabase();
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
if (!benutzerZugriff("benutzerVeranstalterModerator"))
keinZugriff(true);
$id = $jInput->get('id', 0, 'INT');
if ($id == 0)
$row = null;
else {
$query = "SELECT * FROM #__sportsmanager_regelwerke WHERE regelwerke_id = $id";
$rows = loadObjectList($db, $query);
if (count($rows) < 1) die("Wrong id!");
$row = $rows[0];
}
HTML_sportsmanager_admin::adminEditRegelwerk($row);
}
#[NoReturn] function adminSaveRegelwerk(): void
{
$db = getDatabase();
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
if (!benutzerZugriff("benutzerVeranstalterModerator"))
keinZugriff();
if ($jInput->get('cancel', false, 'BOOL')) {
redirectSportsManagerURL('&task=admin_regelwerke');
}
$id = $jInput->get('id', 0, 'INT');
$regelwerk = $db->escape(trim($jInput->get('regelwerk', '', 'RAW')));
if ($id == 0)
$query = "INSERT INTO #__sportsmanager_regelwerke (regelwerk) VALUES ('$regelwerk');";
else {
$query = "UPDATE #__sportsmanager_regelwerke"
. "\n SET regelwerk = '$regelwerk'"
. "\n WHERE regelwerke_id = $id";
}
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
redirectSportsManagerURL('&task=admin_regelwerke');
}
#[NoReturn] function adminRemoveRegelwerk(): void
{
$db = getDatabase();
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
if (!benutzerZugriff("benutzerVeranstalterModerator"))
keinZugriff(true);
$id = $jInput->get('id', 0, 'INT');
$query ="SELECT IF("
. "\n EXISTS(SELECT * FROM #__sportsmanager_veranstaltung WHERE regelwerke_id = $id)"
. "\n OR EXISTS(SELECT * FROM #__sportsmanager_verstoesse WHERE regelwerke_id = $id),"
. "\n 1, 0);";
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()) {
die($db->stderr(true));
}
redirectSportsManagerURL('&task=admin_regelwerke');
}
function adminVerstoesse(): void
{
$db = getDatabase();
if (!benutzerZugriff("benutzerVeranstalterModerator"))
keinZugriff(true);
$query = "SELECT *"
. "\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"
. "\n ORDER BY regelwerke_id";
$liste = loadObjectList($db, $query);
foreach($liste as $value){
$regelwerke[$value->regelwerke_id] = $value->regelwerk;
}
HTML_sportsmanager_admin::adminVerstoesse($rows,$regelwerke);
}
function adminEditVerstoss(): void
{
$db = getDatabase();
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
if (!benutzerZugriff("benutzerVeranstalterModerator"))
keinZugriff(true);
$id = $jInput->get('id', 0, 'INT');
if ($id == 0)
$row = null;
else {
$query = "SELECT * FROM #__sportsmanager_verstoesse WHERE verstoesse_id = $id";
$rows = loadObjectList($db, $query);
if (count($rows) < 1) die("Wrong id!");
$row = $rows[0];
}
$query = "SELECT *,"
. "\n IF(EXISTS(SELECT * FROM #__sportsmanager_ordnungsstrafen WHERE #__sportsmanager_ordnungsstrafen.verstoesse_id = verstoesse_id), 1, 0) AS ordnungsstrafen"
. "\n FROM #__sportsmanager_regelwerke"
. "\n ORDER BY regelwerke_id";
$regelwerke = loadObjectList($db, $query);
HTML_sportsmanager_admin::adminEditVerstoss($row,$regelwerke);
}
#[NoReturn] function adminSaveVerstoss(): void
{
$db = getDatabase();
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
if (!benutzerZugriff("benutzerVeranstalterModerator"))
keinZugriff();
if ($jInput->get('cancel', false, 'BOOL')) {
redirectSportsManagerURL('&task=admin_verstoesse');
}
$id = $jInput->get('id', 0, 'INT');
$regelwerke_id = $jInput->get('regelwerke_id', 0, 'INT');
$paragraph_spo = $db->escape(trim($jInput->get('paragraph_spo', '', 'RAW')));
$paragraph_go = $db->escape(trim($jInput->get('paragraph_go', '', 'RAW')));
$verstoss = $db->escape(trim($jInput->get('verstoss', '', 'RAW')));
$haupttext = $db->escape(trim($jInput->get('haupttext', '', 'RAW')));
$zusatztext = $db->escape(trim($jInput->get('zusatztext', '', 'RAW')));
$gebuehr = $jInput->get('gebuehr', 0, 'INT');
$zusatzgebuehr = $jInput->get('zusatzgebuehr', 0, 'INT');
$zur_auswahl = $jInput->get('zur_auswahl', 0, 'INT');
if ($id == 0)
$query = "INSERT INTO #__sportsmanager_verstoesse"
. "\n (regelwerke_id,paragraph_spo,paragraph_go,verstoss,haupttext,zusatztext,gebuehr,zusatzgebuehr,zur_auswahl)"
. "\n VALUES ('$regelwerke_id','$paragraph_spo','$paragraph_go','$verstoss','$haupttext',"
. "\n '$zusatztext','$gebuehr','$zusatzgebuehr','$zur_auswahl');";
else {
$query = "UPDATE #__sportsmanager_verstoesse"
. "\n SET regelwerke_id = '$regelwerke_id',"
. "\n paragraph_spo = '$paragraph_spo',"
. "\n paragraph_go = '$paragraph_go',"
. "\n verstoss = '$verstoss',"
. "\n haupttext = '$haupttext',"
. "\n zusatztext = '$zusatztext',"
. "\n gebuehr = '$gebuehr',"
. "\n zusatzgebuehr = '$zusatzgebuehr',"
. "\n zur_auswahl = '$zur_auswahl'"
. "\n WHERE verstoesse_id = $id";
}
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
redirectSportsManagerURL('&task=admin_verstoesse');
}
#[NoReturn] function adminRemoveVerstoss(): void
{
$db = getDatabase();
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
if (!benutzerZugriff("benutzerVeranstalterModerator"))
keinZugriff(true);
$id = $jInput->get('id', 0, 'INT');
$query ="SELECT IF("
. "\n EXISTS(SELECT * FROM #__sportsmanager_ordnungsstrafen WHERE verstoesse_id = $id),"
. "\n 1, 0);";
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()) {
die($db->stderr(true));
}
redirectSportsManagerURL('&task=admin_verstoesse');
}
function adminEditEmailVorlage($vorlage): void
{
$db = getDatabase();
if (!benutzerZugriff("benutzerVeranstalterModerator"))
keinZugriff(true);
$query = "SELECT *"
. "\n FROM #__sportsmanager_email_vorlagen"
. "\n WHERE vorlage = '" . $vorlage . "'";
$rows = loadObjectList($db, $query);
$row = $rows[0];
$vars = "Ansprechpartner, SPO, GO, Regelwerk, Verstoss, Begegnung, Liga, Spieltag,
<br>Spieldatum, Verein, Gebuehr, Zusatztext, Erweitert, Aussteller";
HTML_sportsmanager_admin::adminEditEmailVorlage($vorlage,$row,$vars);
}
function adminSaveEmailVorlage(): void
{
$db = getDatabase();
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
$Fehlertext = "";
if (!benutzerZugriff("benutzerVeranstalterModerator"))
keinZugriff();
if ($jInput->get('cancel', false, 'BOOL')) {
redirectSportsManagerURL('&task=admin_ordnungsstrafen');
}
$vorlage = $db->escape(trim($jInput->get('vorlage', '', 'RAW')));
$betreff = $db->escape(trim($jInput->get('betreff', '', 'RAW')));
$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',"
. "\n bcc = '$bcc',"
. "\n email_text = '$email_text'"
. "\n WHERE vorlage = '" . $vorlage . "'";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
redirectSportsManagerURL('&task=admin_ordnungsstrafen');
}
function adminEditVeranstaltung(): void function adminEditVeranstaltung(): void
{ {
$db = getDatabase(); $db = getDatabase();
@@ -6100,6 +6699,8 @@ function adminEditVeranstaltung(): void
$query = "SELECT * FROM #__sportsmanager_veranstalter ORDER BY veranstalterbezeichnung"; $query = "SELECT * FROM #__sportsmanager_veranstalter ORDER BY veranstalterbezeichnung";
$veranstalter = loadObjectList($db, $query); $veranstalter = loadObjectList($db, $query);
$query = "SELECT * FROM #__sportsmanager_regelwerke ORDER BY regelwerk";
$regelwerke = loadObjectList($db, $query);
$query = "SELECT * FROM #__sportsmanager_teamspiel_modus WHERE status != 0 " . ($id != 0 ? "OR teamspiel_modus_id = $row->modus_id " : "") . "ORDER BY bezeichnung"; $query = "SELECT * FROM #__sportsmanager_teamspiel_modus WHERE status != 0 " . ($id != 0 ? "OR teamspiel_modus_id = $row->modus_id " : "") . "ORDER BY bezeichnung";
$spielmodi = loadObjectList($db, $query); $spielmodi = loadObjectList($db, $query);
$query = "SELECT * FROM #__sportsmanager_verschieberegel ORDER BY bezeichnung"; // WHERE status != 0 " . ($id != 0 ? "OR teamspiel_modus_id = $row->modus_id " : "") . "ORDER BY bezeichnung"; $query = "SELECT * FROM #__sportsmanager_verschieberegel ORDER BY bezeichnung"; // WHERE status != 0 " . ($id != 0 ? "OR teamspiel_modus_id = $row->modus_id " : "") . "ORDER BY bezeichnung";
@@ -6121,7 +6722,7 @@ function adminEditVeranstaltung(): void
$query = "SELECT * FROM #__users ORDER BY name, username"; $query = "SELECT * FROM #__users ORDER BY name, username";
$users = loadObjectList($db, $query); $users = loadObjectList($db, $query);
HTML_sportsmanager_admin::adminEditVeranstaltung($row, $veranstalter, $spielmodi, $verschieberegeln, $kategorien, $saisons, $users, $berechtigt_fuer_veranstaltung, $vorlage); HTML_sportsmanager_admin::adminEditVeranstaltung($row, $veranstalter, $regelwerke, $spielmodi, $verschieberegeln, $kategorien, $saisons, $users, $berechtigt_fuer_veranstaltung, $vorlage);
} }
#[NoReturn] function adminSaveVeranstaltung(): void #[NoReturn] function adminSaveVeranstaltung(): void
@@ -6145,7 +6746,8 @@ function adminEditVeranstaltung(): void
$saison_id = $jInput->get('saison_id', 0, 'INT'); $saison_id = $jInput->get('saison_id', 0, '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'))); $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')));
$letzter_tag = normalisiertesDatum(sprintf("%04d-%02d-%02d", $jInput->get('letzter_tag_jahr', 2000, 'INT'), $jInput->get('letzter_tag_monat', 1, 'INT'), $jInput->get('letzter_tag_tag', 1, 'INT'))); $letzter_tag = normalisiertesDatum(sprintf("%04d-%02d-%02d", $jInput->get('letzter_tag_jahr', 2000, 'INT'), $jInput->get('letzter_tag_monat', 1, 'INT'), $jInput->get('letzter_tag_tag', 1, 'INT')));
$modus_id = $jInput->get('modus_id', 0, 'INT'); $regelwerke_id = $jInput->get('regelwerke_id', 0, 'INT');
$modus_id = $jInput->get('modus_id', 0, 'INT');
$verschieberegel_id = $jInput->get('verschieberegel_id', 0, 'INT'); $verschieberegel_id = $jInput->get('verschieberegel_id', 0, 'INT');
$tabellenwertung = $jInput->get('tabellenwertung', 0, 'INT'); $tabellenwertung = $jInput->get('tabellenwertung', 0, 'INT');
$direktervergleich = $jInput->get('direktervergleich', 0, 'INT'); $direktervergleich = $jInput->get('direktervergleich', 0, 'INT');
@@ -6169,8 +6771,8 @@ function adminEditVeranstaltung(): void
$elo_aktualisieren = false; $elo_aktualisieren = false;
$spielerstatistik_aktualisieren = false; $spielerstatistik_aktualisieren = false;
if ($id == 0) { if ($id == 0) {
$query = "INSERT INTO #__sportsmanager_veranstaltung (veranstalter_id, saison_id, bezeichnung, erster_tag " . ($letzter_tag != null ? ", letzter_tag" : "") . ", modus_id, verschieberegel_id, tabellenwertung, direktervergleich, unterteilung, spieltag_titel_zeigen, elo_wertung, logo_url, ticker_logo_url, status, reihenfolge, kategorie) VALUES $query = "INSERT INTO #__sportsmanager_veranstaltung (veranstalter_id, saison_id, bezeichnung, erster_tag " . ($letzter_tag != null ? ", letzter_tag" : "") . ", regelwerke_id, modus_id, verschieberegel_id, tabellenwertung, direktervergleich, unterteilung, spieltag_titel_zeigen, elo_wertung, logo_url, ticker_logo_url, status, reihenfolge, kategorie) VALUES
('$veranstalterId', '$saison_id', '$bezeichnung', '$erster_tag', " . ($letzter_tag != null ? "'$letzter_tag', " : "") . "'$modus_id', '$verschieberegel_id', '$tabellenwertung', '$direktervergleich', '$unterteilung', '$spieltag_titel_zeigen', '$elo_wertung', '$logo_url', '$ticker_logo_url', '$status', '$reihenfolge', '$kategorie');"; ('$veranstalterId', '$saison_id', '$bezeichnung', '$erster_tag', " . ($letzter_tag != null ? "'$letzter_tag', " : "") . "'$regelwerke_id', '$modus_id', '$verschieberegel_id', '$tabellenwertung', '$direktervergleich', '$unterteilung', '$spieltag_titel_zeigen', '$elo_wertung', '$logo_url', '$ticker_logo_url', '$status', '$reihenfolge', '$kategorie');";
$db->setQuery($query); $db->setQuery($query);
if (!$db->execute()) { if (!$db->execute()) {
die($db->stderr(true)); die($db->stderr(true));
@@ -6190,7 +6792,8 @@ function adminEditVeranstaltung(): void
. "\n saison_id = '$saison_id'," . "\n saison_id = '$saison_id',"
. "\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 modus_id = '$modus_id'," . "\n regelwerke_id = '$regelwerke_id',"
. "\n modus_id = '$modus_id',"
. "\n verschieberegel_id = '$verschieberegel_id'," . "\n verschieberegel_id = '$verschieberegel_id',"
. "\n tabellenwertung = '$tabellenwertung'," . "\n tabellenwertung = '$tabellenwertung',"
. "\n direktervergleich = '$direktervergleich'," . "\n direktervergleich = '$direktervergleich',"
@@ -5414,6 +5414,84 @@ function updateDatabase(): void
} }
} }
if ($datenbank_version < 114) {
$query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_regelwerke` ("
. "\n `regelwerke_id` int(11) NOT NULL AUTO_INCREMENT,"
. "\n `regelwerk` varchar(32) NOT NULL,"
. "\n PRIMARY KEY (`regelwerke_id`),"
. "\n UNIQUE KEY `regelwerk` (`regelwerk`)"
. "\n ) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_verstoesse` ("
. "\n `verstoesse_id` int(11) NOT NULL AUTO_INCREMENT,"
. "\n `regelwerke_id` int(11) NOT NULL DEFAULT 0,"
. "\n `paragraph_spo` varchar(32) NOT NULL DEFAULT '',"
. "\n `paragraph_go` varchar(32) NOT NULL DEFAULT '',"
. "\n `verstoss` varchar(64) NOT NULL DEFAULT '',"
. "\n `haupttext` text NOT NULL DEFAULT '',"
. "\n `zusatztext` text NOT NULL DEFAULT '',"
. "\n `gebuehr` smallint(3) NOT NULL DEFAULT 0,"
. "\n `zusatzgebuehr` smallint(2) NOT NULL DEFAULT 0,"
. "\n `zur_auswahl` tinyint(1) NOT NULL DEFAULT 1,"
. "\n PRIMARY KEY (`verstoesse_id`)"
. "\n ) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_ordnungsstrafen` ("
. "\n `ordnungsstrafen_id` int(11) NOT NULL AUTO_INCREMENT,"
. "\n `verstoesse_id` int(11) NOT NULL DEFAULT 0,"
. "\n `begegnung_id` int(11) NOT NULL DEFAULT 0,"
. "\n `team_id` int(11) NOT NULL DEFAULT 0,"
. "\n `aussteller_id` int(11) NOT NULL DEFAULT 0,"
. "\n `ausstelldatum` date NOT NULL DEFAULT current_timestamp(),"
. "\n `multiplikator` tinyint(1) NOT NULL DEFAULT 1,"
. "\n `weitere_angaben` text NOT NULL DEFAULT '',"
. "\n `status` varchar(16) NOT NULL DEFAULT '',"
. "\n PRIMARY KEY (`ordnungsstrafen_id`)"
. "\n ) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_email_vorlagen` ("
. "\n `email_vorlagen_id` int(11) NOT NULL AUTO_INCREMENT,"
. "\n `vorlage` varchar(64) NOT NULL,"
. "\n `betreff` varchar(256) NOT NULL DEFAULT '',"
. "\n `von` varchar(64) NOT NULL DEFAULT '',"
. "\n `an` varchar(256) NOT NULL DEFAULT '',"
. "\n `cc` varchar(256) NOT NULL DEFAULT '',"
. "\n `bcc` varchar(256) NOT NULL DEFAULT '',"
. "\n `email_text` text NOT NULL DEFAULT '',"
. "\n PRIMARY KEY (`email_vorlagen_id`),"
. "\n UNIQUE KEY `vorlage` (`vorlage`)"
. "\n ) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'ordnungsstrafen_verwenden', wert = '0';";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "INSERT IGNORE INTO `#__sportsmanager_email_vorlagen` (`email_vorlagen_id`, `vorlage`) VALUES (NULL, 'Ordnungsstrafe');";
$db->setQuery($query);
if (!$db->execute()) { die($db->stderr(true)); }
$query = "ALTER TABLE `#__sportsmanager_veranstaltung` ADD COLUMN IF NOT EXISTS `regelwerke_id` INT(11) NOT NULL DEFAULT '0' AFTER `bezeichnung`;";
$db->setQuery($query);
if (!$db->execute()) { die($db->stderr(true)); }
$query = "UPDATE #__sportsmanager_einstellungen"
. "\n SET wert = '114'"
. "\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";
@@ -350,6 +350,51 @@ if ($task == "spielerbild") {
case 'admin_rechnung_remove': case 'admin_rechnung_remove':
adminRemoveRechnung(); adminRemoveRechnung();
break; break;
case 'admin_regelwerke':
adminRegelwerke();
break;
case 'admin_regelwerk_edit':
adminEditRegelwerk();
break;
case 'admin_regelwerk_save':
adminSaveRegelwerk();
break;
case 'admin_regelwerk_remove':
adminRemoveRegelwerk();
break;
case 'admin_ordnungsstrafe_mailen':
adminOrdnungsstrafeMailen();
break;
case 'admin_ordnungsstrafen':
adminOrdnungsstrafen();
break;
case 'admin_ordnungsstrafe_edit':
adminEditOrdnungsstrafe();
break;
case 'admin_ordnungsstrafe_save':
adminSaveOrdnungsstrafe();
break;
case 'admin_ordnungsstrafe_remove':
adminRemoveOrdnungsstrafe();
break;
case 'admin_verstoesse':
adminVerstoesse();
break;
case 'admin_verstoss_edit':
adminEditVerstoss();
break;
case 'admin_verstoss_save':
adminSaveVerstoss();
break;
case 'admin_verstoss_remove':
adminRemoveVerstoss();
break;
case 'admin_ordnungsstrafen_vorlage':
adminEditEmailVorlage('Ordnungsstrafe');
break;
case 'admin_email_vorlage_save':
adminSaveEmailVorlage();
break;
case 'admin_moderatoren': case 'admin_moderatoren':
adminModeratoren(); adminModeratoren();
break; break;
@@ -204,6 +204,15 @@ class HTML_sportsmanager_admin
<?php <?php
self::checkZeilenumbruch($Spalte_Nr, $max_Spalten); self::checkZeilenumbruch($Spalte_Nr, $max_Spalten);
} }
if (benutzerZugriff("mannschaftswettbewerb_aendern") && einstellungswert("ordnungsstrafen_verwenden")) {
?>
<td style="padding-right: 15px" nowrap>
<a href="<?php echo SportsManagerURL('&task=admin_ordnungsstrafen'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_DISCIPLINARY_FINES'); ?></a>
</td>
<?php
self::checkZeilenumbruch($Spalte_Nr, $max_Spalten);
}
?> ?>
</tr> </tr>
</table><br> </table><br>
@@ -808,6 +817,24 @@ class HTML_sportsmanager_admin
</select> </select>
</td> </td>
</tr> </tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label
for="show_disciplinary_fine"><?php echo Text::_('COM_SPORTSMANAGER_USE_DISCIPLINARY_FINE'); ?>
:</label>
</td>
<td nowrap>
<select class="uk-select uk-form-width-medium" name="ordnungsstrafen_verwenden"
id="show_disciplinary_fine" size="1">
<?php
$ordnungsstrafen_verwenden = array(0 => Text::_('JNO'), 1 => Text::_('JYES'));
foreach ($ordnungsstrafen_verwenden as $wert => $bezeichnung) {
echo "<option value=\"" . $wert . "\"" . (isset($einstellungen["ordnungsstrafen_verwenden"]) && $einstellungen["ordnungsstrafen_verwenden"] == $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
@@ -6744,6 +6771,794 @@ class HTML_sportsmanager_admin
<?php <?php
} }
static function adminMailto($to,$cc,$bcc,$subject,$message,$back){
global $params;
?>
<div class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_EMAIL_SEND'); ?></div>
<form id="mailForm">
<div class="uk-overflow-auto">
<table style="width: 100%">
<tr>
<td nowrap style="width: 20%; text-align: right">
<label for="to"><?php echo Text::_('COM_SPORTSMANAGER_EMAIL_TO'); ?>:</label>
</td>
<td>
<textarea id="to" name="an" rows="2" style="width: 800px;"><?php echo $to; ?></textarea>
</td>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label for="cc">CC:</label>
</td>
<td>
<textarea id="cc" name="cc" rows="2" style="width: 800px;"><?php echo $cc; ?></textarea>
</td>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label for="bcc">BCC:</label>
</td>
<td>
<textarea id="bcc" name="bcc" rows="2" style="width: 800px;"><?php echo $bcc; ?></textarea>
</td>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label for="subject"><?php echo Text::_('COM_SPORTSMANAGER_EMAIL_SUBJECT'); ?>:</label>
</td>
<td>
<input type="text" id="subject" name="betreff" style="width: 800px;" value="<?php echo htmlspecialchars($subject, ENT_QUOTES); ?>" />
</td>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label for="body"><?php echo Text::_('COM_SPORTSMANAGER_EMAIL_MESSAGE'); ?>:</label>
</td>
<td>
<textarea id="body" name="nachricht" rows="30" style="width: 800px;"><?php echo $message; ?></textarea>
</td>
</tr>
</table>
<button type="button" onclick="sendMail()">E-Mail senden</button>
<input type="submit" name="cancel" value="<?php echo Text::_('COM_SPORTSMANAGER_BACK'); ?>" class="button"/>
<input type="hidden" name="task" value="<?php echo $back; ?>"/>
</div>
</form>
<script>
// Hilfsfunktion: Liste aus Benutzereingabe bauen → getrennt durch %3B
function buildAddressList(input) {
return input
.split(/[\n,;]+/) // erlaubt Komma, Semikolon, Zeilenumbruch
.map(a => a.trim()) // Whitespace entfernen
.filter(Boolean) // leere Einträge entfernen
.map(encodeURIComponent) // URL-encodieren
.join("%3B"); // Outlook-sicheres Semikolon
}
function sendMail() {
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 cc = buildAddressList(ccRaw);
let bcc = buildAddressList(bccRaw);
let subject = encodeURIComponent(document.getElementById("subject").value);
let body = encodeURIComponent(document.getElementById("body").value);
// 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}`;
mailto = mailto.replace(/[&?]+$/, ""); // aufräumen
// Mailclient öffnen
window.location.href = mailto;
}
</script>
<?php
}
static function adminOrdnungsstrafen($rows,$saisons,$veranstaltungen,$vereine,$ausstellerliste,$filter): void
{
global $params;
?>
<style>
td, th {
padding-left: 8px;
}
</style>
<div
class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_DISCIPLINARY_FINES'); ?>
: <?php echo Text::_('COM_SPORTSMANAGER_JOOMLA_MANAGEMENT'); ?></div>
<table style="border-spacing: 10px">
<tr>
<td nowrap><a
href="<?php echo SportsManagerURL('&task=admin_uebersicht'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_BACK'); ?></a>
</td>
</tr>
<?php if (benutzerZugriff("benutzerVeranstalterModerator")){ ?>
<tr>
<td nowrap><a
href="<?php echo SportsManagerURL('&task=admin_regelwerke'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_RULEBOOKS'); ?></a>
</td>
<td nowrap><a
href="<?php echo SportsManagerURL('&task=admin_verstoesse'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_VIOLATIONS'); ?></a>
</td>
<td nowrap><a
href="<?php echo SportsManagerURL('&task=admin_ordnungsstrafen_vorlage'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_TEMPLATE'); ?></a>
</td>
</tr>
<?php } ?>
</table>
<?php if (count($saisons) > 0) {
?>
<form action="<?php echo SportsManagerURL(); ?>" method="post" name="adminForm" id="adminForm">
<table class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr>
<td>
<label for="filter_saison_id"><?php echo Text::_('COM_SPORTSMANAGER_SEASON'); ?>:</label>
<select class="uk-form-width-small" name="filter_saison_id" id="filter_saison_id" size="1"
onChange="document.adminForm.submit();" >
<?php
foreach ($saisons as $saison)
echo "<option value=\"" . $saison->saison_id . "\" " . ($filter['saison'] == $saison->saison_id ? "selected" : "") . ">" . htmlentities_utf8($saison->saisonbezeichnung) . "</option>";
?>
</select>&nbsp;
<label for="filter_veranstaltung_id"><?php echo Text::_('COM_SPORTSMANAGER_COMPETITION'); ?>:</label>
<select class="uk-form-width-small" name="filter_veranstaltung_id" id="filter_veranstaltung_id" size="1"
onChange="document.adminForm.submit();" style='width: 200px;'>
<?php
echo "<option value=\"0\" " . ($filter['veranstaltung'] == 0 ? "selected" : "") . ">Alle</option>";
foreach ($veranstaltungen as $veranstaltung)
echo "<option value=\"" . $veranstaltung->veranstaltung_id . "\" " . ($filter['veranstaltung'] == $veranstaltung->veranstaltung_id ? "selected" : "") . ">" . htmlentities_utf8($veranstaltung->bezeichnung) . "</option>";
?>
</select>&nbsp;
<label for="filter_verein_id"><?php echo Text::_('COM_SPORTSMANAGER_CLUB'); ?>:</label>
<select class="uk-form-width-small" name="filter_verein_id" id="filter_verein_id" size="1"
onChange="document.adminForm.submit();" style='width: 200px;'>
<?php
echo "<option value=\"0\" " . ($filter['verein'] == 0 ? "selected" : "") . ">Alle</option>";
foreach ($vereine as $verein)
echo "<option value=\"" . $verein->verein_id . "\" " . ($filter['verein'] == $verein->verein_id ? "selected" : "") . ">" . htmlentities_utf8($verein->vereinsname) . "</option>";
?>
</select>&nbsp;
<label for="filter_aussteller_id"><?php echo Text::_('COM_SPORTSMANAGER_ISSUER'); ?>:</label>
<select class="uk-form-width-small" name="filter_aussteller_id" id="filter_aussteller_id" size="1"
onChange="document.adminForm.submit();" style='width: 200px;'>
<?php
echo "<option value=\"0\" " . ($filter['aussteller'] == 0 ? "selected" : "") . ">Alle</option>";
foreach ($ausstellerliste as $aussteller)
echo "<option value=\"" . $aussteller->id . "\" " . ($filter['aussteller'] == $aussteller->id ? "selected" : "") . ">" . htmlentities_utf8($aussteller->name) . "</option>";
?>
</select>
</td>
</tr>
</table>
<input type="hidden" name="task" value="admin_ordnungsstrafen"/>
</form>
<?php
} ?>
<?php
if (count($rows) > 0) {
?>
<table class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>" style='width: 100%;'>
<tr class="sectiontableheader<?php echo $params->get('pageclass_sfx'); ?>">
<th nowrap><strong>ID</strong></th>
<th nowrap><strong>Match</strong></th>
<th style='text-align: left;' nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_TEAM'); ?></strong></th>
<th style='text-align: left;' nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_VIOLATION'); ?></strong></th>
<th style='text-align: center;' nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_ISSUER'); ?></strong></th>
<th style='text-align: center;' nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_FEE'); ?></strong></th>
<th style='text-align: center;' nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_DATE'); ?></strong></th>
<th style='text-align: center;' nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_status'); ?></strong></th>
<th></th>
</tr>
<?php
$k = 0;
foreach ($rows as $row) {
?>
<tr class="sectiontableentry<?php echo $k + 1;
$k = ($k + 1) % 2; ?><?php echo $params->get('pageclass_sfx'); ?>">
<td nowrap style='text-align: center;'>
<a href="<?php echo SportsManagerURL('&task=admin_ordnungsstrafe_edit&id=' . $row->ordnungsstrafen_id); ?>">
<?php echo $row->ordnungsstrafen_id; ?>
</a>
</td>
<td nowrap style='text-align: center;' title='<?php echo $row->begegnung; ?>'><?php echo $row->begegnung_id; ?></td>
<td nowrap><?php echo $row->teamname; ?></td>
<td><?php echo $row->verstoss; ?></td>
<td style='text-align: center;'><?php echo $row->name; ?></td>
<td nowrap style='text-align: center;'><?php echo $row->gebuehr; ?></td>
<td nowrap style='text-align: center;'><?php echo $row->ausstelldatum; ?></td>
<td nowrap style='text-align: center;'><?php echo $row->status; ?></td>
<td nowrap><small><a
href="<?php echo SportsManagerURL('&task=admin_ordnungsstrafe_remove&id=' . $row->ordnungsstrafen_id); ?>"
onclick="return confirm('<?php echo Text::_('COM_SPORTSMANAGER_REALLY_REMOVE_DISCIPLINARY_FINES'); ?>');"
title="<?php echo Text::_('COM_SPORTSMANAGER_REMOVE'); ?>">X</a></small>
</td>
<?php if (benutzerZugriff("benutzerVeranstalterModerator")){ ?>
<td nowrap><small><a
href="<?php echo SportsManagerURL('&task=admin_ordnungsstrafe_mailen&id=' . $row->ordnungsstrafen_id); ?>"
title="<?php echo Text::_('COM_SPORTSMANAGER_EMAIL_SEND'); ?>">M</a></small>
</td>
<?php } ?>
</tr>
<?php
}
?>
</table>
<?php
}
}
static function adminEditOrdnungsstrafe($row,$begegnung,$teams,$verstoesse,$aussteller): void
{
global $params;
$stati = ["ausgestellt", "versendet", "Rechnung erstellt"];
?>
<div
class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_DISCIPLINARY_FINE'); ?>
: <?php echo($row != null ? Text::_('COM_SPORTSMANAGER_CHANGING') : Text::_('COM_SPORTSMANAGER_ADD')); ?></div>
<form action="<?php echo SportsManagerURL(); ?>" method="post" name="adminForm" id="adminForm"
enctype="multipart/form-data">
<div class="uk-overflow-auto">
<table style="width: 100%">
<tr>
<td nowrap style="width: 60%; vertical-align: top">
<div class="uk-overflow-auto">
<table style="width: 100%">
<tr>
<td nowrap style="width: 20%; text-align: right">
<label
for="match"><?php echo Text::_('COM_SPORTSMANAGER_MATCH'); ?>
:</label>
</td>
<td nowrap>
<input class="uk-select uk-form-width-large" type="text" name="begegnung"
id="match" size="50" style='height: 34px;' readonly
value="<?php echo $begegnung->begegnung; ?>"/>
<input class="uk-select uk-form-width-small" type="text" name="begegnung_id" id="match_id"
style='height: 34px; display: none;' readonly
value="<?php echo $begegnung->begegnung_id; ?>"/>
</td>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label for="violation"><?php echo Text::_('COM_SPORTSMANAGER_VIOLATION'); ?>
:</label>
</td>
<td nowrap>
<select class="uk-select uk-form-width-large" name="verstoesse_id" id="violation"
size="1">
<option value="0"><?php echo Text::_('COM_SPORTSMANAGER_NO_SELECT'); ?></option>
<?php
foreach ($verstoesse as $verstoss) {
echo "<option value=\"" . $verstoss->verstoesse_id . "\"" . ($row != null ? ($row->verstoesse_id == $verstoss->verstoesse_id ? "selected" : "") : "") . ">" . htmlentities_utf8($verstoss->verstoss) . "</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label for="team"><?php echo Text::_('COM_SPORTSMANAGER_TEAM'); ?>
:</label>
</td>
<td nowrap>
<select class="uk-select uk-form-width-medium" name="team_id" id="team"
size="1" style='height: 34px; width: 300px;'>
<?php
echo "<option value=\"" . $begegnung->heim_team_id . "\"" . ($row != null ? ($row->team_id == $begegnung->heim_team_id ? "selected" : "") : "") . ">" . htmlentities_utf8($begegnung->heim_name) . "</option>";
echo "<option value=\"" . $begegnung->gast_team_id . "\"" . ($row != null ? ($row->team_id == $begegnung->gast_team_id ? "selected" : "") : "") . ">" . htmlentities_utf8($begegnung->gast_name) . "</option>";
?>
</select>
</td>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label
for="issuer"><?php echo Text::_('COM_SPORTSMANAGER_ISSUER'); ?>
:</label>
</td>
<td nowrap>
<input class="uk-select uk-form-width-medium" type="text" name="aussteller"
id="issuer" size="1" style='height: 34px; width: 300px;' readonly
value="<?php echo $aussteller->name; ?>"/>
<input class="uk-select uk-form-width-small" type="text" name="aussteller_id" id="issuer_id"
style='height: 34px; display: none;' size="1" readonly
value="<?php echo $aussteller->id; ?>"/>
</td>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label
for="issuedate"><?php echo Text::_('COM_SPORTSMANAGER_ISSUE_DATE'); ?>
:</label>
</td>
<td nowrap>
<input class="uk-select uk-form-width-medium" type="text" name="ausstelldatum" id="issuedate"
size="1" style='height: 34px; width: 300px;' title='Format YYYY-mm-dd' readonly
value="<?php echo (empty($row->ausstelldatum) ? date('Y-m-d') : $row->ausstelldatum); ?>"/>
</td>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label for="multiplier"><?php echo Text::_('COM_SPORTSMANAGER_MULTIPLIER'); ?>
:</label>
</td>
<td nowrap>
<select class="uk-select uk-form-width-xsmall" name="multiplikator" id="multiplier" size="1">
<?php
for ($i = 1; $i <= 4; $i++) {
echo "<option value=\"" . $i . "\"" . ($row != null ? ($row->multiplikator == $i ? " selected" : "") : "") . ">" . $i . "</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label
for="additional_information"><?php echo Text::_('COM_SPORTSMANAGER_ADDITIONAL_INFORMATION'); ?>
:</label>
</td>
<td nowrap>
<textarea name="weitere_angaben" id="additional_information" cols="100"
rows="8"><?php if ($row != null) echo htmlentities_utf8($row->weitere_angaben); ?></textarea>
</td>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label for="state"><?php echo Text::_('COM_SPORTSMANAGER_STATUS'); ?>
:</label>
</td>
<td nowrap>
<select class="uk-select uk-form-width-small" name="status" id="state"
size="1" style='height: 34px; width: 300px;'>
<?php
foreach ($stati as $status) {
echo "<option value=\"" . $status . "\"" . ($row != null ? ($row->status == $status ? "selected" : "") : "") . ">" . htmlentities_utf8($status) . "</option>";
}
?>
</select>
</td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</div>
<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'); ?>" class="button"/>
<input type="hidden" name="task" value="admin_ordnungsstrafe_save"/>
<input type="hidden" name="id" value="<?php echo($row != null ? $row->ordnungsstrafen_id : "0"); ?>"/>
</form>
<?php
}
static function adminRegelwerke($rows): void
{
global $params;
?>
<div
class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_RULEBOOKS'); ?>
: <?php echo Text::_('COM_SPORTSMANAGER_JOOMLA_MANAGEMENT'); ?></div>
<table style="border-spacing: 10px">
<tr>
<td nowrap><a
href="<?php echo SportsManagerURL('&task=admin_ordnungsstrafen'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_BACK'); ?></a>
</td>
</tr>
<tr>
<td nowrap><a
href="<?php echo SportsManagerURL('&task=admin_regelwerk_edit'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_ADD_RULEBOOK'); ?></a>
</td>
</tr>
</table>
<?php
if (count($rows) > 0) {
?>
<table style='width: 300px;' class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr class="sectiontableheader<?php echo $params->get('pageclass_sfx'); ?>">
<th style='text-align: left;' nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_RULEBOOK'); ?></strong></th>
</tr>
<?php
$k = 0;
foreach ($rows as $row) {
?>
<tr class="sectiontableentry<?php echo $k + 1;
$k = ($k + 1) % 2; ?><?php echo $params->get('pageclass_sfx'); ?>">
<td nowrap>
<a href="<?php echo SportsManagerURL('&task=admin_regelwerk_edit&id=' . $row->regelwerke_id); ?>">
<?php echo htmlentities_utf8(NichtLeererString($row->regelwerk)); ?>
</a>
</td>
<?php if ($row->veranstaltungen == 0 AND $row->verstoesse == 0) { ?>
<td nowrap><small><a
href="<?php echo SportsManagerURL('&task=admin_regelwerk_remove&id=' . $row->regelwerke_id); ?>"
onclick="return confirm('<?php echo Text::_('COM_SPORTSMANAGER_REALLY_REMOVE_RULEBOOK'); ?>');"
title="<?php echo Text::_('COM_SPORTSMANAGER_REMOVE'); ?>">X</a></small>
</td>
<?php } ?>
</tr>
<?php
}
?>
</table>
<?php
}
}
static function adminEditRegelwerk($row): void
{
global $params;
?>
<div
class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_RULEBOOK'); ?>
: <?php echo($row != null ? Text::_('COM_SPORTSMANAGER_CHANGING') : Text::_('COM_SPORTSMANAGER_ADD')); ?></div>
<form action="<?php echo SportsManagerURL(); ?>" method="post" name="adminForm" id="adminForm"
enctype="multipart/form-data">
<div class="uk-overflow-auto">
<table style="width: 100%">
<tr>
<td nowrap style="width: 60%; vertical-align: top">
<div class="uk-overflow-auto">
<table style="width: 100%">
<tr>
<td nowrap style="width: 20%; text-align: right">
<label
for="rulebook"><?php echo Text::_('COM_SPORTSMANAGER_RULEBOOK'); ?>
:</label>
</td>
<td nowrap>
<input class="inputbox" type="text" name="regelwerk"
id="rulebook" size="50"
maxlength="32"
value="<?php if ($row != null) echo htmlentities_utf8($row->regelwerk); ?>"/>
</td>
<tr>
<td nowrap colspan="2">&nbsp;
</td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</div>
<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'); ?>"
class="button"/>
<input type="hidden" name="task" value="admin_regelwerk_save"/>
<input type="hidden" name="id" value="<?php echo($row != null ? $row->regelwerke_id : "0"); ?>"/>
</form>
<?php
}
static function adminVerstoesse($rows,$regelwerke): void
{
global $params;
?>
<div
class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_VIOLATIONS'); ?>
: <?php echo Text::_('COM_SPORTSMANAGER_JOOMLA_MANAGEMENT'); ?></div>
<table style="border-spacing: 10px">
<tr>
<td nowrap><a
href="<?php echo SportsManagerURL('&task=admin_ordnungsstrafen'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_BACK'); ?></a>
</td>
</tr>
<tr>
<td nowrap><a
href="<?php echo SportsManagerURL('&task=admin_verstoss_edit'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_ADD_VIOLATION'); ?></a>
</td>
</tr>
</table>
<?php
if (count($rows) > 0) {
?>
<table style='width: 100%;' class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr class="sectiontableheader<?php echo $params->get('pageclass_sfx'); ?>">
<th style='text-align: left;' nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_RULEBOOK'); ?></strong></th>
<th style='text-align: center;' nowrap title='<?php echo Text::_('COM_SPORTSMANAGER_RULE_LONG'); ?>'><strong><?php echo Text::_('COM_SPORTSMANAGER_RULE_SHORT'); ?></strong></th>
<th style='text-align: center;' nowrap title='<?php echo Text::_('COM_SPORTSMANAGER_FEE_LONG'); ?>'><strong><?php echo Text::_('COM_SPORTSMANAGER_FEE_SHORT'); ?></strong></th>
<th style='text-align: left;' nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_VIOLATION'); ?></strong></th>
</tr>
<?php
$k = 0;
foreach ($rows as $row) {
?>
<tr class="sectiontableentry<?php echo $k + 1;
$k = ($k + 1) % 2; ?><?php echo $params->get('pageclass_sfx'); ?>">
<td nowrap><?php echo $regelwerke[$row->regelwerke_id]; ?></td>
<td style='text-align: center;' nowrap><?php echo $row->paragraph_spo; ?></td>
<td style='text-align: center;' nowrap><?php echo $row->paragraph_go; ?></td>
<td nowrap>
<a href="<?php echo SportsManagerURL('&task=admin_verstoss_edit&id=' . $row->verstoesse_id); ?>">
<?php echo htmlentities_utf8(NichtLeererString($row->verstoss)); ?>
</a>
</td>
<?php if ($row->ordnungsstrafen == 0) { ?>
<td nowrap><small><a
href="<?php echo SportsManagerURL('&task=admin_verstoss_remove&id=' . $row->verstoesse_id); ?>"
onclick="return confirm('<?php echo Text::_('COM_SPORTSMANAGER_REALLY_REMOVE_VIOLATION'); ?>');"
title="<?php echo Text::_('COM_SPORTSMANAGER_REMOVE'); ?>">X</a></small>
</td>
<?php } ?>
</tr>
<?php
}
?>
</table>
<?php
}
}
static function adminEditVerstoss($row,$regelwerke): void
{
global $params;
?>
<div
class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_VIOLATION'); ?>
: <?php echo($row != null ? Text::_('COM_SPORTSMANAGER_CHANGING') : Text::_('COM_SPORTSMANAGER_ADD')); ?></div>
<form action="<?php echo SportsManagerURL(); ?>" method="post" name="adminForm" id="adminForm"
enctype="multipart/form-data">
<div class="uk-overflow-auto">
<table style="width: 100%">
<tr>
<td nowrap style="width: 60%; vertical-align: top">
<div class="uk-overflow-auto">
<table style="width: 100%">
</tr>
<td nowrap style="width: 20%; text-align: right">
<label for="rulebook"><?php echo Text::_('COM_SPORTSMANAGER_RULEBOOK'); ?>
:</label>
</td>
<td nowrap>
<select class="uk-select uk-form-width-medium" name="regelwerke_id" id="rulebook"
size="1">
<option value="0"><?php echo Text::_('COM_SPORTSMANAGER_NO_SELECT'); ?></option>
<?php
foreach ($regelwerke as $regelwerk) {
echo "<option value=\"" . $regelwerk->regelwerke_id . "\"" . ($row != null ? ($row->regelwerke_id == $regelwerk->regelwerke_id ? "selected" : "") : "") . ">" . htmlentities_utf8($regelwerk->regelwerk) . "</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label
for="rule"><?php echo Text::_('COM_SPORTSMANAGER_RULE_LONG'); ?>
:</label>
</td>
<td nowrap>
<input class="uk-select uk-form-width-medium" type="text" name="paragraph_spo"
id="rule" size="50" maxlength="32"
style='width: 200px; height: 34px;'
value="<?php if ($row != null) echo htmlentities_utf8($row->paragraph_spo); ?>"/>
</td>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label
for="fee_long"><?php echo Text::_('COM_SPORTSMANAGER_FEE_LONG'); ?>
:</label>
</td>
<td nowrap>
<input class="uk-select uk-form-width-medium" type="text" name="paragraph_go"
id="fee_long" size="50" maxlength="32"
style='width: 200px; height: 34px;'
value="<?php if ($row != null) echo htmlentities_utf8($row->paragraph_go); ?>"/>
</td>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label
for="violation"><?php echo Text::_('COM_SPORTSMANAGER_VIOLATION'); ?>
:</label>
</td>
<td nowrap>
<input class="uk-select uk-form-width-medium" type="text" name="verstoss"
id="violation" size="50" maxlength="64"
style='width: 600px; height: 34px;'
value="<?php if ($row != null) echo htmlentities_utf8($row->verstoss); ?>"/>
</td>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label
for="text1"><?php echo Text::_('COM_SPORTSMANAGER_VIOLATION_TEXT'); ?>
:</label>
</td>
<td nowrap>
<textarea name="haupttext" id="text1" cols="80"
rows="6"><?php if ($row != null) echo htmlentities_utf8($row->haupttext); ?></textarea>
</td>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label
for="text2"><?php echo Text::_('COM_SPORTSMANAGER_VIOLATION_ADD_TEXT'); ?>
:</label>
</td>
<td nowrap>
<textarea name="zusatztext" id="text2" cols="80"
rows="6"><?php if ($row != null) echo htmlentities_utf8($row->zusatztext); ?></textarea>
</td>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label for="fee"><?php echo Text::_('COM_SPORTSMANAGER_FEE'); ?>
:</label>
</td>
<td nowrap>
<select class="uk-select uk-form-width-small" name="gebuehr" id="fee" size="1">
<?php
for ($i = 0; $i <= 200; $i++) {
echo "<option value=\"" . $i . "\"" . ($row != null ? ($row->gebuehr == $i ? " selected" : "") : "") . ">" . $i . "</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label for="add_fee"><?php echo Text::_('COM_SPORTSMANAGER_ADD_FEE'); ?>
:</label>
</td>
<td nowrap>
<select class="uk-select uk-form-width-small" name="zusatzgebuehr" id="add_fee" size="1">
<?php
for ($i = 0; $i <= 200; $i++) {
echo "<option value=\"" . $i . "\"" . ($row != null ? ($row->zusatzgebuehr == $i ? " selected" : "") : "") . ">" . $i . "</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label for="for_select"><?php echo Text::_('COM_SPORTSMANAGER_SELECTABLE'); ?>
:</label>
</td>
<td nowrap>
<select class="uk-select uk-form-width-small" name="zur_auswahl" id="for_select" size="1">
<?php
$zur_auswahl = array(Text::_('COM_SPORTSMANAGER_NO'), Text::_('COM_SPORTSMANAGER_YES'));
for ($i = 1; $i >= 0; $i--) {
echo "<option value=\"" . $i . "\"" . ($row != null ? ($row->zur_auswahl == $i ? " selected" : "") : "") . ">" . htmlentities_utf8($zur_auswahl[$i]) . "</option>";
}
?>
</select>
</td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</div>
<br>
<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'); ?>"
class="button"/>
<input type="hidden" name="task" value="admin_verstoss_save"/>
<input type="hidden" name="id" value="<?php echo($row != null ? $row->verstoesse_id : "0"); ?>"/>
</form>
<?php
}
static function adminEditEmailVorlage($vorlage,$row,$vars): void
{
global $params;
?>
<div
class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_TEMPLATE'); ?></div>
<form action="<?php echo SportsManagerURL(); ?>" method="post" name="adminForm" id="adminForm">
<div class="uk-overflow-auto">
<table style="width: 1000px">
<tr>
<td nowrap style="width: 120px; text-align: right;">
<label
for="template"><?php echo Text::_('COM_SPORTSMANAGER_TEMPLATE'); ?>
:</label>
</td>
<td nowrap>
<input class="uk-select uk-form-width-medium" type="text" name="vorlage"
id="template" size="50" maxlength="64" readonly
style='width: 200px; height: 34px;'
value="<?php echo $vorlage; ?>"/>
</td>
</tr>
<tr>
<td nowrap style="text-align: right">
<label
for="subject"><?php echo Text::_('COM_SPORTSMANAGER_EMAIL_SUBJECT'); ?>
:</label>
</td>
<td nowrap>
<input class="uk-select uk-form-width-medium" type="text" name="betreff"
id="subject" size="50" maxlength="256"
style='width: 600px; height: 34px;'
value="<?php echo $row->betreff; ?>"/>
</td>
</tr>
<tr>
<td nowrap style="text-align: right">
<label
for="email_cc">cc
:</label>
</td>
<td nowrap>
<input class="uk-select uk-form-width-medium" type="text" name="cc"
id="email_cc" size="50" maxlength="256"
style='width: 600px; height: 34px;'
value="<?php echo $row->cc; ?>"/>
</td>
</tr>
<tr>
<td nowrap style="text-align: right">
<label
for="email_bcc">bcc
:</label>
</td>
<td nowrap>
<input class="uk-select uk-form-width-medium" type="text" name="bcc"
id="email_bcc" size="50" maxlength="256"
style='width: 600px; height: 34px;'
value="<?php echo $row->bcc; ?>"/>
</td>
</tr>
<tr>
<td nowrap style="text-align: right">
<label
for="text_template"><?php echo Text::_('COM_SPORTSMANAGER_EMAIL_TEXT_TEMPLATE'); ?>
:</label>
</td>
<td>
<textarea name="email_text" id="text_template" cols="100"
rows="40"><?php if ($row != null) echo htmlentities_utf8($row->email_text); ?></textarea>
<?php echo "<br>M&ouml;gliche Variablen:<br>" . $vars; ?>
</td>
</tr>
</table>
</div>
<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'); ?>" class="button"/>
<input type="hidden" name="task" value="admin_email_vorlage_save"/>
</form>
<?php
}
static function adminVeranstalter($rows): void static function adminVeranstalter($rows): void
{ {
global $params; global $params;
@@ -7121,7 +7936,7 @@ class HTML_sportsmanager_admin
<?php <?php
} }
static function adminEditVeranstaltung($row, $veranstalter, $spielmodus, $verschieberegeln, $kategorien, $saisons, $users, $berechtigt_fuer_veranstaltung, $vorlage): void static function adminEditVeranstaltung($row, $veranstalter, $regelwerke, $spielmodus, $verschieberegeln, $kategorien, $saisons, $users, $berechtigt_fuer_veranstaltung, $vorlage): void
{ {
global $params; global $params;
?> ?>
@@ -7299,6 +8114,28 @@ class HTML_sportsmanager_admin
?> ?>
</select> </select>
</td> </td>
</tr>
<?php
if (!einstellungswert("ordnungsstrafen_verwenden"))
echo "<tr style='display: none;'>";
else
echo "<tr>";
?>
<td nowrap style="width: 20%; text-align: right">
<label for="rulebook"><?php echo Text::_('COM_SPORTSMANAGER_RULEBOOK'); ?>
:</label>
</td>
<td nowrap>
<select class="uk-select uk-form-width-medium" name="regelwerke_id" id="rulebook"
size="1">
<option value="0"><?php echo Text::_('COM_SPORTSMANAGER_NO_SELECT'); ?></option>
<?php
foreach ($regelwerke as $regelwerk) {
echo "<option value=\"" . $regelwerk->regelwerke_id . "\"" . ($row != null ? ($row->regelwerke_id == $regelwerk->regelwerke_id ? "selected" : "") : "") . ">" . htmlentities_utf8($regelwerk->regelwerk) . "</option>";
}
?>
</select>
</td>
</tr> </tr>
<tr> <tr>
<td nowrap style="width: 20%; text-align: right"> <td nowrap style="width: 20%; text-align: right">
@@ -8983,6 +9820,11 @@ class HTML_sportsmanager_admin
href="<?php echo SportsManagerURL('&task=admin_begegnung_remove&veranstaltungid=' . $veranstaltung->veranstaltung_id . '&id=' . $row->begegnung_id); ?>" href="<?php echo SportsManagerURL('&task=admin_begegnung_remove&veranstaltungid=' . $veranstaltung->veranstaltung_id . '&id=' . $row->begegnung_id); ?>"
onclick="return confirm('<?php echo Text::_('COM_SPORTSMANAGER_REMOVE_AN_ENCOUNTER'); ?>');" onclick="return confirm('<?php echo Text::_('COM_SPORTSMANAGER_REMOVE_AN_ENCOUNTER'); ?>');"
title="<?php echo Text::_('COM_SPORTSMANAGER_REMOVE'); ?>">X</a></small></td> title="<?php echo Text::_('COM_SPORTSMANAGER_REMOVE'); ?>">X</a></small></td>
<?php if (einstellungswert("ordnungsstrafen_verwenden")){ ?>
<td nowrap><small><a
href="<?php echo SportsManagerURL('&task=admin_ordnungsstrafe_edit&begegnungid=' . $row->begegnung_id); ?>"
title="<?php echo Text::_('COM_SPORTSMANAGER_ISSUE_DISCIPLINARY_FINES'); ?>">O</a></small></td>
<?php } ?>
</tr> </tr>
<?php <?php
} }
@@ -321,6 +321,7 @@ COM_SPORTSMANAGER_VIEW_LEAST_MEMBER_COUNT="Mindest Mitgliederzahl zeigen (Verein
COM_SPORTSMANAGER_SHOW_ORGANISATION="Spalte Verband zeigen (Vereine)" COM_SPORTSMANAGER_SHOW_ORGANISATION="Spalte Verband zeigen (Vereine)"
COM_SPORTSMANAGER_SHOW_MEMBER_COUNT="Spalte Mitglieder 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_USE_DISCIPLINARY_FINE="Ordnungsstrafen verwenden"
COM_SPORTSMANAGER_PLAYER_DETAILS="Spielerdetails" COM_SPORTSMANAGER_PLAYER_DETAILS="Spielerdetails"
COM_SPORTSMANAGER_PLAYER_LIST_DETAILS="Spielerliste/-details" COM_SPORTSMANAGER_PLAYER_LIST_DETAILS="Spielerliste/-details"
COM_SPORTSMANAGER_PLAYER_EDIT="Spielerdaten durch Organisations-/Vereinsansprechpartner bearbeiten" COM_SPORTSMANAGER_PLAYER_EDIT="Spielerdaten durch Organisations-/Vereinsansprechpartner bearbeiten"
@@ -1018,3 +1019,36 @@ 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" COM_SPORTSMANAGER_USE_EMAIL_REMINDERS="Verwende Email Erinnerungen"
COM_SPORTSMANAGER_RULEBOOKS="Regelwerke"
COM_SPORTSMANAGER_RULEBOOK="Regelwerk"
COM_SPORTSMANAGER_RULE_SHORT="SPO"
COM_SPORTSMANAGER_FEE_SHORT="GO"
COM_SPORTSMANAGER_RULE_LONG="Paragraph SPO"
COM_SPORTSMANAGER_FEE_LONG="Paragraph GO"
COM_SPORTSMANAGER_SELECT="Auswahl"
COM_SPORTSMANAGER_NO_SELECT="keine Auswahl"
COM_SPORTSMANAGER_REALLY_REMOVE_RULEBOOK="Willst Du dieses Regelwerk wirklich entfernen?"
COM_SPORTSMANAGER_ADD_RULEBOOK="Regelwerk hinzuf&uuml;gen"
COM_SPORTSMANAGER_DISCIPLINARY_FINES="Ordnungsstrafen"
COM_SPORTSMANAGER_DISCIPLINARY_FINE="Ordnungsstrafe"
COM_SPORTSMANAGER_ISSUE_DISCIPLINARY_FINES="Ordnungsstrafe ausstellen"
COM_SPORTSMANAGER_REALLY_REMOVE_DISCIPLINARY_FINES="Willst Du diese Ordnungsstrafe wirklich entfernen?"
COM_SPORTSMANAGER_VIOLATIONS="Verst&ouml;&szlig;e"
COM_SPORTSMANAGER_VIOLATION="Versto&szlig;"
COM_SPORTSMANAGER_ADD_VIOLATION="Versto&szlig; hinzuf&uuml;gen"
COM_SPORTSMANAGER_REALLY_REMOVE_VIOLATION="Willst Du diesen Versto&szlig; wirklich entfernen?"
COM_SPORTSMANAGER_VIOLATION_TEXT="Text"
COM_SPORTSMANAGER_VIOLATION_ADD_TEXT="Zusatztext"
COM_SPORTSMANAGER_FEE="Geb&uuml;hr"
COM_SPORTSMANAGER_ADD_FEE="Zusatzgeb&uuml;hr"
COM_SPORTSMANAGER_SELECTABLE="Ausw&auml;hlbar"
COM_SPORTSMANAGER_TEMPLATE="Vorlage"
COM_SPORTSMANAGER_EMAIL_SUBJECT="Betreff"
COM_SPORTSMANAGER_EMAIL_MESSAGE="Nachricht"
COM_SPORTSMANAGER_EMAIL_TO="An"
COM_SPORTSMANAGER_EMAIL_SEND="E-Mail senden"
COM_SPORTSMANAGER_EMAIL_TEXT_TEMPLATE="Textvorlage"
COM_SPORTSMANAGER_ISSUER="Aussteller"
COM_SPORTSMANAGER_ISSUE_DATE="Ausstelldatum"
COM_SPORTSMANAGER_MULTIPLIER="Multiplikator"
COM_SPORTSMANAGER_ADDITIONAL_INFORMATION="Weitere Angaben"
@@ -321,6 +321,7 @@ COM_SPORTSMANAGER_VIEW_LEAST_MEMBER_COUNT="Show least member count (teams)"
COM_SPORTSMANAGER_SHOW_ORGANISATION="Show organisation (teams)" COM_SPORTSMANAGER_SHOW_ORGANISATION="Show organisation (teams)"
COM_SPORTSMANAGER_SHOW_MEMBER_COUNT="Show member column (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_USE_DISCIPLINARY_FINE="Use disciplinary fine"
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"
COM_SPORTSMANAGER_PLAYER_EDIT="Edit player data by organisation/club contacts" COM_SPORTSMANAGER_PLAYER_EDIT="Edit player data by organisation/club contacts"
@@ -949,8 +950,10 @@ COM_SPORTSMANAGER_NON_SMOKING_PROTECTION_MARK_NO=" (Kein Nichtraucherschutz)"
COM_SPORTSMANAGER_POINTS_TABLE="Points table" COM_SPORTSMANAGER_POINTS_TABLE="Points table"
COM_SPORTSMANAGER_EVALUATION="Auswertung" COM_SPORTSMANAGER_EVALUATION="Auswertung"
COM_SPORTSMANAGER_FUNCTION_DESCRIPTION="Variables: n = number of participants, p = place, m = multiplier of rating and in doubles possibly additionally reduced rating<br />Functions: +, -, *, /, round(x), pow(x), if(a > b, x, y), min(x, y), max(x, y), log(x), ln(x), logn(b, x)<br />VerteilungR(r, p, n, m) := max(round((((m * r - 1) * (-log(p / n) * (1 - (p / n)))) / (-log(1 / n) * (1 - (1 / n)))) + 1), 1)<br />Verteilung(r, p, n, m) := max(round(m * round((((r - 1) * (-log(p / n) * (1 - (p / n)))) / (-log(1 / n) * (1 - (1 / n)))) + 1)), 1)<br /><br />The functions VerteilungR() and Verteilung() distribute points for place 1 (r) descending to the individual places (p) of the number of participants (n).<br />VerteilungR() applies the multiplier (m) to the points for 1st place and then distributes down to 1 point for the last place.<br />Verteilung() applies the multiplier (m) to the points after the calculation, i.e. the last place receives 1 * m points." COM_SPORTSMANAGER_FUNCTION_DESCRIPTION="Variables: n = number of participants, p = place, m = multiplier of rating and in doubles possibly additionally reduced rating<br />Functions: +, -, *, /, round(x), pow(x), if(a > b, x, y), min(x, y), max(x, y), log(x), ln(x), logn(b, x)<br />VerteilungR(r, p, n, m) := max(round((((m * r - 1) * (-log(p / n) * (1 - (p / n)))) / (-log(1 / n) * (1 - (1 / n)))) + 1), 1)<br />Verteilung(r, p, n, m) := max(round(m * round((((r - 1) * (-log(p / n) * (1 - (p / n)))) / (-log(1 / n) * (1 - (1 / n)))) + 1)), 1)<br /><br />The functions VerteilungR() and Verteilung() distribute points for place 1 (r) descending to the individual places (p) of the number of participants (n).<br />VerteilungR() applies the multiplier (m) to the points for 1st place and then distributes down to 1 point for the last place.<br />Verteilung() applies the multiplier (m) to the points after the calculation, i.e. the last place receives 1 * m points."
COM_SPORTSMANAGER_LIZENZ="License" COM_SPORTSMANAGER_RANK="Rank"
; Edit Player
COM_SPORTSMANAGER_LIZENZ="License"
COM_SPORTSMANAGER_ARIA_LABEL_MATCHDAY_SELECT="Choose a match day" COM_SPORTSMANAGER_ARIA_LABEL_MATCHDAY_SELECT="Choose a match day"
COM_SPORTSMANAGER_ARIA_LABEL_PROPOSAL_DAY="Choose the day of the match proposal" COM_SPORTSMANAGER_ARIA_LABEL_PROPOSAL_DAY="Choose the day of the match proposal"
COM_SPORTSMANAGER_ARIA_LABEL_PROPOSAL_MONTH="Choose the month of the match proposal" COM_SPORTSMANAGER_ARIA_LABEL_PROPOSAL_MONTH="Choose the month of the match proposal"
@@ -1016,3 +1019,36 @@ 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" COM_SPORTSMANAGER_USE_EMAIL_REMINDERS="Use email reminders"
COM_SPORTSMANAGER_RULEBOOKS="Rulebooks"
COM_SPORTSMANAGER_RULEBOOK="Rulebook"
COM_SPORTSMANAGER_RULE_SHORT="Rule"
COM_SPORTSMANAGER_FEE_SHORT="Section fees"
COM_SPORTSMANAGER_RULE_LONG="Section rules"
COM_SPORTSMANAGER_FEE_LONG="Fee"
COM_SPORTSMANAGER_SELECT="Select"
COM_SPORTSMANAGER_NO_SELECT="No selection"
COM_SPORTSMANAGER_REALLY_REMOVE_RULEBOOK="Do you really want to remove this rulebook?"
COM_SPORTSMANAGER_ADD_RULEBOOK="Add rulebook"
COM_SPORTSMANAGER_DISCIPLINARY_FINES="Disciplinary fines"
COM_SPORTSMANAGER_ISSUE_DISCIPLINARY_FINES="Issue disciplinary fines"
COM_SPORTSMANAGER_ISSUE_DISCIPLINARY_FINE="Issue disciplinary fine"
COM_SPORTSMANAGER_REALLY_REMOVE_DISCIPLINARY_FINES="Do you really want to remove this Issue disciplinary fine?"
COM_SPORTSMANAGER_VIOLATIONS="Violations"
COM_SPORTSMANAGER_VIOLATION="Violation"
COM_SPORTSMANAGER_ADD_VIOLATION="Add violation"
COM_SPORTSMANAGER_REALLY_REMOVE_VIOLATION="Do you really want to remove this violation?"
COM_SPORTSMANAGER_VIOLATION_TEXT="Text"
COM_SPORTSMANAGER_VIOLATION_ADD_TEXT="Additional text"
COM_SPORTSMANAGER_FEE="Fee"
COM_SPORTSMANAGER_ADD_FEE="Additional Fee"
COM_SPORTSMANAGER_SELECTABLE="Selectable"
COM_SPORTSMANAGER_TEMPLATE="Template"
COM_SPORTSMANAGER_EMAIL_SUBJECT="Subject"
COM_SPORTSMANAGER_EMAIL_MESSAGE="Message"
COM_SPORTSMANAGER_EMAIL_TO="to"
COM_SPORTSMANAGER_EMAIL_SEND="Send E-Mail"
COM_SPORTSMANAGER_EMAIL_TEXT_TEMPLATE="Text template"
COM_SPORTSMANAGER_ISSUER="Issuer"
COM_SPORTSMANAGER_ISSUE_DATE="Issue date"
COM_SPORTSMANAGER_MULTIPLIER="Multiplier"
COM_SPORTSMANAGER_ADDITIONAL_INFORMATION="Additional information"
+86 -2
View File
@@ -1035,6 +1035,7 @@ return new class () implements InstallerScriptInterface
. "\n `saison_id` int(11) NOT NULL DEFAULT '0'," . "\n `saison_id` int(11) NOT NULL DEFAULT '0',"
. "\n `veranstalter_id` int(11) NOT NULL DEFAULT '0'," . "\n `veranstalter_id` int(11) NOT NULL DEFAULT '0',"
. "\n `bezeichnung` varchar(50) DEFAULT NULL," . "\n `bezeichnung` varchar(50) DEFAULT NULL,"
. "\n `regelwerke_id` INT(11) NOT NULL DEFAULT '0',"
. "\n `modus_id` int(11) NOT NULL DEFAULT '0'," . "\n `modus_id` int(11) NOT NULL DEFAULT '0',"
. "\n `verschieberegel_id` int(11) NOT NULL DEFAULT '0'," . "\n `verschieberegel_id` int(11) NOT NULL DEFAULT '0',"
. "\n `tabellenwertung` tinyint(4) NOT NULL DEFAULT '0'," . "\n `tabellenwertung` tinyint(4) NOT NULL DEFAULT '0',"
@@ -1118,7 +1119,66 @@ 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 = '108';"; $query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_regelwerke` ("
. "\n `regelwerke_id` int(11) NOT NULL AUTO_INCREMENT,"
. "\n `regelwerk` varchar(32) NOT NULL,"
. "\n PRIMARY KEY (`regelwerke_id`),"
. "\n UNIQUE KEY `regelwerk` (`regelwerk`)"
. "\n ) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_verstoesse` ("
. "\n `verstoesse_id` int(11) NOT NULL AUTO_INCREMENT,"
. "\n `regelwerke_id` int(11) NOT NULL DEFAULT 0,"
. "\n `paragraph_spo` varchar(32) NOT NULL DEFAULT '',"
. "\n `paragraph_go` varchar(32) NOT NULL DEFAULT '',"
. "\n `verstoss` varchar(64) NOT NULL DEFAULT '',"
. "\n `haupttext` text NOT NULL DEFAULT '',"
. "\n `zusatztext` text NOT NULL DEFAULT '',"
. "\n `gebuehr` smallint(3) NOT NULL DEFAULT 0,"
. "\n `zusatzgebuehr` smallint(2) NOT NULL DEFAULT 0,"
. "\n `zur_auswahl` tinyint(1) NOT NULL DEFAULT 1,"
. "\n PRIMARY KEY (`verstoesse_id`)"
. "\n ) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_ordnungsstrafen` ("
. "\n `ordnungsstrafen_id` int(11) NOT NULL AUTO_INCREMENT,"
. "\n `verstoesse_id` int(11) NOT NULL DEFAULT 0,"
. "\n `begegnung_id` int(11) NOT NULL DEFAULT 0,"
. "\n `team_id` int(11) NOT NULL DEFAULT 0,"
. "\n `aussteller_id` int(11) NOT NULL DEFAULT 0,"
. "\n `ausstelldatum` date NOT NULL DEFAULT current_timestamp(),"
. "\n `multiplikator` tinyint(1) NOT NULL DEFAULT 1,"
. "\n `weitere_angaben` text NOT NULL DEFAULT '',"
. "\n `status` varchar(16) NOT NULL DEFAULT '',"
. "\n PRIMARY KEY (`ordnungsstrafen_id`)"
. "\n ) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_email_vorlagen` ("
. "\n `email_vorlagen_id` int(11) NOT NULL AUTO_INCREMENT,"
. "\n `vorlage` varchar(64) NOT NULL,"
. "\n `betreff` varchar(256) NOT NULL DEFAULT '',"
. "\n `von` varchar(64) NOT NULL DEFAULT '',"
. "\n `an` varchar(256) NOT NULL DEFAULT '',"
. "\n `cc` varchar(256) NOT NULL DEFAULT '',"
. "\n `bcc` varchar(256) NOT NULL DEFAULT '',"
. "\n `email_text` text NOT NULL DEFAULT '',"
. "\n PRIMARY KEY (`email_vorlagen_id`),"
. "\n UNIQUE KEY `vorlage` (`vorlage`)"
. "\n ) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'verbands_kuerzel', wert = 'tbe.';";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'datenbank_version', wert = '114';";
$db->setQuery( $query ); $db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); } if (!$db->execute()) { die($db->stderr(true)); }
@@ -1149,7 +1209,11 @@ return new class () implements InstallerScriptInterface
$query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'turnierbaum_zeigen', wert = '0';"; $query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'turnierbaum_zeigen', wert = '0';";
$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 = 'ordnungsstrafen_verwenden', wert = '0';";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'spalte_mitglieder_zeigen', wert = '1';"; $query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'spalte_mitglieder_zeigen', wert = '1';";
$db->setQuery( $query ); $db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); } if (!$db->execute()) { die($db->stderr(true)); }
@@ -1162,6 +1226,10 @@ return new class () implements InstallerScriptInterface
. "\n VALUES ('Beliebig', '0', '0', '0', '1', '3', '0');"; . "\n VALUES ('Beliebig', '0', '0', '0', '1', '3', '0');";
$db->setQuery($query); $db->setQuery($query);
if (!$db->execute()) { die($db->stderr(true)); } if (!$db->execute()) { die($db->stderr(true)); }
$query = "INSERT IGNORE INTO `#__sportsmanager_email_vorlagen` (`email_vorlagen_id`, `vorlage`) VALUES (NULL, 'Ordnungsstrafe');";
$db->setQuery($query);
if (!$db->execute()) { die($db->stderr(true)); }
$query = "INSERT #__sportsmanager_rangliste_system" $query = "INSERT #__sportsmanager_rangliste_system"
. "\n SET systembezeichnung = 'Klostermann/Wahle (1 Punkt für letzten Platz)'," . "\n SET systembezeichnung = 'Klostermann/Wahle (1 Punkt für letzten Platz)',"
@@ -1650,5 +1718,21 @@ return new class () implements InstallerScriptInterface
$query = "DROP TABLE IF EXISTS `#__sportsmanager_verteiler`;"; $query = "DROP TABLE IF EXISTS `#__sportsmanager_verteiler`;";
$db->setQuery( $query ); $db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); } if (!$db->execute()) { die($db->stderr(true)); }
$query = "DROP TABLE IF EXISTS `#__sportsmanager_regelwerke`;";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "DROP TABLE IF EXISTS `#__sportsmanager_verstoesse`;";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "DROP TABLE IF EXISTS `#__sportsmanager_ordnungsstrafen`;";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "DROP TABLE IF EXISTS `#__sportsmanager_email_vorlagen`;";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
} }
}; };