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
}
// 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
{
$db = getDatabase();
@@ -684,6 +733,7 @@ function adminEinstellungen(): void
$verband_anzeigen = $jInput->get('verband_anzeigen', 0, 'INT');
$spalte_mitglieder_zeigen = $jInput->get('spalte_mitglieder_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');
$enableEmailReminders = $jInput->get('enable_email_reminders', 0, 'INT');
@@ -763,6 +813,14 @@ function adminEinstellungen(): void
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"
. "\n SET name = 'ansprechpartner_ausblenden'"
. ", wert = '$ansprechpartner_ausblenden'";
@@ -6083,6 +6141,742 @@ function adminEditSaison(): void
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
{
$db = getDatabase();
@@ -6104,6 +6898,8 @@ function adminEditVeranstaltung(): void
$query = "SELECT * FROM #__sportsmanager_veranstalter ORDER BY veranstalterbezeichnung";
$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";
$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";
@@ -6125,7 +6921,7 @@ function adminEditVeranstaltung(): void
$query = "SELECT * FROM #__users ORDER BY name, username";
$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
@@ -6149,7 +6945,8 @@ function adminEditVeranstaltung(): void
$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')));
$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');
$tabellenwertung = $jInput->get('tabellenwertung', 0, 'INT');
$direktervergleich = $jInput->get('direktervergleich', 0, 'INT');
@@ -6173,8 +6970,8 @@ function adminEditVeranstaltung(): void
$elo_aktualisieren = false;
$spielerstatistik_aktualisieren = false;
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
('$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');";
$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', " : "") . "'$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);
if (!$db->execute()) {
die($db->stderr(true));
@@ -6194,7 +6991,8 @@ function adminEditVeranstaltung(): void
. "\n saison_id = '$saison_id',"
. "\n erster_tag = '$erster_tag',"
. "\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 tabellenwertung = '$tabellenwertung',"
. "\n direktervergleich = '$direktervergleich',"
@@ -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) {
$query = "SELECT aktion_user_id, termin_aktion_id"
. "\n FROM #__sportsmanager_termin_aktion";
@@ -350,6 +350,57 @@ if ($task == "spielerbild") {
case 'admin_rechnung_remove':
adminRemoveRechnung();
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':
adminModeratoren();
break;
@@ -204,6 +204,15 @@ class HTML_sportsmanager_admin
<?php
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>
</table><br>
@@ -808,6 +817,24 @@ class HTML_sportsmanager_admin
</select>
</td>
</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>
<td nowrap style="width: 20%; text-align: right">
<label
@@ -6745,6 +6772,814 @@ class HTML_sportsmanager_admin
<?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
{
global $params;
@@ -7122,7 +7957,7 @@ class HTML_sportsmanager_admin
<?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;
?>
@@ -7300,6 +8135,28 @@ class HTML_sportsmanager_admin
?>
</select>
</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>
<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); ?>"
onclick="return confirm('<?php echo Text::_('COM_SPORTSMANAGER_REMOVE_AN_ENCOUNTER'); ?>');"
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>
<?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_MEMBER_COUNT="Spalte Mitglieder Zeigen (Vereine)"
COM_SPORTSMANAGER_SHOW_TOURNAMENT_BRACKET="Turnierbaum anzeigen"
COM_SPORTSMANAGER_USE_DISCIPLINARY_FINE="Ordnungsstrafen verwenden"
COM_SPORTSMANAGER_PLAYER_DETAILS="Spielerdetails"
COM_SPORTSMANAGER_PLAYER_LIST_DETAILS="Spielerliste/-details"
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_PARTICIPANT="Teilnehmer"
COM_SPORTSMANAGER_FUNCTION="Funktion"
COM_SPORTSMANAGER_MULTIPLIER="Multiplikator"
COM_SPORTSMANAGER_MAXIMUM="maximal"
COM_SPORTSMANAGER_CONTRACTION="K&uuml;rzel"
COM_SPORTSMANAGER_ELIGIBLE_ORGANIZERS="Berechtigte f&uuml;r Veranstalter"
@@ -811,7 +811,6 @@ COM_SPORTSMANAGER_APPLIED_FOR="Beantragt"
COM_SPORTSMANAGER_DECLINED="Abgelehnt"
COM_SPORTSMANAGER_DATE_DETAILS="Termin: Details"
COM_SPORTSMANAGER_ADDITIONS="Zus&auml;tze"
COM_SPORTSMANAGER_ADDITIONAL_INFORMATION="Weitere Informationen"
COM_SPORTSMANAGER_PUBLIC_EMAIL="E-Mail &ouml;ffentlich"
COM_SPORTSMANAGER_EMAIL_WITH_CHANGES="E-Mail bei &Auml;nderungen"
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_GAME_RESULT_DELAYS="Verzögerung"
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_MEMBER_COUNT="Show member column (teams)"
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_LIST_DETAILS="Player list details"
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_PARTICIPANT="Participants"
COM_SPORTSMANAGER_FUNCTION="Function"
COM_SPORTSMANAGER_MULTIPLIER="Multiplier"
COM_SPORTSMANAGER_MAXIMUM="maximum"
COM_SPORTSMANAGER_CONTRACTION="Contraction"
COM_SPORTSMANAGER_ELIGIBLE_ORGANIZERS="Eligible for organisation"
@@ -811,7 +811,6 @@ COM_SPORTSMANAGER_APPLIED_FOR="Applied"
COM_SPORTSMANAGER_DECLINED="Declined"
COM_SPORTSMANAGER_DATE_DETAILS="Event: Details"
COM_SPORTSMANAGER_ADDITIONS="Additions"
COM_SPORTSMANAGER_ADDITIONAL_INFORMATION="Additional information"
COM_SPORTSMANAGER_PUBLIC_EMAIL="E-mail public"
COM_SPORTSMANAGER_EMAIL_WITH_CHANGES="E-mail for changes"
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_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_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_PROPOSAL_DAY="Choose the day 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_GAME_RESULT_DELAYS="Delay"
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"
+88 -1
View File
@@ -1035,6 +1035,7 @@ return new class () implements InstallerScriptInterface
. "\n `saison_id` int(11) NOT NULL DEFAULT '0',"
. "\n `veranstalter_id` int(11) NOT NULL DEFAULT '0',"
. "\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 `verschieberegel_id` int(11) NOT NULL DEFAULT '0',"
. "\n `tabellenwertung` tinyint(4) NOT NULL DEFAULT '0',"
@@ -1118,7 +1119,69 @@ return new class () implements InstallerScriptInterface
$db->setQuery( $query );
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 );
if (!$db->execute()) { die($db->stderr(true)); }
@@ -1150,6 +1213,10 @@ return new class () implements InstallerScriptInterface
$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 #__sportsmanager_einstellungen SET name = 'spalte_mitglieder_zeigen', wert = '1';";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
@@ -1163,6 +1230,10 @@ return new class () implements InstallerScriptInterface
$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 = "INSERT #__sportsmanager_rangliste_system"
. "\n SET systembezeichnung = 'Klostermann/Wahle (1 Punkt für letzten Platz)',"
. "\n status = '1',"
@@ -1650,5 +1721,21 @@ return new class () implements InstallerScriptInterface
$query = "DROP TABLE IF EXISTS `#__sportsmanager_verteiler`;";
$db->setQuery( $query );
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)); }
}
};