Merge pull request #232 from Deutscher-Tischfussballbund/sportsmanager-issue069

implemented disciplinary penalties for clubs
This commit is contained in:
MarvinF
2025-12-23 13:25:33 +01:00
committed by GitHub
7 changed files with 1983 additions and 26 deletions
@@ -61,6 +61,55 @@ 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 = []): string
{
// 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 = $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 = $m[5] ?? '';
if (!empty($vars[$var])) {
return $ifText;
} else {
return $elseText;
}
},
$template
);
// 3. Einzelne Variablen ersetzen (muss immer am Ende bleiben!!!)
return preg_replace_callback(
'/\{([A-Z0-9_]+)\}/i',
function($m) use ($vars) {
$var = $m[1];
return $vars[$var] ?? "";
},
$template
);
}
function adminUebersicht(): void function adminUebersicht(): void
{ {
$db = getDatabase(); $db = getDatabase();
@@ -684,6 +733,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 +813,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'";
@@ -6083,6 +6141,742 @@ 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.ordnungsstrafen_id,"
. "\n t7.bezeichnung as veranstaltung, CONCAT(t3.spieltag, '. Spieltag') as spieltag, t7.saison_id,"
. "\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 nachname, vorname, email"
. "\n FROM #__sportsmanager_vereinsansprechpartner"
. "\n WHERE verein_id = '" . $rows[0]->verein_id . "'"
. "\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;
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);
$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();
$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')));
$cc = $db->escape(trim($jInput->get('cc', '', 'RAW')));
$bcc = $db->escape(trim($jInput->get('bcc', '', 'RAW')));
$subject = $db->escape(trim($jInput->get('betreff', '', 'RAW')));
$body = nl2br(trim($jInput->get('nachricht', '', 'RAW')));
$user_id = isExternalDatabase() ? 0 : (isJson() ? getUserID() : $app->getIdentity()->id);
$query = "SELECT name, email FROM #__users WHERE id = '$user_id';";
$absender = loadObjectList($db, $query);
// Joomla From-Adresse aus Konfiguration
$fromName = $absender[0]->name;
$fromEmail = $app->getCfg('mailfrom');
// Mailer erstellen über FactoryInterface
$mailer = Factory::getContainer()
->get(MailerFactoryInterface::class)
->createMailer();
// From setzen
$mailer->setSender([$fromEmail, $fromName]);
// Hauptempfänger
$toAddresses = array_map('trim', explode(';', $to));
foreach ($toAddresses as $recipient) {
if (!empty($recipient)) {
$mailer->addRecipient($recipient);
}
}
// CC-Empfänger
$ccAddresses = array_map('trim', explode(';', $cc));
foreach ($ccAddresses as $recipient) {
if (!empty($recipient)) {
$mailer->addCc($recipient);
}
}
// BCC-Empfänger
$bccAddresses = array_map('trim', explode(';', $bcc));
foreach ($bccAddresses as $recipient) {
if (!empty($recipient)) {
$mailer->addBcc($recipient);
}
}
//Checkmail für Absender
$mailer->addBcc($absender[0]->email);
// Betreff und Body
$mailer->setSubject($subject);
$mailer->setBody($body);
$mailer->isHtml(true);
// Senden
$result = $mailer->send();
//return ($result === true) ? true : 'Fehler beim Versand: ' . $result->__toString();
if ($result === true)
redirectSportsManagerURL('&task=' . $back, Text::_('COM_SPORTSMANAGER_EMAIL_WAS_SEND'));
else
redirectSportsManagerURL('&task=' . $back, Text::_('COM_SPORTSMANAGER_EMAIL_WAS_NOT_SEND'));
}
function adminOrdnungsstrafen(): void
{
$db = getDatabase();
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
if (!benutzerZugriff("mannschaftswettbewerb_aendern"))
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,"
. "\n CONCAT(t5.teamname, ' - ', t6.teamname, ' (', t7.bezeichnung, ')') AS begegnung,"
. "\n (t1.multiplikator * t2.gebuehr + t2.zusatzgebuehr) AS gebuehr,"
. "\n if (t1.rechnungsdatum IS NOT NULL, 'Rechnung erstellt', if (t1.versendedatum IS NOT NULL, 'Versendet', 'ausgestellt')) AS status"
. "\n FROM #__sportsmanager_ordnungsstrafen AS t1"
. "\n LEFT JOIN #__sportsmanager_verstoesse AS t2 ON t1.verstoesse_id = t2.verstoesse_id"
. "\n LEFT JOIN #__sportsmanager_begegnung AS t3 ON t1.begegnung_id = t3.begegnung_id"
. "\n LEFT JOIN #__sportsmanager_team AS t4 ON t1.team_id = t4.team_id"
. "\n LEFT JOIN #__sportsmanager_verein AS t9 ON t4.verein_id = t9.verein_id"
. "\n LEFT JOIN #__sportsmanager_team AS t5 ON t3.heim_team_id = t5.team_id"
. "\n LEFT JOIN #__sportsmanager_team AS t6 ON t3.gast_team_id = t6.team_id"
. "\n LEFT JOIN #__sportsmanager_veranstaltung AS t7 ON t4.veranstaltung_id = t7.veranstaltung_id"
. "\n LEFT JOIN #__users AS t8 ON t1.aussteller_id = t8.id"
. "\n WHERE t7.saison_id = '" . $filter['saison'] . "'";
if (!empty($filter['verein']))
$query .= "\n AND t9.verein_id = '" . $filter['verein'] . "'";
if (!empty($filter['veranstaltung']))
$query .= "\n AND t7.veranstaltung_id = '" . $filter['veranstaltung'] . "'";
if (!empty($filter['aussteller']))
$query .= "\n AND t8.id = '" . $filter['aussteller'] . "'";
$query .= "\n ORDER BY ordnungsstrafen_id";
$rows = loadObjectList($db, $query);
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"))
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 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"
. "\n 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 id, name 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, t4.saison_id,"
. "\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],$verstoesse,$aussteller[0]);
}
#[NoReturn] function adminSaveOrdnungsstrafe(): void
{
$db = getDatabase();
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
if (!benutzerZugriff("mannschaftswettbewerb_aendern"))
keinZugriff();
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');
$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')));
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 VALUES (NULL,'$verstoesse_id','$begegnung_id','$team_id','$aussteller_id','$ausstelldatum','$multiplikator','$weitere_angaben');";
} 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 WHERE ordnungsstrafen_id = $id;";
}
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
redirectSportsManagerURL('&task=admin_ordnungsstrafen&filter_saison_id='.$filter_saison_id);
}
$query = "";
if ($jInput->get('set_versender', '', 'RAW') == 'set') {
$query = "UPDATE #__sportsmanager_ordnungsstrafen"
. "\n SET versender_id = '$user_id',"
. "\n versendedatum = CURTIME()"
. "\n WHERE ordnungsstrafen_id = $id;";
}
if ($jInput->get('set_versender', '', 'RAW') == 'reset') {
$query = "UPDATE #__sportsmanager_ordnungsstrafen"
. "\n SET versender_id = NULL,"
. "\n versendedatum = NULL,"
. "\n rechnungssteller_id = NULL,"
. "\n rechnungsdatum = NULL"
. "\n WHERE ordnungsstrafen_id = $id;";
}
if ($jInput->get('set_rechnung', '', 'RAW') == 'set') {
$query = "UPDATE #__sportsmanager_ordnungsstrafen"
. "\n SET rechnungssteller_id = '$user_id',"
. "\n rechnungsdatum = CURTIME()"
. "\n WHERE ordnungsstrafen_id = $id;";
}
if ($jInput->get('set_rechnung', '', 'RAW') == 'reset') {
$query = "UPDATE #__sportsmanager_ordnungsstrafen"
. "\n SET rechnungssteller_id = NULL,"
. "\n rechnungsdatum = NULL"
. "\n WHERE ordnungsstrafen_id = $id;";
}
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
redirectSportsManagerURL('&task=admin_ordnungsstrafe_edit&id='.$id);
}
#[NoReturn] function adminRemoveOrdnungsstrafe(): void
{
$db = getDatabase();
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
if (!benutzerZugriff("mannschaftswettbewerb_aendern"))
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');
}
#[NoReturn] function adminExportOrdnungsstrafen(): void
{
$db = getDatabase();
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
$filter['saison'] = $jInput->get('filter_saison_id', 0, 'INT');
$filter['verein'] = $jInput->get('filter_verein_id', 0, 'INT');
$filter['veranstaltung'] = $jInput->get('filter_veranstaltung_id', 0, 'INT');
$filter['aussteller'] = $jInput->get('filter_aussteller_id', 0, 'INT');
if (!benutzerZugriff("benutzerVeranstalterModerator"))
keinZugriff(true);
$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,"
. "\n t8.name AS Aussteller, t1.ausstelldatum AS Ausstelldatum,"
. "\n t10.name AS Versender, t1.versendedatum AS Versendedatum,"
. "\n t11.name AS Rechnung, t1.rechnungsdatum AS Rechnungsdatum"
. "\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 LEFT JOIN #__users AS t10 ON t1.versender_id = t10.id"
. "\n LEFT JOIN #__users AS t11 ON t1.rechnungssteller_id = t11.id"
. "\n WHERE t7.saison_id = '" . $filter['saison'] . "'";
if (!empty($filter['verein']))
$query .= "\n AND t9.verein_id = '" . $filter['verein'] . "'";
if (!empty($filter['veranstaltung']))
$query .= "\n AND t7.veranstaltung_id = '" . $filter['veranstaltung'] . "'";
if (!empty($filter['aussteller']))
$query .= "\n AND t8.id = '" . $filter['aussteller'] . "'";
$query .= "\n ORDER BY ordnungsstrafen_id";
$rows = loadObjectList($db, $query);
$dateiname = "Ordnungsstrafen.csv";
$dateiname = bereinigterDateiname($dateiname);
ob_end_clean(); // Wegen UTF-8-Zeichen, die in der ausgabe vorhanden sind
Header("Content-Type: text/x-csv");
Header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
Header('Content-Disposition: attachment; filename="' . $dateiname . '"');
Header("Pragma: no-cache");
$data = "";
$trennzeichen = ";";
$spalte = 0;
$header = "";
foreach ($rows[0] as $field => $value) {
if ($spalte != 0) {
$header .= $trennzeichen;
}
$header .= $field;
$spalte++;
}
foreach ($rows as $row) {
$line = '';
$spalte = 0;
foreach ($row as $value) {
if ($spalte != 0) {
$line .= $trennzeichen;
}
$line .= $value;
$spalte++;
}
$data .= trim($line) . "\n";
}
echo $header . "\n" . utf8_decode($data);
die();
}
function adminRegelwerke(): void
{
$db = getDatabase();
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);
$regelwerke = [];
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;
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();
@@ -6104,6 +6898,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";
@@ -6125,7 +6921,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
@@ -6149,7 +6945,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');
@@ -6173,8 +6970,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));
@@ -6194,7 +6991,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',"
@@ -7939,9 +8737,9 @@ function adminEditBegegnung(): void
} }
} }
if ($begegnung->heim_team_id != $heim_team_id || $begegnung->gast_team_id != $gast_team_id || 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->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->spieltag_titel != $spieltag_titel || $begegnung->spielort_id != $spielort_id || (empty($begegnung->tisch) != empty($tisch) ||
$begegnung->tisch != $tisch) || $begegnung->nichtraucherschutz != $nichtraucherschutz) { $begegnung->tisch != $tisch) || $begegnung->nichtraucherschutz != $nichtraucherschutz) {
$query = "UPDATE #__sportsmanager_begegnung" $query = "UPDATE #__sportsmanager_begegnung"
. "\n SET zeitpunkt = " . ($zeitpunkt != null ? "'$zeitpunkt'" : "NULL") . "," . "\n SET zeitpunkt = " . ($zeitpunkt != null ? "'$zeitpunkt'" : "NULL") . ","
@@ -10496,8 +11294,8 @@ function adminBegegnungenExportForm(): void
if (einstellungswert("verbands_kuerzel") == "STFV"){ if (einstellungswert("verbands_kuerzel") == "STFV"){
$query .= " $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, "; 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, t5.saisonbezeichnung AS Saison,
t4.bezeichnung AS Liga, t1.zeitpunkt AS Spielstart, t2.teamname AS Heim, t3.teamname AS Gast, 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, t1.spieltag AS Spieltag_Nr, t1.spiel_nr AS Spiel_Nr, t1.heim_punkte AS Heim_Tore,
@@ -10589,7 +11387,7 @@ function adminBegegnungenExportForm(): void
} }
$dateiname = "Spielberichte " . $veranstaltung->bezeichnung; $dateiname = "Spielberichte " . $veranstaltung->bezeichnung;
} }
$dateiname .= ".csv"; $dateiname .= ".csv";
$dateiname = bereinigterDateiname($dateiname); $dateiname = bereinigterDateiname($dateiname);
ob_end_clean(); // Wegen UTF-8-Zeichen, die in der ausgabe vorhanden sind ob_end_clean(); // Wegen UTF-8-Zeichen, die in der ausgabe vorhanden sind
@@ -10597,12 +11395,12 @@ function adminBegegnungenExportForm(): void
Header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT'); Header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
Header('Content-Disposition: attachment; filename="' . $dateiname . '"'); Header('Content-Disposition: attachment; filename="' . $dateiname . '"');
Header("Pragma: no-cache"); Header("Pragma: no-cache");
$data = ""; $data = "";
$trennzeichen = ";"; $trennzeichen = ";";
$spalte = 0; $spalte = 0;
$header = ""; $header = "";
foreach ($rows[0] as $field => $value) { foreach ($rows[0] as $field => $value) {
if ($spalte != 0) { if ($spalte != 0) {
$header .= $trennzeichen; $header .= $trennzeichen;
@@ -10622,9 +11420,9 @@ function adminBegegnungenExportForm(): void
} }
$data .= trim($line) . "\n"; $data .= trim($line) . "\n";
} }
echo $header . "\n" . utf8_decode($data); echo $header . "\n" . utf8_decode($data);
die(); die();
} }
@@ -10708,7 +11506,7 @@ function adminSaveTurnier(): void
echo "<span style='display: inline-block; background: red; color: white;vertical-align: middle;'>$Fehlertext</span>\n"; echo "<span style='display: inline-block; background: red; color: white;vertical-align: middle;'>$Fehlertext</span>\n";
return; return;
} }
if ($vorlage) { if ($vorlage) {
$vorlage_id = $id; $vorlage_id = $id;
$id = 0; $id = 0;
@@ -10753,7 +11551,7 @@ function adminSaveTurnier(): void
if (!$db->execute()) { if (!$db->execute()) {
die($db->stderr(true)); die($db->stderr(true));
} }
if ($letzter_tag == $erster_tag){ if ($letzter_tag == $erster_tag){
$query = "UPDATE #__sportsmanager_turnierdisziplin" $query = "UPDATE #__sportsmanager_turnierdisziplin"
. "\n SET beginn = CONCAT('$erster_tag', ' ', TIME(beginn))" . "\n SET beginn = CONCAT('$erster_tag', ' ', TIME(beginn))"
@@ -12578,7 +13376,7 @@ function adminImportTurnierdisziplinMeldungenSpieleForm(): void
} }
} }
} }
if ($turniersystemHauptrunde != "Monster-DYP") { if ($turniersystemHauptrunde != "Monster-DYP") {
$matchingNodes = $disziplin->getElementsByTagName("runde"); $matchingNodes = $disziplin->getElementsByTagName("runde");
if ($matchingNodes != null) { if ($matchingNodes != null) {
@@ -5435,6 +5435,87 @@ 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,"
. "\n `zusatztext` text NOT NULL,"
. "\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` datetime NOT NULL DEFAULT current_timestamp(),"
. "\n `versender_id` int(11) DEFAULT NULL,"
. "\n `versendedatum` datetime DEFAULT NULL,"
. "\n `rechnungssteller_id` int(11) DEFAULT NULL,"
. "\n `rechnungsdatum` datetime DEFAULT NULL,"
. "\n `multiplikator` tinyint(1) NOT NULL DEFAULT 1,"
. "\n `weitere_angaben` text NOT NULL,"
. "\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,"
. "\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,57 @@ if ($task == "spielerbild") {
case 'admin_rechnung_remove': case 'admin_rechnung_remove':
adminRemoveRechnung(); adminRemoveRechnung();
break; break;
case 'admin_joomla_mail_senden':
sendJoomlaMail();
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_ordnungsstrafen_export':
adminExportOrdnungsstrafen();
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
@@ -6745,6 +6772,814 @@ class HTML_sportsmanager_admin
<?php <?php
} }
static function adminMailto($to,$cc,$bcc,$subject,$message,$backtomail,$backtosender,$vorlage=''): void
{
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()"><?php echo Text::_('COM_SPORTSMANAGER_EMAIL_SEND'); ?>&nbsp;(mailto)</button>
<input type="submit" name="joomlamail" value="<?php echo Text::_('COM_SPORTSMANAGER_EMAIL_SEND'); ?>&nbsp;(joomla)" class="button"/>
<?php if ($vorlage->name == "Ordnungsstrafe"){ ?>
<input type="submit" name="cancel" value="<?php echo Text::_('COM_SPORTSMANAGER_EDIT_DISCIPLINARY_FINE'); ?>" class="button"
onclick="const t = this.form.task; t.value = 'admin_ordnungsstrafe_edit';"/>
<input type="hidden" name="id" value="<?php echo $vorlage->id; ?>"/>
<?php } ?>
<input type="submit" name="cancel" value="<?php echo Text::_('COM_SPORTSMANAGER_BACK'); ?>" class="button"
onclick="const t = this.form.task; t.value = '<?php echo $backtosender; ?>';"/>
<input type="hidden" name="task" value="admin_joomla_mail_senden"/>
<input type="hidden" name="back" value="<?php echo $backtomail; ?>"/>
</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();" style='width: 60px;'>
<?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: 150px;'>
<?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>
<?php if (benutzerZugriff("benutzerVeranstalterModerator")){ ?>
<input type="submit" value="<?php echo Text::_('COM_SPORTSMANAGER_EXPORT'); ?>" class="button"
onclick="const t = this.form.task;
t.value = 'admin_ordnungsstrafen_export';
setTimeout(() => { t.value = 'admin_ordnungsstrafen'; }, 100);"/>
<?php } ?>
</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_FEE'); ?></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_DATE'); ?></strong></th>
<th style='text-align: center;' nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_status'); ?></strong></th>
<?php if (benutzerZugriff("benutzerVeranstalterModerator")){ ?>
<th></th>
<?php } ?>
</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 nowrap style='text-align: center;'><?php echo $row->gebuehr; ?></td>
<td style='text-align: center;'><?php echo $row->name; ?></td>
<td nowrap style='text-align: center;'><?php echo date('d.m.Y', strtotime($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,$verstoesse,$aussteller): void
{
global $params;
?>
<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: 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; width: 700px;' 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" style='width: 700px;'>
<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: 200px;' readonly
value="<?php echo (empty($row->aussteller_id) ? $aussteller->name : $row->aussteller); ?>"/>
<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 (empty($row->aussteller_id) ? $aussteller->id : $row->aussteller_id); ?>"/>
<input class="uk-select uk-form-width-medium" type="text" name="ausstelldatum" id="issuedate"
size="1" style='height: 34px; width: 200px;' readonly
value="<?php echo (empty($row->ausstelldatum) ? date('Y-m-d h:m:s') : $row->ausstelldatum); ?>"/>
</td>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label
for="sender"><?php echo Text::_('COM_SPORTSMANAGER_SENDER'); ?>
:</label>
</td>
<td nowrap>
<input class="uk-select uk-form-width-medium" type="text" name="versender"
id="sender" size="1" style='height: 34px; width: 200px;' readonly
value="<?php echo $row->versender; ?>"/>
<input class="uk-select uk-form-width-small" type="text" name="versender_id" id="sender_id"
style='height: 34px; display: none;' size="1" readonly
value="<?php echo $row->versender_id; ?>"/>
<input class="uk-select uk-form-width-medium" type="text" name="versendedatum" id="senderdate"
size="1" style='height: 34px; width: 200px;' readonly
value="<?php echo (empty($row->versendedatum) ? '' : $row->versendedatum); ?>"/>
<?php if ($row != null){ ?>
<input type="submit" name="set_versender"
value="<?php echo (empty($row->versendedatum) ? 'set' : 'reset'); ?>" class="button"/>
<?php } ?>
</td>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label
for="billissuer"><?php echo Text::_('COM_SPORTSMANAGER_BILL_ISSUER'); ?>
:</label>
</td>
<td nowrap>
<input class="uk-select uk-form-width-medium" type="text" name="rechnungssteller"
id="billissuer" size="1" style='height: 34px; width: 200px;' readonly
value="<?php echo $row->rechnungssteller; ?>"/>
<input class="uk-select uk-form-width-small" type="text" name="rechnungssteller_id" id="billissuer_id"
style='height: 34px; display: none;' size="1" readonly
value="<?php echo $row->rechnungssteller_id; ?>"/>
<input class="uk-select uk-form-width-medium" type="text" name="rechnungsdatum" id="billissuedate"
size="1" style='height: 34px; width: 200px;' readonly
value="<?php echo (empty($row->rechnungsdatum) ? '' : $row->rechnungsdatum); ?>"/>
<?php if ($row != null && !empty($row->versendedatum)){ ?>
<input type="submit" name="set_rechnung"
value="<?php echo (empty($row->rechnungsdatum) ? 'set' : 'reset'); ?>" class="button"/>
<?php } ?>
</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>
</table>
</div>
<input type="submit" name="save" value="<?php echo Text::_('COM_SPORTSMANAGER_SAVE'); ?>" class="button"/>
<?php if ($row != null && benutzerZugriff("benutzerVeranstalterModerator")){ ?>
<input type="submit" name="cancel" value="<?php echo Text::_('COM_SPORTSMANAGER_SEND_DISCIPLINARY_FINE'); ?>" class="button"
onclick="const t = this.form.task; t.value = 'admin_ordnungsstrafe_mailen';"/>
<input type="hidden" name="id" value="<?php echo $row->ordnungsstrafen_id; ?>"/>
<?php } ?>
<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"); ?>"/>
<input type="hidden" name="filter_saison_id" value="<?php echo $begegnung->saison_id; ?>"/>
</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: 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>
<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: 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>
<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;
@@ -7122,7 +7957,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;
?> ?>
@@ -7300,6 +8135,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">
@@ -8984,6 +9841,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"
@@ -515,7 +516,6 @@ COM_SPORTSMANAGER_ADD_POINTS_TABLE="Punktetabelle hinzuf&uuml;gen"
COM_SPORTSMANAGER_ADD_FUNCTION="Funktion hinzuf&uuml;gen" COM_SPORTSMANAGER_ADD_FUNCTION="Funktion hinzuf&uuml;gen"
COM_SPORTSMANAGER_PARTICIPANT="Teilnehmer" COM_SPORTSMANAGER_PARTICIPANT="Teilnehmer"
COM_SPORTSMANAGER_FUNCTION="Funktion" COM_SPORTSMANAGER_FUNCTION="Funktion"
COM_SPORTSMANAGER_MULTIPLIER="Multiplikator"
COM_SPORTSMANAGER_MAXIMUM="maximal" COM_SPORTSMANAGER_MAXIMUM="maximal"
COM_SPORTSMANAGER_CONTRACTION="K&uuml;rzel" COM_SPORTSMANAGER_CONTRACTION="K&uuml;rzel"
COM_SPORTSMANAGER_ELIGIBLE_ORGANIZERS="Berechtigte f&uuml;r Veranstalter" COM_SPORTSMANAGER_ELIGIBLE_ORGANIZERS="Berechtigte f&uuml;r Veranstalter"
@@ -811,7 +811,6 @@ COM_SPORTSMANAGER_APPLIED_FOR="Beantragt"
COM_SPORTSMANAGER_DECLINED="Abgelehnt" COM_SPORTSMANAGER_DECLINED="Abgelehnt"
COM_SPORTSMANAGER_DATE_DETAILS="Termin: Details" COM_SPORTSMANAGER_DATE_DETAILS="Termin: Details"
COM_SPORTSMANAGER_ADDITIONS="Zus&auml;tze" COM_SPORTSMANAGER_ADDITIONS="Zus&auml;tze"
COM_SPORTSMANAGER_ADDITIONAL_INFORMATION="Weitere Informationen"
COM_SPORTSMANAGER_PUBLIC_EMAIL="E-Mail &ouml;ffentlich" COM_SPORTSMANAGER_PUBLIC_EMAIL="E-Mail &ouml;ffentlich"
COM_SPORTSMANAGER_EMAIL_WITH_CHANGES="E-Mail bei &Auml;nderungen" COM_SPORTSMANAGER_EMAIL_WITH_CHANGES="E-Mail bei &Auml;nderungen"
COM_SPORTSMANAGER_ACTION_TYPE="Aktionstyp" COM_SPORTSMANAGER_ACTION_TYPE="Aktionstyp"
@@ -1019,3 +1018,42 @@ 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_EDIT_DISCIPLINARY_FINE="Ordnungsstrafe bearbeiten"
COM_SPORTSMANAGER_SEND_DISCIPLINARY_FINE="Ordnungsstrafe versenden"
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_SENDER="Sender"
COM_SPORTSMANAGER_BILL_ISSUER="Rechnung erstellt"
COM_SPORTSMANAGER_MULTIPLIER="Multiplikator"
COM_SPORTSMANAGER_ADDITIONAL_INFORMATION="Weitere Angaben"
COM_SPORTSMANAGER_EMAIL_WAS_SEND="Die E-Mail wurde erfolgreich versendet"
COM_SPORTSMANAGER_EMAIL_WAS_NOT_SEND="Die E-Mail wurde nicht versendet"
@@ -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"
@@ -515,7 +516,6 @@ COM_SPORTSMANAGER_ADD_POINTS_TABLE="Add points table"
COM_SPORTSMANAGER_ADD_FUNCTION="Add function" COM_SPORTSMANAGER_ADD_FUNCTION="Add function"
COM_SPORTSMANAGER_PARTICIPANT="Participants" COM_SPORTSMANAGER_PARTICIPANT="Participants"
COM_SPORTSMANAGER_FUNCTION="Function" COM_SPORTSMANAGER_FUNCTION="Function"
COM_SPORTSMANAGER_MULTIPLIER="Multiplier"
COM_SPORTSMANAGER_MAXIMUM="maximum" COM_SPORTSMANAGER_MAXIMUM="maximum"
COM_SPORTSMANAGER_CONTRACTION="Contraction" COM_SPORTSMANAGER_CONTRACTION="Contraction"
COM_SPORTSMANAGER_ELIGIBLE_ORGANIZERS="Eligible for organisation" COM_SPORTSMANAGER_ELIGIBLE_ORGANIZERS="Eligible for organisation"
@@ -811,7 +811,6 @@ COM_SPORTSMANAGER_APPLIED_FOR="Applied"
COM_SPORTSMANAGER_DECLINED="Declined" COM_SPORTSMANAGER_DECLINED="Declined"
COM_SPORTSMANAGER_DATE_DETAILS="Event: Details" COM_SPORTSMANAGER_DATE_DETAILS="Event: Details"
COM_SPORTSMANAGER_ADDITIONS="Additions" COM_SPORTSMANAGER_ADDITIONS="Additions"
COM_SPORTSMANAGER_ADDITIONAL_INFORMATION="Additional information"
COM_SPORTSMANAGER_PUBLIC_EMAIL="E-mail public" COM_SPORTSMANAGER_PUBLIC_EMAIL="E-mail public"
COM_SPORTSMANAGER_EMAIL_WITH_CHANGES="E-mail for changes" COM_SPORTSMANAGER_EMAIL_WITH_CHANGES="E-mail for changes"
COM_SPORTSMANAGER_ACTION_TYPE="Action type" COM_SPORTSMANAGER_ACTION_TYPE="Action type"
@@ -950,8 +949,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"
@@ -1017,3 +1018,42 @@ 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_EDIT_DISCIPLINARY_FINE="Edit issue disciplinary fine"
COM_SPORTSMANAGER_SEND_DISCIPLINARY_FINE="Send 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_SENDER="Sender"
COM_SPORTSMANAGER_ISSUE_DATE="Issue date"
COM_SPORTSMANAGER_BILL_ISSUER="Bill issuer"
COM_SPORTSMANAGER_MULTIPLIER="Multiplier"
COM_SPORTSMANAGER_ADDITIONAL_INFORMATION="Additional information"
COM_SPORTSMANAGER_EMAIL_WAS_SEND="E-Mail was succesfully sent"
COM_SPORTSMANAGER_EMAIL_WAS_NOT_SEND="E-Mail was not sent"
+89 -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,69 @@ 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,"
. "\n `zusatztext` text NOT NULL,"
. "\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` datetime NOT NULL DEFAULT current_timestamp(),"
. "\n `versender_id` int(11) DEFAULT NULL,"
. "\n `versendedatum` datetime DEFAULT NULL,"
. "\n `rechnungssteller_id` int(11) DEFAULT NULL,"
. "\n `rechnungsdatum` datetime DEFAULT NULL,"
. "\n `multiplikator` tinyint(1) NOT NULL DEFAULT 1,"
. "\n `weitere_angaben` text NOT NULL,"
. "\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,"
. "\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 +1212,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 +1229,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 +1721,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)); }
} }
}; };