Merge pull request #238 from Deutscher-Tischfussballbund/sportsmanager2-issue234

Sportsmanager2 issue234
This commit is contained in:
jmeyer26
2026-01-22 09:17:18 +01:00
committed by GitHub
12 changed files with 1847 additions and 533 deletions
@@ -21,12 +21,13 @@ COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_TEAMS_JOINT="Mannschaften in gem
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_CLUBS="Vereine" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_CLUBS="Vereine"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_VENUES="Spielorte" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_VENUES="Spielorte"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_APPOINTMENTS="Termine" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_APPOINTMENTS="Termine"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_MATCH_RESCHEDULING="Spielverlegungen"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_TITLE="Titel" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_TITLE="Titel"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_TITLE_DESC="Titel, der im Fenster oben angezeigt wird" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_TITLE_DESC="Titel, der im Fenster oben angezeigt wird"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_DESCRIPTION="Beschreibung" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_DESCRIPTION="Beschreibung"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_DESCRIPTION_DESC="Beschreibung, die unterhalb des Titels angezeigt wird (WICHTIG: Werden HTML-Tags verwendet, müssen auch Umlaute in HTML-Code angeben werden)" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_DESCRIPTION_DESC="Beschreibung, die unterhalb des Titels angezeigt wird (WICHTIG: Werden HTML-Tags verwendet, müssen auch Umlaute in HTML-Code angeben werden)"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_CATEGORIES="Kategorien" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_CATEGORIES="Kategorien"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_CATEGORIES_DESC="Eine optionale Auswahl an durch Kommata getrennte Kategorienummern" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_CATEGORIES_DESC="Eine optionale Auswahl von Kategorienummern durch Kommata oder Spiegelstrich getrennt"
COM_SPORTSMANAGER_LAYOUT_ELO_RANKING_TITLE="Layout: Elo-Rangliste" COM_SPORTSMANAGER_LAYOUT_ELO_RANKING_TITLE="Layout: Elo-Rangliste"
COM_SPORTSMANAGER_LAYOUT_ELO_RANKING_DESC="Auflistung der Spieler sortiert nach Elo-Wertung" COM_SPORTSMANAGER_LAYOUT_ELO_RANKING_DESC="Auflistung der Spieler sortiert nach Elo-Wertung"
COM_SPORTSMANAGER_LAYOUT_ELO_RANKING_OPTION_ELO_RANKING="Elo-Rangliste" COM_SPORTSMANAGER_LAYOUT_ELO_RANKING_OPTION_ELO_RANKING="Elo-Rangliste"
@@ -21,12 +21,13 @@ COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_TEAMS_JOINT="Teams in joint list
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_CLUBS="Clubs" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_CLUBS="Clubs"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_VENUES="Venues" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_VENUES="Venues"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_APPOINTMENTS="Appointments" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_APPOINTMENTS="Appointments"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_MATCH_RESCHEDULING="Match reschedulings"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_TITLE="Title" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_TITLE="Title"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_TITLE_DESC="Title which will be shows on top" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_TITLE_DESC="Title which will be shows on top"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_DESCRIPTION="Description" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_DESCRIPTION="Description"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_DESCRIPTION_DESC="Description that will be shows below the titel (IMPORTANT: if html tags are used, special characters must be maskeraded)" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_DESCRIPTION_DESC="Description that will be shows below the titel (IMPORTANT: if html tags are used, special characters must be maskeraded)"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_CATEGORIES="Categories" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_CATEGORIES="Categories"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_CATEGORIES_DESC="An optional selection of category numbers seperated by commas" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_CATEGORIES_DESC="An optional selection of category numbers seperated by commas or bullet point"
COM_SPORTSMANAGER_LAYOUT_ELO_RANKING_TITLE="Layout: elo ranking" COM_SPORTSMANAGER_LAYOUT_ELO_RANKING_TITLE="Layout: elo ranking"
COM_SPORTSMANAGER_LAYOUT_ELO_RANKING_DESC="Listing of players sorted by elo rating" COM_SPORTSMANAGER_LAYOUT_ELO_RANKING_DESC="Listing of players sorted by elo rating"
COM_SPORTSMANAGER_LAYOUT_ELO_RANKING_OPTION_ELO_RANKING="Elo ranking" COM_SPORTSMANAGER_LAYOUT_ELO_RANKING_OPTION_ELO_RANKING="Elo ranking"
@@ -23,7 +23,9 @@ function UhrzeitWandlerDE(string $input): string {
$formats = [ $formats = [
'Y-m-d H:i', 'Y-m-d H:i',
'd.m.Y H:i', 'd.m.Y H:i',
'j.n.Y H:i',
'd.m.Y H:i:s', 'd.m.Y H:i:s',
'j.n.Y H:i:s',
]; ];
foreach ($formats as $format) { foreach ($formats as $format) {
@@ -110,6 +112,29 @@ function renderTemplate($template, $vars = []): string
); );
} }
function CSVfromArray($rows,$dateiname)
{
$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 = ";";
$header = "";
$header .= implode(';', array_keys($rows[0]));
foreach ($rows as $row) {
$data .= implode(';', $row)."\n";
}
echo $header . "\n" . utf8_decode(trim($data));
die();
}
function adminUebersicht(): void function adminUebersicht(): void
{ {
$db = getDatabase(); $db = getDatabase();
@@ -4544,6 +4569,637 @@ function adminEditTeamspielmodus(): void
redirectSportsManagerURL('&task=admin_teamspiel_modi'); redirectSportsManagerURL('&task=admin_teamspiel_modi');
} }
function adminSpielverlegungen(): void
{
$db = getDatabase();
global $params;
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
if (!benutzerZugriff("verschieberegeln_aendern"))
keinZugriff(true);
$filter_status = $jInput->get('filter_status', '', 'RAW');
$filter_saison_id = $jInput->get('filter_saison_id', 0, 'INT');
if ($filter_saison_id == 0)
$filter_saison_id = $jInput->cookie->get('sportsmanager_filter_saison_id', 0, 'INT');
$query = "SELECT saison_id, saisonbezeichnung"
. "\n FROM #__sportsmanager_saison"
. "\n ORDER BY saisonbezeichnung DESC";
$saisons = loadObjectList($db, $query);
if (empty($filter_saison_id))
$filter_saison_id = $saisons[0]->saison_id;
if (empty($filter_status))
$filter_status = "offen,genehmigt,abgelehnt";
$query = "SELECT t1.begegnung_historie_id AS beantragt_id, t1.begegnung_id AS begegnung_id,"
. "\n t1.eingetragen AS beantragt, t1.kommentar AS Begruendung_beantragt, t1.zeitpunkt AS Termin_alt,"
. "\n t1.team_id as beantragt_verein, t5.bezeichnung AS Liga,"
. "\n t3.teamname AS Heim, t4.teamname AS Gast, t6.teamname AS beantragt_von, 'offen' AS status"
. "\n FROM #__sportsmanager_begegnung_historie AS t1"
. "\n LEFT JOIN #__sportsmanager_begegnung AS t2 ON t2.begegnung_id = t1.begegnung_id"
. "\n LEFT JOIN #__sportsmanager_team AS t3 ON t3.team_id = t2.heim_team_id"
. "\n LEFT JOIN #__sportsmanager_team AS t4 ON t4.team_id = t2.gast_team_id"
. "\n LEFT JOIN #__sportsmanager_veranstaltung AS t5 ON t5.veranstaltung_id = t4.veranstaltung_id"
. "\n LEFT JOIN #__sportsmanager_team AS t6 ON t6.team_id = t1.team_id"
. "\n WHERE t1.aktion = 2"
. "\n AND t5.saison_id = '$filter_saison_id'"
. "\n ORDER BY t1.begegnung_id, t1.zeitpunkt ASC;";
$spielverlegungen = loadObjectList($db, $query);
$last_id = "";
foreach ($spielverlegungen as $key => $spielverlegung) {
if ($spielverlegung->begegnung_id == $last_id) {
unset($spielverlegungen[$key]);
} else {
$last_id = $spielverlegung->begegnung_id;
$query = "SELECT t1.begegnung_historie_id AS genehmigt_id, t1.eingetragen AS genehmigt,"
. "\n t1.user_id AS genehmigt_von, t1.team_id as genehmigt_verein, t1.zeitpunkt AS Termin_neu"
. "\n FROM #__sportsmanager_begegnung_historie AS t1"
. "\n LEFT JOIN #__sportsmanager_begegnung AS t2 ON t2.begegnung_id = t1.begegnung_id"
. "\n WHERE t1.aktion = 1 AND t1.begegnung_id = $last_id"
. "\n ORDER BY t1.zeitpunkt DESC LIMIT 1;";
$genehmigt = loadObjectList($db, $query);
if (!empty($genehmigt)) {
$spielverlegung->genehmigt_id = $genehmigt[0]->genehmigt_id;
$spielverlegung->genehmigt = $genehmigt[0]->genehmigt;
$spielverlegung->Termin_neu = $genehmigt[0]->Termin_neu;
$spielverlegung->genehmigt_von = $genehmigt[0]->genehmigt_von;
$spielverlegung->genehmigt_verein = $genehmigt[0]->genehmigt_verein;
$spielverlegung->status = "genehmigt";
} else {
$spielverlegung->genehmigt_id = "";
$spielverlegung->genehmigt = "";
$spielverlegung->Termin_neu = "";
$spielverlegung->genehmigt_von = "";
$spielverlegung->genehmigt_verein = "";
}
$query = "SELECT t1.begegnung_historie_id AS abgelehnt_id, t1.eingetragen AS abgelehnt,"
. "\n t1.user_id AS abgelehnt_von, t1.team_id as abgelehnt_verein,"
. "\n t1.kommentar AS Begruendung_abgelehnt"
. "\n FROM #__sportsmanager_begegnung_historie AS t1"
. "\n LEFT JOIN #__sportsmanager_begegnung AS t2 ON t2.begegnung_id = t1.begegnung_id"
. "\n WHERE t1.aktion = 10 AND t1.begegnung_id = $last_id"
. "\n ORDER BY t1.zeitpunkt DESC LIMIT 1;";
$abgelehnt = loadObjectList($db, $query);
if (!empty($abgelehnt)) {
$spielverlegung->abgelehnt_id = $abgelehnt[0]->abgelehnt_id;
$spielverlegung->abgelehnt = $abgelehnt[0]->abgelehnt;
$spielverlegung->abgelehnt_von = $abgelehnt[0]->abgelehnt_von;
$spielverlegung->abgelehnt_verein = $abgelehnt[0]->abgelehnt_verein;
$spielverlegung->Begruendung_abgelehnt = $abgelehnt[0]->Begruendung_abgelehnt;
$spielverlegung->status = "abgelehnt";
} else {
$spielverlegung->abgelehnt_id = "";
$spielverlegung->abgelehnt = "";
$spielverlegung->abgelehnt_von = "";
$spielverlegung->abgelehnt_verein = "";
$spielverlegung->Begruendung_abgelehnt = "";
}
}
}
HTML_sportsmanager_admin::adminSpielverlegungen($spielverlegungen,$saisons,$filter_saison_id);
}
function adminEditSpielverlegung(): void
{
$db = getDatabase();
global $params;
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
if (!benutzerZugriff("verschieberegeln_aendern"))
keinZugriff(true);
$begegnung_id = $jInput->get('begegnung_id', 0, 'INT');
$beantragt_id = 0;
$genehmigt_id = 0;
$abgelehnt_id = 0;
if (empty($begegnung_id))
redirectSportsManagerURL('&task=admin_spielverlegungen', 'Missing id');
// Checken, ob für diese ID schon eine Verlegung existiert
$query = "SELECT *"
. "\n FROM #__sportsmanager_begegnung_historie AS t1"
. "\n WHERE begegnung_id = '$begegnung_id' AND aktion = '2'"
. "\n ORDER BY eingetragen ASC LIMIT 1;";
$ergebnis = loadObjectList($db, $query);
if (!empty($ergebnis))
$beantragt_id = $ergebnis[0]->begegnung_historie_id;
$query = "SELECT *"
. "\n FROM #__sportsmanager_begegnung_historie AS t1"
. "\n WHERE begegnung_id = '$begegnung_id' AND aktion = '1'"
. "\n ORDER BY eingetragen DESC LIMIT 1;";
$ergebnis = loadObjectList($db, $query);
if (!empty($ergebnis))
$genehmigt_id = $ergebnis[0]->begegnung_historie_id;
$query = "SELECT *"
. "\n FROM #__sportsmanager_begegnung_historie AS t1"
. "\n WHERE begegnung_id = '$begegnung_id' AND aktion = '10'"
. "\n ORDER BY eingetragen DESC LIMIT 1;";
$ergebnis = loadObjectList($db, $query);
if (!empty($ergebnis))
$abgelehnt_id = $ergebnis[0]->begegnung_historie_id;
$beantragt = [];
if (!empty($beantragt_id)){
$query = "SELECT"
. "\n CONCAT(t3.teamname, ' - ', t4.teamname, ' (', t5.bezeichnung, ')') AS Begegnung,"
. "\n t2.heim_team_id, t2.gast_team_id,"
. "\n IF (ISNULL(t1.verantwortlich_team_id), 0, verantwortlich_team_id) AS beantragt_von_id,"
. "\n t2.begegnung_id AS begegnung_id, t5.bezeichnung AS Liga, t3.teamname AS Heim, t4.teamname AS Gast,"
. "\n t1.zeitpunkt AS Termin_alt, t1.begegnung_historie_id AS beantragt_id, t6.teamname AS beantragt_von,"
. "\n t1.eingetragen AS beantragt_am, t1.kommentar AS Begruendung_beantragt,"
. "\n t1.team_id AS beantragt_verein, 'offen' AS status"
. "\n FROM #__sportsmanager_begegnung_historie AS t1"
. "\n LEFT JOIN #__sportsmanager_begegnung AS t2 ON t2.begegnung_id = t1.begegnung_id"
. "\n LEFT JOIN #__sportsmanager_team AS t3 ON t3.team_id = t2.heim_team_id"
. "\n LEFT JOIN #__sportsmanager_team AS t4 ON t4.team_id = t2.gast_team_id"
. "\n LEFT JOIN #__sportsmanager_veranstaltung AS t5 ON t5.veranstaltung_id = t4.veranstaltung_id"
. "\n LEFT JOIN #__sportsmanager_team AS t6 ON t6.team_id = t1.team_id"
. "\n WHERE t1.aktion = 2"
. "\n AND t1.begegnung_historie_id = '$beantragt_id'";
$beantragt = loadObjectList($db, $query);
$spielverlegung = $beantragt[0];
} else
if ($begegnung_id != 0){
$query = "SELECT"
. "\n CONCAT(t3.teamname, ' - ', t4.teamname, ' (', t5.bezeichnung, ')') AS Begegnung,"
. "\n t2.begegnung_id AS begegnung_id, t5.bezeichnung AS Liga, t3.teamname AS Heim,"
. "\n t4.teamname AS Gast, t2.zeitpunkt AS Termin_alt,"
. "\n t2.heim_team_id, t2.gast_team_id"
. "\n FROM #__sportsmanager_begegnung AS t2"
. "\n LEFT JOIN #__sportsmanager_team AS t3 ON t3.team_id = t2.heim_team_id"
. "\n LEFT JOIN #__sportsmanager_team AS t4 ON t4.team_id = t2.gast_team_id"
. "\n LEFT JOIN #__sportsmanager_veranstaltung AS t5 ON t5.veranstaltung_id = t4.veranstaltung_id"
. "\n WHERE t2.begegnung_id = '$begegnung_id'";
$beantragt = loadObjectList($db, $query);
$spielverlegung = $beantragt[0];
$spielverlegung->beantragt_id = "";
$spielverlegung->beantragt_von = "";
$spielverlegung->beantragt_von_id = 0;
$spielverlegung->beantragt_am = "";
$spielverlegung->Begruendung_beantragt = "";
$spielverlegung->beantragt_verein = "";
$spielverlegung->status = "offen";
}
if (empty($spielverlegung))
redirectSportsManagerURL('&task=admin_spielverlegungen', 'Wrong id');
$genehmigt = [];
if (!empty($genehmigt_id)){
$query = "SELECT t1.begegnung_historie_id AS genehmigt_id, t1.eingetragen AS genehmigt_am,"
. "\n t1.user_id AS genehmigt_von, t1.team_id as genehmigt_verein, t1.zeitpunkt AS Termin_neu"
. "\n FROM #__sportsmanager_begegnung_historie AS t1"
. "\n LEFT JOIN #__sportsmanager_begegnung AS t2 ON t2.begegnung_id = t1.begegnung_id"
. "\n WHERE t1.begegnung_historie_id = '$genehmigt_id'";
$genehmigt = loadObjectList($db, $query);
}
if (!empty($genehmigt)) {
$spielverlegung->genehmigt_id = $genehmigt[0]->genehmigt_id;
$spielverlegung->genehmigt_am = $genehmigt[0]->genehmigt_am;
$spielverlegung->Termin_neu = $genehmigt[0]->Termin_neu;
$spielverlegung->genehmigt_von = $genehmigt[0]->genehmigt_von;
$spielverlegung->genehmigt_verein = $genehmigt[0]->genehmigt_verein;
$spielverlegung->status = "genehmigt";
} else {
$spielverlegung->genehmigt_id = "";
$spielverlegung->genehmigt_am = "";
$spielverlegung->Termin_neu = "";
$spielverlegung->genehmigt_verein = "";
$spielverlegung->genehmigt_von = "";
}
$abgelehnt = [];
if ($abgelehnt != 0){
$query = "SELECT t1.begegnung_historie_id AS abgelehnt_id, t1.eingetragen AS abgelehnt_am,"
. "\n t1.user_id AS abgelehnt_von, t1.team_id as abgelehnt_verein,"
. "\n t1.kommentar AS Begruendung_abgelehnt"
. "\n FROM #__sportsmanager_begegnung_historie AS t1"
. "\n LEFT JOIN #__sportsmanager_begegnung AS t2 ON t2.begegnung_id = t1.begegnung_id"
. "\n WHERE t1.begegnung_historie_id = '$abgelehnt_id'";
$abgelehnt = loadObjectList($db, $query);
}
if (!empty($abgelehnt)) {
$spielverlegung->abgelehnt_id = $abgelehnt[0]->abgelehnt_id;
$spielverlegung->abgelehnt_am = $abgelehnt[0]->abgelehnt_am;
$spielverlegung->abgelehnt_von = $abgelehnt[0]->abgelehnt_von;
$spielverlegung->abgelehnt_verein = $abgelehnt[0]->abgelehnt_verein;
$spielverlegung->Begruendung_abgelehnt = $abgelehnt[0]->Begruendung_abgelehnt;
$spielverlegung->status = "abgelehnt";
} else {
$spielverlegung->abgelehnt_id = "";
$spielverlegung->abgelehnt_am = "";
$spielverlegung->abgelehnt_von = "";
$spielverlegung->abgelehnt_verein = "";
$spielverlegung->Begruendung_abgelehnt = "";
}
$teams[0] = "Verband";
$teams[$spielverlegung->heim_team_id] = $spielverlegung->Heim;
$teams[$spielverlegung->gast_team_id] = $spielverlegung->Gast;
HTML_sportsmanager_admin::adminEditSpielverlegung($spielverlegung,$teams);
}
#[NoReturn] function adminSaveSpielverlegung(): void
{
$db = getDatabase();
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
if (!benutzerZugriff("verschieberegeln_aendern"))
keinZugriff();
if ($jInput->get('cancel', false, 'BOOL')) {
redirectSportsManagerURL('&task=admin_spielverlegungen');
}
$user_id = isExternalDatabase() ? 0 : (isJson() ? getUserID() : Factory::getContainer()->get(SiteApplication::class)->getIdentity()->id);
$begegnung_id = $jInput->get('begegnung_id', 0, 'INT');
$beantragt_id = $jInput->get('beantragt_id', 0, 'INT');
$genehmigt_id = $jInput->get('genehmigt_id', 0, 'INT');
$abgelehnt_id = $jInput->get('abgelehnt_id', 0, 'INT');
$beantragt_verein = $jInput->get('beantragt_verein', 0, 'INT');
$Termin_alt = $db->escape(trim($jInput->get('Termin_alt', '', 'RAW')));
$Termin_neu = $db->escape(trim($jInput->get('Termin_neu', '', 'RAW')));
$Begruendung_beantragt = $db->escape(trim($jInput->get('Begruendung_beantragt', '', 'RAW')));
$Termin_neu = UhrzeitWandlerDE($Termin_neu);
if (!empty($Termin_neu) && !validateDate($Termin_neu, $format = 'Y-m-d H:i:s'))
redirectSportsManagerURL('&task=admin_spielverlegungen', Text::_('COM_SPORTSMANAGER_NOT_VALID_TIME'));
if ($beantragt_id == 0){
$query = "INSERT INTO #__sportsmanager_begegnung_historie"
. "\n (begegnung_historie_id, begegnung_id, aktion, zeitpunkt, user_id, team_id, kommentar, eingetragen)"
. "\n VALUES (NULL, $begegnung_id, 2, '$Termin_alt', $user_id, " . ($beantragt_verein ? $beantragt_verein : 'NULL') . ", '$Begruendung_beantragt', NOW());";
} else {
$query = "UPDATE #__sportsmanager_begegnung_historie"
. "\n SET user_id = '$user_id',"
. "\n kommentar = '$Begruendung_beantragt',"
. "\n team_id = " . ($beantragt_verein ? $beantragt_verein : 'NULL')
. "\n WHERE begegnung_historie_id = $beantragt_id";
}
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
if ($genehmigt_id == 0 AND !empty($Termin_neu)){
$query = "INSERT INTO #__sportsmanager_begegnung_historie"
. "\n (begegnung_historie_id, begegnung_id, aktion, zeitpunkt, user_id, team_id, eingetragen)"
. "\n VALUES (NULL, $begegnung_id, 1, '$Termin_neu', $user_id, NULL, NOW());";
}
else if ($genehmigt_id != 0 AND !empty($Termin_neu)){
$query = "UPDATE #__sportsmanager_begegnung_historie"
. "\n SET user_id = '$user_id',"
. "\n zeitpunkt = '$Termin_neu',"
. "\n eingetragen = NOW()"
. "\n WHERE begegnung_historie_id = $genehmigt_id;";
}
else {
$query = "DELETE FROM #__sportsmanager_begegnung_historie"
. "\n WHERE begegnung_id = $begegnung_id AND aktion = 1;";
}
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$query = "UPDATE #__sportsmanager_begegnung"
. "\n SET zeitpunkt = '" . ($Termin_neu ? $Termin_neu : $Termin_alt) . "'"
. "\n WHERE begegnung_id = $begegnung_id;";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
redirectSportsManagerURL('&task=admin_spielverlegungen');
}
#[NoReturn] function adminRemoveSpielverlegung(): void
{
$db = getDatabase();
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
if (!benutzerZugriff("verschieberegeln_aendern"))
keinZugriff();
$begegnung_id = $jInput->get('id', 0, 'INT');
$query = "SELECT * FROM #__sportsmanager_begegnung_historie"
. "\n WHERE begegnung_id = $begegnung_id AND aktion = 2;";
$ergebnis = loadObjectList($db, $query);
$zeitpunkt = $ergebnis[0]->zeitpunkt;
$query = "UPDATE #__sportsmanager_begegnung"
. "\n SET zeitpunkt = '$zeitpunkt'"
. "\n WHERE begegnung_id = $begegnung_id;";
$db->setQuery($query);
if (!$db->execute()) {die($db->stderr(true));}
$query = "DELETE FROM #__sportsmanager_begegnung_historie"
. "\n WHERE begegnung_id = $begegnung_id AND aktion IN (0,1,2,3,10);";
$db->setQuery($query);
if (!$db->execute()) {die($db->stderr(true));}
redirectSportsManagerURL('&task=admin_spielverlegungen');
}
#[NoReturn] function adminExportSpielverlegungen(): void
{
$db = getDatabase();
global $params;
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
if (!benutzerZugriff("verschieberegeln_aendern"))
keinZugriff(true);
$filter_status = $jInput->get('filter_status', '', 'RAW');
$filter_saison_id = $jInput->get('filter_saison_id', 0, 'INT');
if ($filter_saison_id == 0)
$filter_saison_id = $jInput->cookie->get('sportsmanager_filter_saison_id', 0, 'INT');
$query = "SELECT saison_id, saisonbezeichnung"
. "\n FROM #__sportsmanager_saison"
. "\n ORDER BY saisonbezeichnung DESC";
$saisons = loadObjectList($db, $query);
if (empty($filter_saison_id))
$filter_saison_id = $saisons[0]->saison_id;
if (empty($filter_status))
$filter_status = "offen,genehmigt,abgelehnt";
$query = "SELECT t1.begegnung_historie_id AS beantragt_id, t1.begegnung_id AS begegnung_id,"
. "\n t1.eingetragen AS beantragt, t1.kommentar AS Begruendung_beantragt, t1.zeitpunkt AS Termin_alt,"
. "\n t1.team_id as beantragt_verein, t5.bezeichnung AS Liga, t2.spieltag AS Spieltag_Nr,"
. "\n t3.teamname AS Heim, t4.teamname AS Gast, t6.teamname AS beantragt_von, 'offen' AS status"
. "\n FROM #__sportsmanager_begegnung_historie AS t1"
. "\n LEFT JOIN #__sportsmanager_begegnung AS t2 ON t2.begegnung_id = t1.begegnung_id"
. "\n LEFT JOIN #__sportsmanager_team AS t3 ON t3.team_id = t2.heim_team_id"
. "\n LEFT JOIN #__sportsmanager_team AS t4 ON t4.team_id = t2.gast_team_id"
. "\n LEFT JOIN #__sportsmanager_veranstaltung AS t5 ON t5.veranstaltung_id = t4.veranstaltung_id"
. "\n LEFT JOIN #__sportsmanager_team AS t6 ON t6.team_id = t1.team_id"
. "\n WHERE t1.aktion = 2"
. "\n AND t5.saison_id = '$filter_saison_id'"
. "\n ORDER BY t1.begegnung_id, t1.zeitpunkt ASC;";
$spielverlegungen = loadObjectList($db, $query);
$last_id = "";
foreach ($spielverlegungen as $key => $spielverlegung) {
if ($spielverlegung->begegnung_id == $last_id) {
unset($spielverlegungen[$key]);
} else {
$last_id = $spielverlegung->begegnung_id;
$query = "SELECT t1.begegnung_historie_id AS genehmigt_id, t1.eingetragen AS genehmigt,"
. "\n t1.user_id AS genehmigt_von, t1.team_id as genehmigt_verein, t1.zeitpunkt AS Termin_neu"
. "\n FROM #__sportsmanager_begegnung_historie AS t1"
. "\n LEFT JOIN #__sportsmanager_begegnung AS t2 ON t2.begegnung_id = t1.begegnung_id"
. "\n WHERE t1.aktion = 1 AND t1.begegnung_id = $last_id"
. "\n ORDER BY t1.zeitpunkt DESC LIMIT 1;";
$genehmigt = loadObjectList($db, $query);
if (!empty($genehmigt)) {
$spielverlegung->genehmigt_id = $genehmigt[0]->genehmigt_id;
$spielverlegung->genehmigt = $genehmigt[0]->genehmigt;
$spielverlegung->Termin_neu = $genehmigt[0]->Termin_neu;
$spielverlegung->genehmigt_von = $genehmigt[0]->genehmigt_von;
$spielverlegung->genehmigt_verein = $genehmigt[0]->genehmigt_verein;
$spielverlegung->status = "genehmigt";
} else {
$spielverlegung->genehmigt_id = "";
$spielverlegung->genehmigt = "";
$spielverlegung->Termin_neu = "";
$spielverlegung->genehmigt_von = "";
$spielverlegung->genehmigt_verein = "";
}
$query = "SELECT t1.begegnung_historie_id AS abgelehnt_id, t1.eingetragen AS abgelehnt,"
. "\n t1.user_id AS abgelehnt_von, t1.team_id as abgelehnt_verein,"
. "\n t1.kommentar AS Begruendung_abgelehnt"
. "\n FROM #__sportsmanager_begegnung_historie AS t1"
. "\n LEFT JOIN #__sportsmanager_begegnung AS t2 ON t2.begegnung_id = t1.begegnung_id"
. "\n WHERE t1.aktion = 10 AND t1.begegnung_id = $last_id"
. "\n ORDER BY t1.zeitpunkt DESC LIMIT 1;";
$abgelehnt = loadObjectList($db, $query);
if (!empty($abgelehnt)) {
$spielverlegung->abgelehnt_id = $abgelehnt[0]->abgelehnt_id;
$spielverlegung->abgelehnt = $abgelehnt[0]->abgelehnt;
$spielverlegung->abgelehnt_von = $abgelehnt[0]->abgelehnt_von;
$spielverlegung->abgelehnt_verein = $abgelehnt[0]->abgelehnt_verein;
$spielverlegung->Begruendung_abgelehnt = $abgelehnt[0]->Begruendung_abgelehnt;
$spielverlegung->status = "abgelehnt";
} else {
$spielverlegung->abgelehnt_id = "";
$spielverlegung->abgelehnt = "";
$spielverlegung->abgelehnt_von = "";
$spielverlegung->abgelehnt_verein = "";
$spielverlegung->Begruendung_abgelehnt = "";
}
}
}
$rows = [];
$zeile = 0;
foreach ($spielverlegungen AS $spielverlegung)
{
$rows[$zeile]['begegnung_id'] = $spielverlegung->begegnung_id;
$rows[$zeile]['Liga'] = $spielverlegung->Liga;
$rows[$zeile]['Spieltag_Nr'] = $spielverlegung->Spieltag_Nr;
$rows[$zeile]['Termin_alt'] = $spielverlegung->Termin_alt;
$rows[$zeile]['Termin_neu'] = $spielverlegung->Termin_neu;
$rows[$zeile]['Heim'] = $spielverlegung->Heim;
$rows[$zeile]['Gast'] = $spielverlegung->Gast;
$rows[$zeile]['Begruendung'] = $spielverlegung->Begruendung_beantragt;
$rows[$zeile]['beantragt_von'] = $spielverlegung->beantragt_von;
$zeile++;
}
CSVfromArray($rows,"Spielverlegungen.csv");
}
function adminSpielverlegungMailen(): void
{
$db = getDatabase();
$app = Factory::getContainer()->get(SiteApplication::class);
$jInput = $app->input;
if (!benutzerZugriff("verschieberegeln_aendern"))
keinZugriff(true);
$user_id = isExternalDatabase() ? 0 : (isJson() ? getUserID() : $app->getIdentity()->id);
$query = "SELECT name, email FROM #__users WHERE id = '$user_id';";
$Benutzer = loadObjectList($db, $query);
$begegnung_id = $jInput->get('id', 0, 'INT');
$beantragt_id = 0;
$genehmigt_id = 0;
if (empty($begegnung_id))
redirectSportsManagerURL('&task=admin_spielverlegungen', 'Missing id');
if ($jInput->get('cancel', false, 'BOOL'))
redirectSportsManagerURL('&task=admin_spielverlegungen');
$query = "SELECT *"
. "\n FROM #__sportsmanager_begegnung_historie AS t1"
. "\n WHERE begegnung_id = '$begegnung_id' AND aktion = '2'"
. "\n ORDER BY eingetragen ASC LIMIT 1;";
$ergebnis = loadObjectList($db, $query);
if (!empty($ergebnis))
$beantragt_id = $ergebnis[0]->begegnung_historie_id;
$query = "SELECT *"
. "\n FROM #__sportsmanager_begegnung_historie AS t1"
. "\n WHERE begegnung_id = '$begegnung_id' AND aktion = '1'"
. "\n ORDER BY eingetragen DESC LIMIT 1;";
$ergebnis = loadObjectList($db, $query);
if (!empty($ergebnis))
$genehmigt_id = $ergebnis[0]->begegnung_historie_id;
$beantragt = [];
if (!empty($beantragt_id)){
$query = "SELECT"
. "\n CONCAT(t3.teamname, ' - ', t4.teamname, ' (', t5.bezeichnung, ')') AS Begegnung,"
. "\n t2.heim_team_id, t2.gast_team_id, t7.verein_id AS heim_verein_id, t8.verein_id AS gast_verein_id,"
. "\n IF (ISNULL(t1.verantwortlich_team_id), 0, verantwortlich_team_id) AS beantragt_von_id,"
. "\n t2.begegnung_id AS begegnung_id, t5.bezeichnung AS Liga, t3.teamname AS Heim, t4.teamname AS Gast,"
. "\n t1.zeitpunkt AS Termin_alt, t1.begegnung_historie_id AS beantragt_id, t6.teamname AS beantragt_von,"
. "\n t1.eingetragen AS beantragt_am, t1.kommentar AS Begruendung_beantragt,"
. "\n t1.team_id AS beantragt_verein, 'offen' AS status,"
. "\n if (t2.spieltag_titel = '', CONCAT(t2.spieltag, '. Spieltag'), t2.spieltag_titel) AS Spieltag "
. "\n FROM #__sportsmanager_begegnung_historie AS t1"
. "\n LEFT JOIN #__sportsmanager_begegnung AS t2 ON t2.begegnung_id = t1.begegnung_id"
. "\n LEFT JOIN #__sportsmanager_team AS t3 ON t3.team_id = t2.heim_team_id"
. "\n LEFT JOIN #__sportsmanager_team AS t4 ON t4.team_id = t2.gast_team_id"
. "\n LEFT JOIN #__sportsmanager_veranstaltung AS t5 ON t5.veranstaltung_id = t4.veranstaltung_id"
. "\n LEFT JOIN #__sportsmanager_team AS t6 ON t6.team_id = t1.team_id"
. "\n LEFT JOIN #__sportsmanager_verein AS t7 ON t7.verein_id = t3.verein_id"
. "\n LEFT JOIN #__sportsmanager_verein AS t8 ON t8.verein_id = t4.verein_id"
. "\n WHERE t1.aktion = 2"
. "\n AND t1.begegnung_historie_id = '$beantragt_id'";
$beantragt = loadObjectList($db, $query);
$spielverlegung = $beantragt[0];
} else
if ($begegnung_id != 0){
$query = "SELECT"
. "\n CONCAT(t3.teamname, ' - ', t4.teamname, ' (', t5.bezeichnung, ')') AS Begegnung,"
. "\n t2.begegnung_id AS begegnung_id, t5.bezeichnung AS Liga, t3.teamname AS Heim,"
. "\n t4.teamname AS Gast, t2.zeitpunkt AS Termin_alt,"
. "\n t2.heim_team_id, t2.gast_team_id"
. "\n FROM #__sportsmanager_begegnung AS t2"
. "\n LEFT JOIN #__sportsmanager_team AS t3 ON t3.team_id = t2.heim_team_id"
. "\n LEFT JOIN #__sportsmanager_team AS t4 ON t4.team_id = t2.gast_team_id"
. "\n LEFT JOIN #__sportsmanager_veranstaltung AS t5 ON t5.veranstaltung_id = t4.veranstaltung_id"
. "\n WHERE t2.begegnung_id = '$begegnung_id'";
$beantragt = loadObjectList($db, $query);
$spielverlegung = $beantragt[0];
$spielverlegung->beantragt_id = "";
$spielverlegung->beantragt_von = "";
$spielverlegung->beantragt_von_id = 0;
$spielverlegung->beantragt_am = "";
$spielverlegung->Begruendung_beantragt = "";
$spielverlegung->beantragt_verein = "";
$spielverlegung->status = "offen";
}
if (empty($spielverlegung))
redirectSportsManagerURL('&task=admin_spielverlegungen', 'Wrong id');
$genehmigt = [];
if (!empty($genehmigt_id)){
$query = "SELECT t1.begegnung_historie_id AS genehmigt_id, t1.eingetragen AS genehmigt_am,"
. "\n t1.user_id AS genehmigt_von, t1.team_id as genehmigt_verein, t1.zeitpunkt AS Termin_neu"
. "\n FROM #__sportsmanager_begegnung_historie AS t1"
. "\n LEFT JOIN #__sportsmanager_begegnung AS t2 ON t2.begegnung_id = t1.begegnung_id"
. "\n WHERE t1.begegnung_historie_id = '$genehmigt_id'";
$genehmigt = loadObjectList($db, $query);
}
if (!empty($genehmigt)) {
$spielverlegung->genehmigt_id = $genehmigt[0]->genehmigt_id;
$spielverlegung->genehmigt_am = $genehmigt[0]->genehmigt_am;
$spielverlegung->Termin_neu = $genehmigt[0]->Termin_neu;
$spielverlegung->genehmigt_von = $genehmigt[0]->genehmigt_von;
$spielverlegung->genehmigt_verein = $genehmigt[0]->genehmigt_verein;
$spielverlegung->status = "genehmigt";
} else {
$spielverlegung->genehmigt_id = "";
$spielverlegung->genehmigt_am = "";
$spielverlegung->Termin_neu = "";
$spielverlegung->genehmigt_verein = "";
$spielverlegung->genehmigt_von = "";
}
$query = "SELECT nachname, vorname, email"
. "\n FROM #__sportsmanager_vereinsansprechpartner"
. "\n WHERE verein_id IN ('$spielverlegung->heim_verein_id', '$spielverlegung->gast_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;
}
$var['Heim'] = $spielverlegung->Heim;
$var['Gast'] = $spielverlegung->Gast;
$var['Liga'] = $spielverlegung->Liga;
$var['Spieltag'] = $spielverlegung->Spieltag;
$var['Antragsteller'] = $spielverlegung->beantragt_von;
$var['Alter_Termin'] = (new DateTime($spielverlegung->Termin_alt))->format("d.m.Y H:i");
$var['Neuer_Termin'] = $spielverlegung->Termin_neu ? (new DateTime($spielverlegung->Termin_neu))->format("d.m.Y H:i") : 'offen';
$var['Begruendung'] = $spielverlegung->Begruendung_beantragt;
$var['Absender'] = $Benutzer[0]->name;
$query = "SELECT * FROM #__sportsmanager_email_vorlagen WHERE vorlage = 'Spielverlegung';";
$vorlagen = loadObjectList($db, $query);
$template = $vorlagen[0]->email_text;
$cc = $vorlagen[0]->cc;
$bcc = $vorlagen[0]->bcc;
$subject = "Spielverlegung " . $spielverlegung->Heim . " gegen " . $spielverlegung->Gast;
$message = renderTemplate($template, $var);
$backtomail = "admin_spielverlegungen_mailen&id=" . $spielverlegung->begegnung_id;
$backtosender = "admin_spielverlegungen";
$vorlage = new stdClass();
$vorlage->id = $spielverlegung->spielverlegung_id;
$vorlage->name = 'Spielverlegung';
HTML_sportsmanager_admin::adminMailto($to,$cc,$bcc,$subject,$message,$backtomail,$backtosender,$vorlage);
}
function adminVerschiebenModi(): void function adminVerschiebenModi(): void
{ {
$db = getDatabase(); $db = getDatabase();
@@ -4601,6 +5257,9 @@ function adminEditVerschiebenModus(): void
$termine_minimal = $jInput->get('termine_minimal', 1, 'INT'); $termine_minimal = $jInput->get('termine_minimal', 1, 'INT');
$termine_maximal = $jInput->get('termine_maximal', 3, 'INT'); $termine_maximal = $jInput->get('termine_maximal', 3, 'INT');
$ablehnen = $jInput->get('ablehnen', 0, 'INT'); $ablehnen = $jInput->get('ablehnen', 0, 'INT');
$begruendung_erforderlich = $jInput->get('begruendung_erforderlich', 0, 'INT');
$vereine_berechtigt = $jInput->get('vereine_berechtigt', 0, 'INT');
$verband_berechtigt = $jInput->get('verband_berechtigt', 0, 'INT');
if ($termine_minimal > 0 && $termine_maximal > 0 && $termine_minimal > $termine_maximal) { if ($termine_minimal > 0 && $termine_maximal > 0 && $termine_minimal > $termine_maximal) {
$t = $termine_minimal; $t = $termine_minimal;
@@ -4609,7 +5268,11 @@ function adminEditVerschiebenModus(): void
} }
if ($id == 0) if ($id == 0)
$query = "INSERT INTO #__sportsmanager_verschieberegel (bezeichnung, initial_ohne_termin, keine_gegenvorschlaege, vorlaufzeit_tage, termine_minimal, termine_maximal, ablehnen) VALUES ('$bezeichnung', '$initial_ohne_termin', '$keine_gegenvorschlaege', '$vorlaufzeit_tage', '$termine_minimal', '$termine_maximal', '$ablehnen');"; $query = "INSERT INTO #__sportsmanager_verschieberegel"
. "\n (bezeichnung, initial_ohne_termin, keine_gegenvorschlaege, vorlaufzeit_tage, termine_minimal,"
. "\n termine_maximal, ablehnen, begruendung_erforderlich, vereine_berechtigt, verband_berechtigt)"
. "\n VALUES ('$bezeichnung', '$initial_ohne_termin', '$keine_gegenvorschlaege', '$vorlaufzeit_tage', '$termine_minimal',"
. "\n '$termine_maximal', '$ablehnen', '$begruendung_erforderlich', '$vereine_berechtigt', '$verband_berechtigt');";
else { else {
$query = "UPDATE #__sportsmanager_verschieberegel" $query = "UPDATE #__sportsmanager_verschieberegel"
. "\n SET bezeichnung = '$bezeichnung'," . "\n SET bezeichnung = '$bezeichnung',"
@@ -4618,7 +5281,10 @@ function adminEditVerschiebenModus(): void
. "\n vorlaufzeit_tage = '$vorlaufzeit_tage'," . "\n vorlaufzeit_tage = '$vorlaufzeit_tage',"
. "\n termine_minimal = '$termine_minimal'," . "\n termine_minimal = '$termine_minimal',"
. "\n termine_maximal = '$termine_maximal'," . "\n termine_maximal = '$termine_maximal',"
. "\n ablehnen = '$ablehnen'" . "\n ablehnen = '$ablehnen',"
. "\n begruendung_erforderlich = '$begruendung_erforderlich',"
. "\n vereine_berechtigt = '$vereine_berechtigt',"
. "\n verband_berechtigt = '$verband_berechtigt'"
. "\n WHERE verschieberegel_id = $id"; . "\n WHERE verschieberegel_id = $id";
} }
$db->setQuery($query); $db->setQuery($query);
@@ -6148,7 +6814,7 @@ function adminOrdnungsstrafeMailen(): void
$jInput = Factory::getContainer()->get(SiteApplication::class)->input; $jInput = Factory::getContainer()->get(SiteApplication::class)->input;
$id = $jInput->get('id', 0, 'INT'); $id = $jInput->get('id', 0, 'INT');
if (!benutzerZugriff("benutzerVeranstalterModerator")) if (!benutzerZugriff("mannschaftswettbewerb_aendern"))
keinZugriff(true); keinZugriff(true);
$query = "SELECT *, t2.verstoss, t2.paragraph_spo, t2.paragraph_go, t2.zusatztext, t10.regelwerk," $query = "SELECT *, t2.verstoss, t2.paragraph_spo, t2.paragraph_go, t2.zusatztext, t10.regelwerk,"
@@ -6302,7 +6968,7 @@ function adminOrdnungsstrafen(): void
$db = getDatabase(); $db = getDatabase();
$jInput = Factory::getContainer()->get(SiteApplication::class)->input; $jInput = Factory::getContainer()->get(SiteApplication::class)->input;
if (!benutzerZugriff("mannschaftswettbewerb_aendern")) if (!benutzerZugriff("mannschaftswettbewerb_aendern") && !benutzerVeranstaltungModerator())
keinZugriff(); keinZugriff();
$filter['saison'] = $jInput->get('filter_saison_id', 0, 'INT'); $filter['saison'] = $jInput->get('filter_saison_id', 0, 'INT');
@@ -6379,9 +7045,6 @@ function adminEditOrdnungsstrafe(): void
$db = getDatabase(); $db = getDatabase();
$jInput = Factory::getContainer()->get(SiteApplication::class)->input; $jInput = Factory::getContainer()->get(SiteApplication::class)->input;
if (!benutzerZugriff("mannschaftswettbewerb_aendern"))
keinZugriff();
$id = $jInput->get('id', 0, 'INT'); $id = $jInput->get('id', 0, 'INT');
$begegnungid = $jInput->get('begegnungid', 0, 'INT'); $begegnungid = $jInput->get('begegnungid', 0, 'INT');
$user_id = isExternalDatabase() ? 0 : (isJson() ? getUserID() : Factory::getContainer()->get(SiteApplication::class)->getIdentity()->id); $user_id = isExternalDatabase() ? 0 : (isJson() ? getUserID() : Factory::getContainer()->get(SiteApplication::class)->getIdentity()->id);
@@ -6430,6 +7093,9 @@ function adminEditOrdnungsstrafe(): void
$query .= "ORDER BY t1.regelwerke_id, t1.verstoesse_id;"; $query .= "ORDER BY t1.regelwerke_id, t1.verstoesse_id;";
$verstoesse = loadObjectList($db, $query); $verstoesse = loadObjectList($db, $query);
if (!benutzerZugriff("mannschaftswettbewerb_aendern") && !benutzerVeranstaltungModerator($begegnungen[0]->veranstaltung_id))
keinZugriff();
HTML_sportsmanager_admin::adminEditOrdnungsstrafe($row,$begegnungen[0],$verstoesse,$aussteller[0]); HTML_sportsmanager_admin::adminEditOrdnungsstrafe($row,$begegnungen[0],$verstoesse,$aussteller[0]);
} }
@@ -6438,7 +7104,7 @@ function adminEditOrdnungsstrafe(): void
$db = getDatabase(); $db = getDatabase();
$jInput = Factory::getContainer()->get(SiteApplication::class)->input; $jInput = Factory::getContainer()->get(SiteApplication::class)->input;
if (!benutzerZugriff("mannschaftswettbewerb_aendern")) if (!benutzerZugriff("mannschaftswettbewerb_aendern") && !benutzerVeranstaltungModerator())
keinZugriff(); keinZugriff();
if ($jInput->get('cancel', false, 'BOOL')) { if ($jInput->get('cancel', false, 'BOOL')) {
@@ -6519,7 +7185,7 @@ function adminEditOrdnungsstrafe(): void
$db = getDatabase(); $db = getDatabase();
$jInput = Factory::getContainer()->get(SiteApplication::class)->input; $jInput = Factory::getContainer()->get(SiteApplication::class)->input;
if (!benutzerZugriff("mannschaftswettbewerb_aendern")) if (!benutzerZugriff("mannschaftswettbewerb_aendern") && !benutzerVeranstaltungModerator())
keinZugriff(); keinZugriff();
$id = $jInput->get('id', 0, 'INT'); $id = $jInput->get('id', 0, 'INT');
@@ -6841,9 +7507,17 @@ function adminEditEmailVorlage($vorlage): void
$rows = loadObjectList($db, $query); $rows = loadObjectList($db, $query);
$row = $rows[0]; $row = $rows[0];
$vars = "Ansprechpartner, SPO, GO, Regelwerk, Verstoss, Begegnung, Liga, Spieltag, if ($vorlage == 'Ordnungsstrafe'){
<br>Spieldatum, Verein, Gebuehr, Zusatztext, Erweitert, Aussteller"; $vars = "Ansprechpartner, SPO, GO, Regelwerk, Verstoss, Begegnung, Liga, Spieltag,
HTML_sportsmanager_admin::adminEditEmailVorlage($vorlage,$row,$vars); <br>Spieldatum, Verein, Gebuehr, Zusatztext, Erweitert, Aussteller";
$back = 'admin_ordnungsstrafen';
}
if ($vorlage == 'Spielverlegung'){
$vars = "Ansprechpartner, Heim, Gast, Liga, Spieltag, Antragsteller,
<br>Alter_Termin, Neuer_Termin, Begruendung, Absender";
$back = 'admin_spielverlegungen';
}
HTML_sportsmanager_admin::adminEditEmailVorlage($vorlage,$row,$vars,$back);
} }
function adminSaveEmailVorlage(): void function adminSaveEmailVorlage(): void
@@ -6853,8 +7527,10 @@ function adminSaveEmailVorlage(): void
if (!benutzerZugriff("benutzerVeranstalterModerator")) if (!benutzerZugriff("benutzerVeranstalterModerator"))
keinZugriff(); keinZugriff();
$back = $db->escape(trim($jInput->get('back', '', 'RAW')));
if ($jInput->get('cancel', false, 'BOOL')) { if ($jInput->get('cancel', false, 'BOOL')) {
redirectSportsManagerURL('&task=admin_ordnungsstrafen'); redirectSportsManagerURL('&task=' . $back);
} }
$vorlage = $db->escape(trim($jInput->get('vorlage', '', 'RAW'))); $vorlage = $db->escape(trim($jInput->get('vorlage', '', 'RAW')));
@@ -6874,7 +7550,7 @@ function adminSaveEmailVorlage(): void
die($db->stderr(true)); die($db->stderr(true));
} }
redirectSportsManagerURL('&task=admin_ordnungsstrafen'); redirectSportsManagerURL('&task=' . $back);
} }
function adminEditVeranstaltung(): void function adminEditVeranstaltung(): void
@@ -8499,6 +9175,14 @@ function adminBegegnungen(): void
if (count($rows) < 1) die("Wrong id!"); if (count($rows) < 1) die("Wrong id!");
$veranstaltung = $rows[0]; $veranstaltung = $rows[0];
$query = "SELECT * FROM #__sportsmanager_verschieberegel WHERE verschieberegel_id = '$veranstaltung->verschieberegel_id'";
$verschieberegeln = loadObjectList($db, $query);
$verschieben_admin = 0;
if (!empty($verschieberegeln) && benutzerZugriff("verschieberegeln_aendern")){
$verschieben_admin = $verschieberegeln[0]->verband_berechtigt;
}
$modus_id = $veranstaltung->modus_id; $modus_id = $veranstaltung->modus_id;
$query = "SELECT * FROM #__sportsmanager_teamspiel_modus WHERE teamspiel_modus_id = $modus_id"; $query = "SELECT * FROM #__sportsmanager_teamspiel_modus WHERE teamspiel_modus_id = $modus_id";
$rows = loadObjectList($db, $query); $rows = loadObjectList($db, $query);
@@ -8565,7 +9249,7 @@ function adminBegegnungen(): void
. "\n WHERE t2.veranstaltung_id = $veranstaltungId" . "\n WHERE t2.veranstaltung_id = $veranstaltungId"
. "\n ORDER BY " . (($veranstaltung->unterteilung == 0 || $veranstaltung->unterteilung == 1) ? "t1.spieltag, t1.spiel_nr, " : "") . "t1.zeitpunkt, heim_name"; . "\n ORDER BY " . (($veranstaltung->unterteilung == 0 || $veranstaltung->unterteilung == 1) ? "t1.spieltag, t1.spiel_nr, " : "") . "t1.zeitpunkt, heim_name";
$rows = loadObjectList($db, $query); $rows = loadObjectList($db, $query);
HTML_sportsmanager_admin::adminBegegnungen($veranstaltung, $modus, $rows); HTML_sportsmanager_admin::adminBegegnungen($veranstaltung, $modus, $rows, $verschieben_admin);
} }
function adminEditBegegnung(): void function adminEditBegegnung(): void
@@ -11272,8 +11956,8 @@ function adminBegegnungenExportForm(): void
$dateiname = ""; $dateiname = "";
if ($export == "spieler") { if ($export == "spieler") {
$query = " $query = "
SELECT t5.bezeichnung AS Veranstaltung, t2.vereinsname AS Verein, t1.teamname AS Team, SELECT t5.bezeichnung AS Veranstaltung, t2.vereinsname AS Verein, t1.teamname AS Team, t4.spielernr AS Passnummer,
t4.spielernr AS Passnummer, t4.nachname AS Nachname, t4.vorname AS Vorname, t4.geburtsjahr AS Geburtsjahr, t4.nachname AS Nachname, t4.vorname AS Vorname, t4.geburtsjahr AS Geburtsjahr, LOWER(LEFT(geschlecht, 1)) AS Geschlecht,
t6.saisonbezeichnung AS Saison, t3.erster_spieltag AS Spielberechtigt_von, t3.letzter_spieltag AS Spielberechtigt_bis t6.saisonbezeichnung AS Saison, t3.erster_spieltag AS Spielberechtigt_von, t3.letzter_spieltag AS Spielberechtigt_bis
FROM #__sportsmanager_team AS t1 FROM #__sportsmanager_team AS t1
LEFT JOIN #__sportsmanager_veranstaltung AS t5 ON t1.veranstaltung_id = t5.veranstaltung_id LEFT JOIN #__sportsmanager_veranstaltung AS t5 ON t1.veranstaltung_id = t5.veranstaltung_id
@@ -11297,10 +11981,10 @@ function adminBegegnungenExportForm(): void
} }
$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.spieltag AS Spieltag_Nr, t1.spiel_nr AS Spiel_Nr,
t1.spieltag AS Spieltag_Nr, t1.spiel_nr AS Spiel_Nr, t1.heim_punkte AS Heim_Tore, t1.zeitpunkt AS Spielstart, '' AS verlegt_auf, t2.teamname AS Heim, t3.teamname AS Gast,
t1.gast_punkte AS Gast_Tore, t1.heim_spielpunkte AS Heim_Satzpunkte, t1.heim_punkte AS Heim_Tore, t1.gast_punkte AS Gast_Tore,
t1.gast_spielpunkte AS Gast_Satzpunkte t1.heim_spielpunkte AS Heim_Satzpunkte, t1.gast_spielpunkte AS Gast_Satzpunkte
FROM #__sportsmanager_begegnung AS t1 FROM #__sportsmanager_begegnung AS t1
LEFT JOIN #__sportsmanager_team AS t2 ON t1.heim_team_id = t2.team_id LEFT JOIN #__sportsmanager_team AS t2 ON t1.heim_team_id = t2.team_id
LEFT JOIN #__sportsmanager_team AS t3 ON t1.gast_team_id = t3.team_id LEFT JOIN #__sportsmanager_team AS t3 ON t1.gast_team_id = t3.team_id
@@ -11309,9 +11993,39 @@ function adminBegegnungenExportForm(): void
WHERE t4.veranstaltung_id = " . $veranstaltungId . " WHERE t4.veranstaltung_id = " . $veranstaltungId . "
ORDER BY t4.veranstaltung_id, t1.spieltag, t1.spiel_nr, t1.zeitpunkt; ORDER BY t4.veranstaltung_id, t1.spieltag, t1.spiel_nr, t1.zeitpunkt;
"; ";
$rows = loadObjectList($db, $query);
// Spielverlegungen
foreach ($rows as $value) {
$rows = loadObjectList($db, $query); $beantragt = [];
$dateiname = "Spielplan " . $veranstaltung->bezeichnung; $genehmigt = [];
// Spielverlegung vorgeschlagen
$query = "
SELECT t1.zeitpunkt AS Termin_alt
FROM #__sportsmanager_begegnung_historie AS t1
WHERE begegnung_id = " . $value->ID . "
AND aktion IN (2)
ORDER BY eingetragen ASC LIMIT 1;
";
$beantragt = loadObjectList($db, $query);
if (!empty($beantragt))
$value->Spielstart = $beantragt[0]->Termin_alt;
// Spielverlegung vorgeschlagen
$query = "
SELECT t1.zeitpunkt AS Termin_neu
FROM #__sportsmanager_begegnung_historie AS t1
WHERE begegnung_id = " . $value->ID . "
AND aktion IN (1)
ORDER BY eingetragen DESC LIMIT 1;
";
$genehmigt = loadObjectList($db, $query);
if (!empty($genehmigt))
$value->verlegt_auf = $genehmigt[0]->Termin_neu;
}
$dateiname = "Spielplan " . $veranstaltung->bezeichnung;
} }
if (!isset($rows) or count($rows) == 0) { if (!isset($rows) or count($rows) == 0) {
@@ -11332,20 +12046,63 @@ function adminBegegnungenExportForm(): void
foreach ($rows as $value) { foreach ($rows as $value) {
// letze Änderung $Bestaetigt = [];
$Bestaetigt = [];
$Moderator = [];
// Endergebnis vorgeschlagen
$query = " $query = "
SELECT t1.eingetragen AS gespeichert_um, t2.name AS gespeichert_von SELECT t1.eingetragen AS gespeichert_um, t2.name AS gespeichert_von
FROM #__sportsmanager_begegnung_historie AS t1 FROM #__sportsmanager_begegnung_historie AS t1
LEFT JOIN #__users AS t2 ON t1.user_id = t2.id LEFT JOIN #__users AS t2 ON t1.user_id = t2.id
WHERE begegnung_id = " . $value->ID . " WHERE begegnung_id = " . $value->ID . "
AND aktion IN (5,6,7,8,9) AND aktion IN (6)
ORDER BY eingetragen DESC ORDER BY eingetragen DESC LIMIT 1;
LIMIT 1;
"; ";
$Bestaetigt = loadObjectList($db, $query);
if (!empty($Bestaetigt)) {
$value->vorgeschlagen_um = $Bestaetigt[0]->gespeichert_um;
$value->vorgeschlagen_von = $Bestaetigt[0]->gespeichert_von;
} else {
$value->vorgeschlagen_um = $Bestaetigt[0]->gespeichert_um;
$value->vorgeschlagen_von = $Bestaetigt[0]->gespeichert_von;
}
$letzterEintrag = loadObjectList($db, $query); // Endergebnis bestätigen Gegner
$value->gespeichert_um = $letzterEintrag[0]->gespeichert_um; $query = "
$value->gespeichert_von = $letzterEintrag[0]->gespeichert_von; SELECT t1.eingetragen AS gespeichert_um, t2.name AS gespeichert_von
FROM #__sportsmanager_begegnung_historie AS t1
LEFT JOIN #__users AS t2 ON t1.user_id = t2.id
WHERE begegnung_id = " . $value->ID . "
AND aktion IN (7)
ORDER BY eingetragen DESC LIMIT 1;
";
$Bestaetigt = loadObjectList($db, $query);
if (!empty($Bestaetigt)) {
$value->bestaetigt_um = $Bestaetigt[0]->gespeichert_um;
$value->bestaetigt_von = $Bestaetigt[0]->gespeichert_von;
} else {
$value->bestaetigt_um = $Bestaetigt[0]->gespeichert_um;
$value->bestaetigt_von = $Bestaetigt[0]->gespeichert_von;
}
// Endergebnis bestätigen Moderator
$query = "
SELECT t1.eingetragen AS gespeichert_um, t2.name AS gespeichert_von
FROM #__sportsmanager_begegnung_historie AS t1
LEFT JOIN #__users AS t2 ON t1.user_id = t2.id
WHERE begegnung_id = " . $value->ID . "
AND aktion IN (8)
ORDER BY eingetragen DESC LIMIT 1;
";
$Moderator = loadObjectList($db, $query);
if (!empty($Moderator)) {
$value->moderator_um = $Moderator[0]->gespeichert_um;
$value->moderator_von = $Moderator[0]->gespeichert_von;
} else {
$value->moderator_um = $Moderator[0]->gespeichert_um;
$value->moderator_von = $Moderator[0]->gespeichert_von;
}
// Spielbericht // Spielbericht
$query = " $query = "
@@ -5516,6 +5516,31 @@ function updateDatabase(): void
} }
} }
if ($datenbank_version < 115) {
// Erweiterung Tabelle #__sportsmanager_verschieberegel
$query = "ALTER TABLE `#__sportsmanager_verschieberegel`"
."\n ADD COLUMN IF NOT EXISTS `begruendung_erforderlich` INT(1) NOT NULL DEFAULT 0 AFTER `ablehnen`,"
."\n ADD COLUMN IF NOT EXISTS `vereine_berechtigt` INT(1) NOT NULL DEFAULT 1 AFTER `begruendung_erforderlich`,"
."\n ADD COLUMN IF NOT EXISTS `verband_berechtigt` INT(1) NOT NULL DEFAULT 0 AFTER `vereine_berechtigt`;";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$query = "INSERT IGNORE INTO `#__sportsmanager_email_vorlagen` (`email_vorlagen_id`, `vorlage`) VALUES (NULL, 'Spielverlegung');";
$db->setQuery($query);
if (!$db->execute()) { die($db->stderr(true)); }
$query = "UPDATE #__sportsmanager_einstellungen"
. "\n SET wert = '115'"
. "\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";
@@ -215,6 +215,24 @@ if ($task == "spielerbild") {
case 'admin_verschieben_modus_remove': case 'admin_verschieben_modus_remove':
adminRemoveVerschiebenModus(); adminRemoveVerschiebenModus();
break; break;
case 'admin_spielverlegungen';
adminSpielverlegungen();
break;
case 'admin_spielverlegung_edit';
adminEditSpielverlegung();
break;
case 'admin_spielverlegung_save';
adminSaveSpielverlegung();
break;
case 'admin_spielverlegung_remove';
adminRemoveSpielverlegung();
break;
case 'admin_spielverlegungen_export':
adminExportSpielverlegungen();
break;
case 'admin_spielverlegung_mailen';
adminSpielverlegungMailen();
break;
case 'admin_kategorien': case 'admin_kategorien':
adminKategorien(); adminKategorien();
break; break;
@@ -398,6 +416,9 @@ if ($task == "spielerbild") {
case 'admin_ordnungsstrafen_vorlage': case 'admin_ordnungsstrafen_vorlage':
adminEditEmailVorlage('Ordnungsstrafe'); adminEditEmailVorlage('Ordnungsstrafe');
break; break;
case 'admin_spielverlegung_vorlage';
adminEditEmailVorlage('Spielverlegung');
break;
case 'admin_email_vorlage_save': case 'admin_email_vorlage_save':
adminSaveEmailVorlage(); adminSaveEmailVorlage();
break; break;
@@ -1038,6 +1059,8 @@ if ($task == "spielerbild") {
adminTermine(0); adminTermine(0);
break; break;
} }
} else if ($content == 'spielverlegungen') {
spielverlegungen();
} else if ($content == 'login') { } else if ($content == 'login') {
userAuth(); userAuth();
} else if ($content == 'login_refresh') { } else if ($content == 'login_refresh') {
@@ -2479,7 +2502,7 @@ function begegnungenAnzeigen($veranstaltung, $verein_id, $spielort_id, $zeitfens
. "\n (SELECT vorschlagendes_team_id FROM #__sportsmanager_unbestaetigtes_ergebnis AS tt1 WHERE tt1.begegnung_id = t1.begegnung_id LIMIT 1) AS unbestaetigtes_ergebnis_team_id," . "\n (SELECT vorschlagendes_team_id FROM #__sportsmanager_unbestaetigtes_ergebnis AS tt1 WHERE tt1.begegnung_id = t1.begegnung_id LIMIT 1) AS unbestaetigtes_ergebnis_team_id,"
. "\n (SELECT IF(aktion NOT IN (0, 3, 4), NULL, tt1.eingetragen) FROM #__sportsmanager_begegnung_historie AS tt1 USE INDEX (begegnung_id) WHERE tt1.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verlegung_eingetragen," . "\n (SELECT IF(aktion NOT IN (0, 3, 4), NULL, tt1.eingetragen) FROM #__sportsmanager_begegnung_historie AS tt1 USE INDEX (begegnung_id) WHERE tt1.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verlegung_eingetragen,"
. "\n (SELECT verantwortlich_team_id FROM #__sportsmanager_begegnung_historie AS tt1 USE INDEX (begegnung_id) WHERE tt1.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verantwortlich_team_id," . "\n (SELECT verantwortlich_team_id FROM #__sportsmanager_begegnung_historie AS tt1 USE INDEX (begegnung_id) WHERE tt1.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verantwortlich_team_id,"
. "\n IF(NOT ISNULL(t6.verschieberegel_id) AND (t6.vorlaufzeit_tage = 0 OR DATEDIFF(zeitpunkt, CURDATE()) >= t6.vorlaufzeit_tage), 1, 0) AS verschieberegel_erfuellt" . "\n IF(NOT ISNULL(t6.verschieberegel_id) AND t6.vereine_berechtigt = 1 AND (t6.vorlaufzeit_tage = 0 OR DATEDIFF(zeitpunkt, CURDATE()) >= t6.vorlaufzeit_tage), 1, 0) AS verschieberegel_erfuellt"
. "\n FROM #__sportsmanager_begegnung AS t1" . "\n FROM #__sportsmanager_begegnung AS t1"
. "\n LEFT JOIN #__sportsmanager_spielort AS s1 ON t1.spielort_id = s1.spielort_id" . "\n LEFT JOIN #__sportsmanager_spielort AS s1 ON t1.spielort_id = s1.spielort_id"
. "\n LEFT JOIN #__sportsmanager_team AS t2 ON t1.heim_team_id = t2.team_id" . "\n LEFT JOIN #__sportsmanager_team AS t2 ON t1.heim_team_id = t2.team_id"
@@ -2499,7 +2522,7 @@ function begegnungenAnzeigen($veranstaltung, $verein_id, $spielort_id, $zeitfens
. "\n (SELECT vorschlagendes_team_id FROM #__sportsmanager_unbestaetigtes_ergebnis AS tt1 WHERE tt1.begegnung_id = t1.begegnung_id LIMIT 1) AS unbestaetigtes_ergebnis_team_id," . "\n (SELECT vorschlagendes_team_id FROM #__sportsmanager_unbestaetigtes_ergebnis AS tt1 WHERE tt1.begegnung_id = t1.begegnung_id LIMIT 1) AS unbestaetigtes_ergebnis_team_id,"
. "\n (SELECT IF(aktion NOT IN (0, 3, 4), NULL, tt1.eingetragen) FROM #__sportsmanager_begegnung_historie AS tt1 USE INDEX (begegnung_id) WHERE tt1.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verlegung_eingetragen," . "\n (SELECT IF(aktion NOT IN (0, 3, 4), NULL, tt1.eingetragen) FROM #__sportsmanager_begegnung_historie AS tt1 USE INDEX (begegnung_id) WHERE tt1.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verlegung_eingetragen,"
. "\n (SELECT verantwortlich_team_id FROM #__sportsmanager_begegnung_historie AS tt1 USE INDEX (begegnung_id) WHERE tt1.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verantwortlich_team_id," . "\n (SELECT verantwortlich_team_id FROM #__sportsmanager_begegnung_historie AS tt1 USE INDEX (begegnung_id) WHERE tt1.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verantwortlich_team_id,"
. "\n IF(NOT ISNULL(t6.verschieberegel_id) AND (t6.vorlaufzeit_tage = 0 OR DATEDIFF(zeitpunkt, CURDATE()) >= t6.vorlaufzeit_tage), 1, 0) AS verschieberegel_erfuellt" . "\n IF(NOT ISNULL(t6.verschieberegel_id) AND t6.vereine_berechtigt = 1 AND (t6.vorlaufzeit_tage = 0 OR DATEDIFF(zeitpunkt, CURDATE()) >= t6.vorlaufzeit_tage), 1, 0) AS verschieberegel_erfuellt"
. "\n FROM #__sportsmanager_begegnung AS t1" . "\n FROM #__sportsmanager_begegnung AS t1"
. "\n LEFT JOIN #__sportsmanager_spielort AS s1 ON t1.spielort_id = s1.spielort_id" . "\n LEFT JOIN #__sportsmanager_spielort AS s1 ON t1.spielort_id = s1.spielort_id"
. "\n LEFT JOIN #__sportsmanager_team AS t2 ON t1.heim_team_id = t2.team_id" . "\n LEFT JOIN #__sportsmanager_team AS t2 ON t1.heim_team_id = t2.team_id"
@@ -2520,7 +2543,7 @@ function begegnungenAnzeigen($veranstaltung, $verein_id, $spielort_id, $zeitfens
. "\n (SELECT vorschlagendes_team_id FROM #__sportsmanager_unbestaetigtes_ergebnis AS tt1 WHERE tt1.begegnung_id = t1.begegnung_id LIMIT 1) AS unbestaetigtes_ergebnis_team_id," . "\n (SELECT vorschlagendes_team_id FROM #__sportsmanager_unbestaetigtes_ergebnis AS tt1 WHERE tt1.begegnung_id = t1.begegnung_id LIMIT 1) AS unbestaetigtes_ergebnis_team_id,"
. "\n (SELECT IF(aktion NOT IN (0, 3, 4), NULL, tt1.eingetragen) FROM #__sportsmanager_begegnung_historie AS tt1 USE INDEX (begegnung_id) WHERE tt1.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verlegung_eingetragen," . "\n (SELECT IF(aktion NOT IN (0, 3, 4), NULL, tt1.eingetragen) FROM #__sportsmanager_begegnung_historie AS tt1 USE INDEX (begegnung_id) WHERE tt1.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verlegung_eingetragen,"
. "\n (SELECT verantwortlich_team_id FROM #__sportsmanager_begegnung_historie AS tt1 USE INDEX (begegnung_id) WHERE tt1.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verantwortlich_team_id," . "\n (SELECT verantwortlich_team_id FROM #__sportsmanager_begegnung_historie AS tt1 USE INDEX (begegnung_id) WHERE tt1.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verantwortlich_team_id,"
. "\n IF(NOT ISNULL(t6.verschieberegel_id) AND (t6.vorlaufzeit_tage = 0 OR DATEDIFF(zeitpunkt, CURDATE()) >= t6.vorlaufzeit_tage), 1, 0) AS verschieberegel_erfuellt" . "\n IF(NOT ISNULL(t6.verschieberegel_id) AND t6.vereine_berechtigt = 1 AND (t6.vorlaufzeit_tage = 0 OR DATEDIFF(zeitpunkt, CURDATE()) >= t6.vorlaufzeit_tage), 1, 0) AS verschieberegel_erfuellt"
. "\n FROM #__sportsmanager_begegnung AS t1" . "\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 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_team AS t3 ON t1.gast_team_id = t3.team_id"
@@ -2547,7 +2570,7 @@ function begegnungenAnzeigen($veranstaltung, $verein_id, $spielort_id, $zeitfens
. "\n (SELECT IF(aktion NOT IN (0, 3, 4), NULL, tt1.eingetragen) FROM #__sportsmanager_begegnung_historie AS tt1 USE INDEX (begegnung_id) WHERE tt1.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verlegung_eingetragen," . "\n (SELECT IF(aktion NOT IN (0, 3, 4), NULL, tt1.eingetragen) FROM #__sportsmanager_begegnung_historie AS tt1 USE INDEX (begegnung_id) WHERE tt1.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verlegung_eingetragen,"
. "\n (SELECT verantwortlich_team_id FROM #__sportsmanager_begegnung_historie AS tt1 USE INDEX (begegnung_id) WHERE tt1.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verantwortlich_team_id," . "\n (SELECT verantwortlich_team_id FROM #__sportsmanager_begegnung_historie AS tt1 USE INDEX (begegnung_id) WHERE tt1.begegnung_id = t1.begegnung_id ORDER BY begegnung_historie_id DESC LIMIT 1) AS verantwortlich_team_id,"
// //
. "\n IF(NOT ISNULL(t6.verschieberegel_id) AND (t6.vorlaufzeit_tage = 0 OR DATEDIFF(zeitpunkt, CURDATE()) >= t6.vorlaufzeit_tage), 1, 0) AS verschieberegel_erfuellt" . "\n IF(NOT ISNULL(t6.verschieberegel_id) AND t6.vereine_berechtigt = 1 AND (t6.vorlaufzeit_tage = 0 OR DATEDIFF(zeitpunkt, CURDATE()) >= t6.vorlaufzeit_tage), 1, 0) AS verschieberegel_erfuellt"
. "\n FROM #__sportsmanager_begegnung AS t1" . "\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 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_team AS t3 ON t1.gast_team_id = t3.team_id"
@@ -4094,6 +4117,105 @@ function spielort(): void
HTML_sportsmanager::iCalBegegnungen(SportsManagerURL('&task=spielort_begegnungen_ical&id=' . $id)); HTML_sportsmanager::iCalBegegnungen(SportsManagerURL('&task=spielort_begegnungen_ical&id=' . $id));
} }
function spielverlegungen(): void
{
$db = getDatabase();
global $params;
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
$filter_status = $jInput->get('filter_status', '', 'RAW');
if (empty($filter_status))
$filter_status = "offen,genehmigt";
$query = "SELECT saison_id, saisonbezeichnung"
. "\n FROM #__sportsmanager_saison"
. "\n ORDER BY saisonbezeichnung DESC LIMIT 1";
$saisons = loadObjectList($db, $query);
$filter_saison_id = $saisons[0]->saison_id;
$query = "SELECT t1.begegnung_historie_id AS beantragt_id, t1.begegnung_id AS begegnung_id,"
. "\n t1.eingetragen AS beantragt, t1.kommentar AS Begruendung_beantragt, t1.zeitpunkt AS Termin_alt,"
. "\n t1.team_id as beantragt_verein, t5.bezeichnung AS Liga,"
. "\n t3.teamname AS Heim, t4.teamname AS Gast, t6.teamname AS beantragt_von, 'offen' AS status"
. "\n FROM #__sportsmanager_begegnung_historie AS t1"
. "\n LEFT JOIN #__sportsmanager_begegnung AS t2 ON t2.begegnung_id = t1.begegnung_id"
. "\n LEFT JOIN #__sportsmanager_team AS t3 ON t3.team_id = t2.heim_team_id"
. "\n LEFT JOIN #__sportsmanager_team AS t4 ON t4.team_id = t2.gast_team_id"
. "\n LEFT JOIN #__sportsmanager_veranstaltung AS t5 ON t5.veranstaltung_id = t4.veranstaltung_id"
. "\n LEFT JOIN #__sportsmanager_team AS t6 ON t6.team_id = t1.team_id"
. "\n WHERE t1.aktion = 2"
. "\n AND t5.saison_id = '$filter_saison_id'"
. kategorieFilter("AND t5.kategorie IN")
. "\n ORDER BY t1.begegnung_id, t1.zeitpunkt ASC;";
$spielverlegungen = loadObjectList($db, $query);
$last_id = "";
foreach ($spielverlegungen as $key => $spielverlegung) {
if ($spielverlegung->begegnung_id == $last_id) {
unset($spielverlegungen[$key]);
} else {
$last_id = $spielverlegung->begegnung_id;
$query = "SELECT t1.begegnung_historie_id AS genehmigt_id, t1.eingetragen AS genehmigt,"
. "\n t1.user_id AS genehmigt_von, t1.team_id as genehmigt_verein, t1.zeitpunkt AS Termin_neu"
. "\n FROM #__sportsmanager_begegnung_historie AS t1"
. "\n LEFT JOIN #__sportsmanager_begegnung AS t2 ON t2.begegnung_id = t1.begegnung_id"
. "\n WHERE t1.aktion = 1 AND t1.begegnung_id = $last_id"
. "\n ORDER BY t1.zeitpunkt DESC LIMIT 1;";
$genehmigt = loadObjectList($db, $query);
if (!empty($genehmigt)) {
$spielverlegung->genehmigt_id = $genehmigt[0]->genehmigt_id;
$spielverlegung->genehmigt = $genehmigt[0]->genehmigt;
$spielverlegung->Termin_neu = $genehmigt[0]->Termin_neu;
$spielverlegung->genehmigt_von = $genehmigt[0]->genehmigt_von;
$spielverlegung->genehmigt_verein = $genehmigt[0]->genehmigt_verein;
$spielverlegung->status = "genehmigt";
} else {
$spielverlegung->genehmigt_id = "";
$spielverlegung->genehmigt = "";
$spielverlegung->Termin_neu = "";
$spielverlegung->genehmigt_von = "";
$spielverlegung->genehmigt_verein = "";
}
$query = "SELECT t1.begegnung_historie_id AS abgelehnt_id, t1.eingetragen AS abgelehnt,"
. "\n t1.user_id AS abgelehnt_von, t1.team_id as abgelehnt_verein,"
. "\n t1.kommentar AS Begruendung_abgelehnt"
. "\n FROM #__sportsmanager_begegnung_historie AS t1"
. "\n LEFT JOIN #__sportsmanager_begegnung AS t2 ON t2.begegnung_id = t1.begegnung_id"
. "\n WHERE t1.aktion = 10 AND t1.begegnung_id = $last_id"
. "\n ORDER BY t1.zeitpunkt DESC LIMIT 1;";
$abgelehnt = loadObjectList($db, $query);
if (!empty($abgelehnt)) {
$spielverlegung->abgelehnt_id = $abgelehnt[0]->abgelehnt_id;
$spielverlegung->abgelehnt = $abgelehnt[0]->abgelehnt;
$spielverlegung->abgelehnt_von = $abgelehnt[0]->abgelehnt_von;
$spielverlegung->abgelehnt_verein = $abgelehnt[0]->abgelehnt_verein;
$spielverlegung->Begruendung_abgelehnt = $abgelehnt[0]->Begruendung_abgelehnt;
$spielverlegung->status = "abgelehnt";
} else {
$spielverlegung->abgelehnt_id = "";
$spielverlegung->abgelehnt = "";
$spielverlegung->abgelehnt_von = "";
$spielverlegung->abgelehnt_verein = "";
$spielverlegung->Begruendung_abgelehnt = "";
}
}
}
$spielverlegungen = array_values($spielverlegungen);
if (isJson()) {
echo json_encode($spielverlegungen);
} else {
HTML_sportsmanager::spielverlegungen($params->get('titel'), $params->get('beschreibung'), $spielverlegungen);
}
}
function begegnungSpielplan($teamansicht = false): void function begegnungSpielplan($teamansicht = false): void
{ {
$db = getDatabase(); $db = getDatabase();
@@ -4280,7 +4402,11 @@ function begegnungVerlegenForm(): void
die("Missing id!"); die("Missing id!");
$aus_uebersicht = $jInput->get('aus_uebersicht', 0, 'INT'); $aus_uebersicht = $jInput->get('aus_uebersicht', 0, 'INT');
$query = "SELECT #__sportsmanager_veranstaltung.*, initial_ohne_termin, keine_gegenvorschlaege, vorlaufzeit_tage, termine_minimal, termine_maximal, ablehnen FROM #__sportsmanager_veranstaltung LEFT JOIN #__sportsmanager_verschieberegel USING (verschieberegel_id) WHERE veranstaltung_id = $veranstaltungid"; $query = "SELECT #__sportsmanager_veranstaltung.*, initial_ohne_termin, keine_gegenvorschlaege, vorlaufzeit_tage,"
. "\n termine_minimal, termine_maximal, ablehnen, begruendung_erforderlich"
. "\n FROM #__sportsmanager_veranstaltung LEFT JOIN #__sportsmanager_verschieberegel USING (verschieberegel_id)"
. "\n WHERE veranstaltung_id = $veranstaltungid";
$rows = loadObjectList($db, $query); $rows = loadObjectList($db, $query);
if (count($rows) < 1) if (count($rows) < 1)
die("Wrong id!"); die("Wrong id!");
@@ -4364,6 +4490,7 @@ function begegnungVerlegen(): void
$aus_uebersicht = $jInput->get('aus_uebersicht', 0, 'INT'); $aus_uebersicht = $jInput->get('aus_uebersicht', 0, 'INT');
$angefordert = $jInput->get('anfordern', false, 'BOOL'); $angefordert = $jInput->get('anfordern', false, 'BOOL');
$abgelehnt = $jInput->get('ablehnen', false, 'BOOL'); $abgelehnt = $jInput->get('ablehnen', false, 'BOOL');
$verlegungsgrund = $jInput->get('verlegungsgrund', '', 'RAW');
if ($jInput->get('cancel', false, 'BOOL')) { if ($jInput->get('cancel', false, 'BOOL')) {
redirectSportsManagerURL('&task=' . ($aus_uebersicht ? 'veranstaltungen' : 'veranstaltung') . '&veranstaltungid=' . $veranstaltungId); redirectSportsManagerURL('&task=' . ($aus_uebersicht ? 'veranstaltungen' : 'veranstaltung') . '&veranstaltungid=' . $veranstaltungId);
@@ -4431,7 +4558,7 @@ function begegnungVerlegen(): void
$aktueller_zeitpunkt = date('Y-m-d H:i:s'); $aktueller_zeitpunkt = date('Y-m-d H:i:s');
if (count($verlegen_aktionen) == 0 || $verlegen_aktionen[0]->aktion == 1 || $verlegen_aktionen[0]->aktion == 5 || $verlegen_aktionen[0]->aktion == 10) { if (count($verlegen_aktionen) == 0 || $verlegen_aktionen[0]->aktion == 1 || $verlegen_aktionen[0]->aktion == 5 || $verlegen_aktionen[0]->aktion == 10) {
$query = "INSERT INTO #__sportsmanager_begegnung_historie (begegnung_id, aktion, zeitpunkt, user_id, team_id, verantwortlich_team_id, kommentar, eingetragen)" $query = "INSERT INTO #__sportsmanager_begegnung_historie (begegnung_id, aktion, zeitpunkt, user_id, team_id, verantwortlich_team_id, kommentar, eingetragen)"
. "\n VALUES ($id, 2, '$begegnung->zeitpunkt', NULL, NULL, NULL, NULL, '$aktueller_zeitpunkt');"; . "\n VALUES ($id, 2, '$begegnung->zeitpunkt', '$user_id', '$vorschlagendes_team_id', '" . ($vorschlagendes_team_id == $begegnung->heim_team_id ? $begegnung->gast_team_id : $begegnung->heim_team_id) . "', '$verlegungsgrund', '$aktueller_zeitpunkt');";
$db->setQuery($query); $db->setQuery($query);
if (!$db->execute()) { if (!$db->execute()) {
abortWithError($db->stderr(true)); abortWithError($db->stderr(true));
@@ -4440,7 +4567,7 @@ function begegnungVerlegen(): void
if ($angefordert) { if ($angefordert) {
$query = "INSERT INTO #__sportsmanager_begegnung_historie (begegnung_id, aktion, zeitpunkt, user_id, team_id, verantwortlich_team_id, kommentar, eingetragen)" $query = "INSERT INTO #__sportsmanager_begegnung_historie (begegnung_id, aktion, zeitpunkt, user_id, team_id, verantwortlich_team_id, kommentar, eingetragen)"
. "\n VALUES ($id, 3, NULL, '$user_id', '$vorschlagendes_team_id', '" . ($vorschlagendes_team_id == $begegnung->heim_team_id ? $begegnung->gast_team_id : $begegnung->heim_team_id) . "', NULL, '$aktueller_zeitpunkt');"; . "\n VALUES ($id, 3, NULL, '$user_id', '$vorschlagendes_team_id', '" . ($vorschlagendes_team_id == $begegnung->heim_team_id ? $begegnung->gast_team_id : $begegnung->heim_team_id) . "', '$verlegungsgrund', '$aktueller_zeitpunkt');";
$db->setQuery($query); $db->setQuery($query);
if (!$db->execute()) { if (!$db->execute()) {
abortWithError($db->stderr(true)); abortWithError($db->stderr(true));
@@ -185,17 +185,45 @@ function individualwettbewerbFilter($prefix): string
function kategorieFilter($prefix, $suffix = ""): string function kategorieFilter($prefix, $suffix = ""): string
{ {
global $params; global $params;
$kategorien = explode(",", $params->get('kategorien')); $kategorien = explode(",", $params->get('kategorien'));
$filter = ""; $result = [];
foreach ($kategorien as $s) {
$kategorie = intval(trim($s)); foreach ($kategorien as $item) {
if ($kategorie == 0) $item = trim($item);
continue; if ($item === '') continue;
if (!empty($filter))
$filter .= ", "; // Prüfen, ob es ein Bereich ist
$filter .= $kategorie; if (strpos($item, '-') !== false) {
$rangeParts = explode('-', $item);
// genau 2 Teile für einen gültigen Bereich
if (count($rangeParts) !== 2) continue;
$start = intval(trim($rangeParts[0]));
$end = intval(trim($rangeParts[1]));
if ($start <= 0 || $end <= 0 || $start > $end) continue;
for ($i = $start; $i <= $end; $i++) {
$result[$i] = true; // Duplikate vermeiden
}
} else {
$num = intval($item);
if ($num > 0) {
$result[$num] = true;
}
}
} }
return empty($filter) ? "" : (" " . $prefix . " (" . $filter . ") " . $suffix);
if (empty($result)) {
return "";
}
$filter = array_keys($result);
sort($filter, SORT_NUMERIC);
return " $prefix (" . implode(", ", $filter) . ") $suffix";
} }
function turnierFilter($prefix): string function turnierFilter($prefix): string
@@ -24,6 +24,7 @@
<option value="vereine"><![CDATA[COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_CLUBS]]></option> <option value="vereine"><![CDATA[COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_CLUBS]]></option>
<option value="spielorte"><![CDATA[COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_VENUES]]></option> <option value="spielorte"><![CDATA[COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_VENUES]]></option>
<option value="termine"><![CDATA[COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_APPOINTMENTS]]></option> <option value="termine"><![CDATA[COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_APPOINTMENTS]]></option>
<option value="spielverlegungen"><![CDATA[COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_MATCH_RESCHEDULING]]></option>
</field> </field>
<field name="titel" <field name="titel"
type="text" type="text"
@@ -3929,6 +3929,76 @@ static function spielort($spielort, $begegnung_zeitpunkt, $aktuelle_teams, $vorh
} }
} }
static function spielverlegungen($titel, $beschreibung, $rows): void
{
global $params;
if (!empty($titel)) { ?>
<style>td{padding: 3px;}</style>
<div
class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"><?php echo htmlentities_utf8($titel); ?></div><?php }
if (!empty($beschreibung)) {
?>
<div class="uk-overflow-auto">
<table class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr>
<td><?php echo str_contains($beschreibung, ">") ? $beschreibung : htmlentities_utf8($beschreibung); ?></td>
</tr>
</table>
</div>
<?php
}
?>
<div class="uk-overflow-auto">
<table class="uk-table-shrink contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>" style='width: 1000px;'>
<tr class="sectiontableheader<?php echo $params->get('pageclass_sfx'); ?>">
<th nowrap style='text-align: center; width: 180px;'><STRONG><?php echo Text::_('COM_SPORTSMANAGER_COMPETITION'); ?></STRONG></th>
<th nowrap style='text-align: center; width: 200px;'><STRONG><?php echo Text::_('COM_SPORTSMANAGER_MATCH'); ?></STRONG></th>
<th nowrap style='text-align: center; width: 150px;'><STRONG><?php echo Text::_('COM_SPORTSMANAGER_OLD_DATE'); ?></STRONG></th>
<th nowrap style='text-align: center; width: 150px;'><STRONG><?php echo Text::_('COM_SPORTSMANAGER_NEW_DATE'); ?></STRONG></th>
<th nowrap style='text-align: left; width: 280px;'><STRONG><?php echo Text::_('COM_SPORTSMANAGER_COMMENT'); ?></STRONG></th>
</tr>
<?php
if (count($rows) > 0) {
$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;'>
<?php echo htmlentities_utf8($row->Liga); ?>
</td>
<td nowrap style='text-align: center;'>
<?php
if ($row->Heim == $row->beantragt_von)
echo "<u>" . htmlentities_utf8($row->Heim) . "</u>";
else
echo htmlentities_utf8($row->Heim);
echo "<br>";
if ($row->Gast == $row->beantragt_von)
echo "<u>" . htmlentities_utf8($row->Gast) . "</u>";
else
echo htmlentities_utf8($row->Gast);
?>
</td>
<td nowrap style='text-align: center;'>
<?php echo str_replace(" ", "<br>", date('d.m.Y h:i', strtotime($row->Termin_alt))); ?>
</td>
<td nowrap style='text-align: center;'>
<?php echo $row->Termin_neu == "" ? "" : str_replace(" ", "<br>", date('d.m.Y h:i', strtotime($row->Termin_neu))); ?>
</td>
<td nowrap style='text-align: left;'>
<?php echo htmlentities_utf8($row->Begruendung_beantragt); ?>
</td>
</tr>
<?php
}
}
?>
</table></div>
<span class="article_seperator<?php echo $params->get('pageclass_sfx'); ?>">&nbsp;</span>
<?php
}
static function spieler($beschreibung, $rows, $sortierung, $statistik, $beginn, $kategorie, $filter, $veranstaltungid, $einstufungid, $veranstaltungen, $veranstalterid, $veranstalter, $einstufungen, $details_anzeigen): void static function spieler($beschreibung, $rows, $sortierung, $statistik, $beginn, $kategorie, $filter, $veranstaltungid, $einstufungid, $veranstaltungen, $veranstalterid, $veranstalter, $einstufungen, $details_anzeigen): void
{ {
global $params; global $params;
@@ -5122,253 +5192,260 @@ function begegnungVerlegen($veranstaltung, $begegnung, $heim_team, $gast_team, $
<form action="<?php echo SportsManagerURL(); ?>" method="post" name="adminForm" id="adminForm"> <form action="<?php echo SportsManagerURL(); ?>" method="post" name="adminForm" id="adminForm">
<div class="uk-overflow-auto"> <div class="uk-overflow-auto">
<table class="uk-table" style="width: 100%"> <table style="width: 100%">
<tr> <tr>
<td nowrap style="width: 60%; vertical-align: top"> <td nowrap style="width: 20%; text-align: right">
<div class="uk-overflow-auto"> <?php echo Text::_('COM_SPORTSMANAGER_ORIGINALY_SCHEDULED'); ?>:
<table class="uk-table" style="width: 100%"> </td>
<tr> <td nowrap>
<td nowrap style="width: 20%; text-align: right"> <?php echo $begegnung->zeitpunkt != null ? FormatiertesDatum($begegnung->zeitpunkt) : "N/A"; ?>
<?php echo Text::_('COM_SPORTSMANAGER_ORIGINALY_SCHEDULED'); ?>:
</td>
<td nowrap>
<?php echo $begegnung->zeitpunkt != null ? FormatiertesDatum($begegnung->zeitpunkt) : "N/A"; ?>
</td>
</tr>
<?php
$letzte_verlegung_aktionen = array();
foreach ($verlegen_aktionen as $aktion) {
if ($aktion->aktion == 1 || $aktion->aktion == 5 || $aktion->aktion == 10) // akzeptiert, von Moderator eingetragen oder Verschiebung abgelehnt
break;
$letzte_verlegung_aktionen[] = $aktion;
}
$termine = array();
if (count($letzte_verlegung_aktionen) > 0) {
$eingetragen = $letzte_verlegung_aktionen[0]->eingetragen;
foreach ($letzte_verlegung_aktionen as $aktion) {
if ($aktion->eingetragen != $eingetragen || ($aktion->aktion != 0) || $aktion->zeitpunkt == null) // aktion == 1 <=> Akzeptiert
break;
$termine[] = $aktion;
}
}
$berechtigt_anfordern = $veranstaltung->initial_ohne_termin != 1 && (count($letzte_verlegung_aktionen) == 0 || $letzte_verlegung_aktionen[0]->aktion == 1);
$berechtigt_vorschlagen = ($veranstaltung->initial_ohne_termin != 2 || (count($letzte_verlegung_aktionen) != 0 && $letzte_verlegung_aktionen[0]->aktion != 1)) && (!$veranstaltung->keine_gegenvorschlaege || count($letzte_verlegung_aktionen) == 0 || $letzte_verlegung_aktionen[0]->aktion != 3 || $letzte_verlegung_aktionen[0]->team_id != $vorschlagendes_team_id) && (count($termine) == 0 || !$veranstaltung->keine_gegenvorschlaege || $letzte_verlegung_aktionen[0]->team_id == $vorschlagendes_team_id);
$berechtigt_ablehnen = count($letzte_verlegung_aktionen) != 0 && ($letzte_verlegung_aktionen[0]->aktion == 0 || $letzte_verlegung_aktionen[0]->aktion == 3 || $letzte_verlegung_aktionen[0]->aktion == 4) && ((($veranstaltung->ablehnen == 1 || $veranstaltung->ablehnen == 3) && $berechtigt_fuer_akzeptieren) || (($veranstaltung->ablehnen == 1 || $veranstaltung->ablehnen == 2) && $berechtigt_vorschlagen));
if ($berechtigt_vorschlagen) {
$anzahl_moegliche_termine = $veranstaltung->termine_maximal == 0 ? 3 : $veranstaltung->termine_maximal;
?>
<script type="text/javascript">
function ausreichend_termine(termine_minimal, termine_gesamt) {
let i;
let anzahl_termine = 0;
const termine = [];
for (i = 1; i <= termine_gesamt; i++) {
const tag = document.adminForm["datum_tag_" + i].value;
const monat = document.adminForm["datum_monat_" + i].value;
const jahr = document.adminForm["datum_jahr_" + i].value;
const stunden = document.adminForm["uhrzeit_stunden_" + i].value;
const minuten = document.adminForm["uhrzeit_minuten_" + i].value;
if (tag >= 1 && tag <= 31 && monat >= 1 && monat <= 12 && jahr >= 1900 && stunden >= 0 && stunden <= 23 && minuten >= 0 && minuten <= 59) {
const termin = tag + "-" + monat + "-" + jahr;
// JavaScript < 1.6 - IE 7/8-Kompatibilität
if (!Array.indexOf) {
Array.prototype.indexOf = function (obj) {
for (let i = 0; i < this.length; i++) {
if (this[i] === obj) {
return i;
}
}
return -1;
}
}
if (termine.indexOf(termin) < 0) {
termine.push(termin);
anzahl_termine++;
}
}
}
return anzahl_termine >= termine_minimal;
}
</script>
<?php
for ($termin = 1;
$termin <= $anzahl_moegliche_termine;
$termin++) {
?>
<tr>
<td nowrap style="width: 20%; text-align: right">
<?php echo $termin; ?>
. <?php echo Text::_('COM_SPORTSMANAGER_PROPOSAL'); ?>:
</td>
<td nowrap>
<script type="text/javascript">
function termin_changed_<?php echo $termin; ?>() {
<?php
if ($berechtigt_fuer_akzeptieren && isset($termine[$termin - 1])) {
?>
document.adminForm.akzeptieren_<?php echo $termin; ?>.style.visibility = 'hidden';
<?php
}
?>
}
</script>
<select
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_PROPOSAL_DAY') . ' ' . $termin ?>"
class="uk-select uk-form-width-medium"
name="datum_tag_<?php echo $termin; ?>" size="1"
onChange="termin_changed_<?php echo $termin; ?>();">
<?php
$datum = "0000-00-00";
if (isset($termine[$termin - 1]))
$datum = substr($termine[$termin - 1]->zeitpunkt, 0, 10);
$datum_tag = substr($datum, 8, 2);
echo "<option value=\"-1\"></option>";
for ($i = 1; $i <= 31; $i++) {
echo "<option value=\"" . $i . "\" " . ($datum_tag == $i ? "selected" : "") . ">" . $i . "</option>";
}
?>
</select>
<select
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_PROPOSAL_MONTH') . ' ' . $termin ?>"
class="uk-select uk-form-width-medium"
name="datum_monat_<?php echo $termin; ?>" size="1"
onChange="termin_changed_<?php echo $termin; ?>();">
<?php
$datum_monat = substr($datum, 5, 2);
echo "<option value=\"-1\"></option>";
$monate = array(Text::_('COM_SPORTSMANAGER_JANUARY'), Text::_('COM_SPORTSMANAGER_FEBRUARY'), Text::_('COM_SPORTSMANAGER_MARCH'), Text::_('COM_SPORTSMANAGER_APRIL'), Text::_('COM_SPORTSMANAGER_MAY'), Text::_('COM_SPORTSMANAGER_JUNE'), Text::_('COM_SPORTSMANAGER_JULY'), Text::_('COM_SPORTSMANAGER_AUGUST'), Text::_('COM_SPORTSMANAGER_SEPTEMBER'), Text::_('COM_SPORTSMANAGER_OCTOBER'), Text::_('COM_SPORTSMANAGER_NOVEMBER'), Text::_('COM_SPORTSMANAGER_DECEMBER'));
for ($i = 1; $i <= 12; $i++) {
echo "<option value=\"" . $i . "\" " . ($datum_monat == $i ? "selected" : "") . ">" . htmlentities_utf8($monate[$i - 1]) . "</option>";
}
?>
</select>
<select
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_PROPOSAL_YEAR') . ' ' . $termin ?>"
class="uk-select uk-form-width-medium"
name="datum_jahr_<?php echo $termin; ?>" size="1"
onChange="termin_changed_<?php echo $termin; ?>();">
<?php
$datum_jahr = substr($datum, 0, 4);
echo "<option value=\"-1\"></option>";
for ($i = intval(Date("Y")) + 5; $i >= 2000; $i--) {
echo "<option value=\"" . $i . "\" " . ($datum_jahr == $i ? "selected" : "") . ">" . $i . "</option>";
}
?>
</select>
<select
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_PROPOSAL_HOUR') . ' ' . $termin ?>"
class="uk-select uk-form-width-medium"
name="uhrzeit_stunden_<?php echo $termin; ?>" size="1"
onChange="termin_changed_<?php echo $termin; ?>();">
<?php
$stunden = -1;
if (isset($termine[$termin - 1]))
$stunden = intval(substr($termine[$termin - 1]->zeitpunkt, 11, 2));
echo "<option value=\"-1\"></option>";
for ($i = 0; $i <= 23; $i++) {
echo "<option value=\"" . $i . "\" " . ($datum_jahr > 0 && $stunden == $i ? "selected" : "") . ">" . sprintf("%02d", $i) . "</option>";
}
?>
</select>
<select
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_PROPOSAL_MINUTE') . ' ' . $termin ?>"
class="uk-select uk-form-width-medium"
name="uhrzeit_minuten_<?php echo $termin; ?>" size="1"
onChange="termin_changed_<?php echo $termin; ?>();">
<?php
$minuten = -1;
if (isset($termine[$termin - 1]))
$minuten = intval(substr($termine[$termin - 1]->zeitpunkt, 14, 2));
echo "<option value=\"-1\"></option>";
for ($i = 0; $i <= 59; $i += 5) {
echo "<option value=\"" . $i . "\" " . ($datum_jahr > 0 && $minuten == $i ? "selected" : "") . ">" . sprintf("%02d", $i) . "</option>";
}
?>
</select>
<?php
if ($berechtigt_fuer_akzeptieren && isset($termine[$termin - 1])) {
?>
<input type="submit" name="akzeptieren"
value="<?php echo Text::_('COM_SPORTSMANAGER_ACCEPT'); ?>"
class="button"
onclick="document.adminForm.task.value='begegnung_verlegen_bestaetigen'; document.adminForm.begegnung_historie_id.value='<?php echo $termine[$termin - 1]->begegnung_historie_id; ?>'; return true;"/>
<?php
}
?>
</td>
</tr>
<?php
if (isset($termine[$termin - 1]) && !empty($termine[$termin - 1]->kommentar)) {
?>
<tr>
<td nowrap style="width: 20%; text-align: right">
<?php echo Text::_('COM_SPORTSMANAGER_COMMENT'); ?>:
</td>
<td nowrap>
<?php echo htmlentities_utf8($termine[$termin - 1]->kommentar); ?>
</td>
</tr>
<?php
}
?>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label
for="comment_<?php echo $termin; ?>"><?php echo Text::_('COM_SPORTSMANAGER_NEW_COMMENT'); ?>
:</label>
</td>
<td nowrap>
<input class="inputbox" type="text"
name="kommentar_<?php echo $termin; ?>"
id="comment_<?php echo $termin; ?>"
size="100" maxlength="255"/>
</td>
</tr>
<?php
}
} else if (count($termine) && $berechtigt_fuer_akzeptieren) {
$anzahl_moegliche_termine = $veranstaltung->termine_maximal == 0 ? 3 : $veranstaltung->termine_maximal;
for ($termin = 1;
$termin <= count($termine);
$termin++) {
?>
<tr>
<td nowrap style="width: 20%; text-align: right">
<?php echo $termin; ?>
. <?php echo Text::_('COM_SPORTSMANAGER_PROPOSAL'); ?>:
</td>
<td nowrap>
<?php echo htmlentities_utf8(FormatiertesDatum($termine[$termin - 1]->zeitpunkt)); ?>
<input type="submit" name="akzeptieren"
value="<?php echo Text::_('COM_SPORTSMANAGER_ACCEPT'); ?>"
class="button"
onclick="document.adminForm.task.value='begegnung_verlegen_bestaetigen'; document.adminForm.begegnung_historie_id.value='<?php echo $termine[$termin - 1]->begegnung_historie_id; ?>'; return true;"/>
</td>
</tr>
<?php
if (!empty($termine[$termin - 1]->kommentar)) {
?>
<tr>
<td nowrap style="width: 20%; text-align: right">
<?php echo Text::_('COM_SPORTSMANAGER_COMMENT'); ?>:
</td>
<td nowrap>
<?php echo htmlentities_utf8($termine[$termin - 1]->kommentar); ?>
</td>
</tr>
<?php
}
}
}
?>
</table>
</div>
</td> </td>
</tr> </tr>
<?php
$letzte_verlegung_aktionen = array();
foreach ($verlegen_aktionen as $aktion) {
if ($aktion->aktion == 1 || $aktion->aktion == 5 || $aktion->aktion == 10) // akzeptiert, von Moderator eingetragen oder Verschiebung abgelehnt
break;
$letzte_verlegung_aktionen[] = $aktion;
}
$termine = array();
if (count($letzte_verlegung_aktionen) > 0) {
$eingetragen = $letzte_verlegung_aktionen[0]->eingetragen;
foreach ($letzte_verlegung_aktionen as $aktion) {
if ($aktion->eingetragen != $eingetragen || ($aktion->aktion != 0) || $aktion->zeitpunkt == null) // aktion == 1 <=> Akzeptiert
break;
$termine[] = $aktion;
}
}
$berechtigt_anfordern = $veranstaltung->initial_ohne_termin != 1 && (count($letzte_verlegung_aktionen) == 0 || $letzte_verlegung_aktionen[0]->aktion == 1);
$berechtigt_vorschlagen = ($veranstaltung->initial_ohne_termin != 2 || (count($letzte_verlegung_aktionen) != 0 && $letzte_verlegung_aktionen[0]->aktion != 1)) && (!$veranstaltung->keine_gegenvorschlaege || count($letzte_verlegung_aktionen) == 0 || $letzte_verlegung_aktionen[0]->aktion != 3 || $letzte_verlegung_aktionen[0]->team_id != $vorschlagendes_team_id) && (count($termine) == 0 || !$veranstaltung->keine_gegenvorschlaege || $letzte_verlegung_aktionen[0]->team_id == $vorschlagendes_team_id);
$berechtigt_ablehnen = count($letzte_verlegung_aktionen) != 0 && ($letzte_verlegung_aktionen[0]->aktion == 0 || $letzte_verlegung_aktionen[0]->aktion == 3 || $letzte_verlegung_aktionen[0]->aktion == 4) && ((($veranstaltung->ablehnen == 1 || $veranstaltung->ablehnen == 3) && $berechtigt_fuer_akzeptieren) || (($veranstaltung->ablehnen == 1 || $veranstaltung->ablehnen == 2) && $berechtigt_vorschlagen));
if ($berechtigt_vorschlagen) {
$anzahl_moegliche_termine = $veranstaltung->termine_maximal == 0 ? 3 : $veranstaltung->termine_maximal;
?>
<script type="text/javascript">
function ausreichend_termine(termine_minimal, termine_gesamt) {
let i;
let anzahl_termine = 0;
const termine = [];
for (i = 1; i <= termine_gesamt; i++) {
const tag = document.adminForm["datum_tag_" + i].value;
const monat = document.adminForm["datum_monat_" + i].value;
const jahr = document.adminForm["datum_jahr_" + i].value;
const stunden = document.adminForm["uhrzeit_stunden_" + i].value;
const minuten = document.adminForm["uhrzeit_minuten_" + i].value;
if (tag >= 1 && tag <= 31 && monat >= 1 && monat <= 12 && jahr >= 1900 && stunden >= 0 && stunden <= 23 && minuten >= 0 && minuten <= 59) {
const termin = tag + "-" + monat + "-" + jahr;
// JavaScript < 1.6 - IE 7/8-Kompatibilität
if (!Array.indexOf) {
Array.prototype.indexOf = function (obj) {
for (let i = 0; i < this.length; i++) {
if (this[i] === obj) {
return i;
}
}
return -1;
}
}
if (termine.indexOf(termin) < 0) {
termine.push(termin);
anzahl_termine++;
}
}
}
return anzahl_termine >= termine_minimal;
}
</script>
<?PHP if ($veranstaltung->begruendung_erforderlich && empty($verlegen_aktionen)){ ?>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label
for="reason"><?php echo Text::_('COM_SPORTSMANAGER_REASON_GAME_APPOINTMENT'); ?>
:</label>
</td>
<td nowrap>
<input class="inputbox" type="text"
name="verlegungsgrund"
id="reason"
size="100" maxlength="255"/>
</td>
</tr>
<?php
}
for ($termin = 1;
$termin <= $anzahl_moegliche_termine;
$termin++) {
?>
<tr>
<td nowrap style="width: 20%; text-align: right">
<?php echo $termin; ?>
. <?php echo Text::_('COM_SPORTSMANAGER_PROPOSAL'); ?>:
</td>
<td nowrap>
<script type="text/javascript">
function termin_changed_<?php echo $termin; ?>() {
<?php
if ($berechtigt_fuer_akzeptieren && isset($termine[$termin - 1])) {
?>
document.adminForm.akzeptieren_<?php echo $termin; ?>.style.visibility = 'hidden';
<?php
}
?>
}
</script>
<select
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_PROPOSAL_DAY') . ' ' . $termin ?>"
class="uk-select uk-form-width-small"
name="datum_tag_<?php echo $termin; ?>" size="1"
onChange="termin_changed_<?php echo $termin; ?>();">
<?php
$datum = "0000-00-00";
if (isset($termine[$termin - 1]))
$datum = substr($termine[$termin - 1]->zeitpunkt, 0, 10);
$datum_tag = substr($datum, 8, 2);
echo "<option value=\"-1\"></option>";
for ($i = 1; $i <= 31; $i++) {
echo "<option value=\"" . $i . "\" " . ($datum_tag == $i ? "selected" : "") . ">" . $i . "</option>";
}
?>
</select>
<select
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_PROPOSAL_MONTH') . ' ' . $termin ?>"
class="uk-select uk-form-width-small"
name="datum_monat_<?php echo $termin; ?>" size="1"
onChange="termin_changed_<?php echo $termin; ?>();">
<?php
$datum_monat = substr($datum, 5, 2);
echo "<option value=\"-1\"></option>";
$monate = array(Text::_('COM_SPORTSMANAGER_JANUARY'), Text::_('COM_SPORTSMANAGER_FEBRUARY'), Text::_('COM_SPORTSMANAGER_MARCH'), Text::_('COM_SPORTSMANAGER_APRIL'), Text::_('COM_SPORTSMANAGER_MAY'), Text::_('COM_SPORTSMANAGER_JUNE'), Text::_('COM_SPORTSMANAGER_JULY'), Text::_('COM_SPORTSMANAGER_AUGUST'), Text::_('COM_SPORTSMANAGER_SEPTEMBER'), Text::_('COM_SPORTSMANAGER_OCTOBER'), Text::_('COM_SPORTSMANAGER_NOVEMBER'), Text::_('COM_SPORTSMANAGER_DECEMBER'));
for ($i = 1; $i <= 12; $i++) {
echo "<option value=\"" . $i . "\" " . ($datum_monat == $i ? "selected" : "") . ">" . htmlentities_utf8($monate[$i - 1]) . "</option>";
}
?>
</select>
<select
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_PROPOSAL_YEAR') . ' ' . $termin ?>"
class="uk-select uk-form-width-small"
name="datum_jahr_<?php echo $termin; ?>" size="1"
onChange="termin_changed_<?php echo $termin; ?>();">
<?php
$datum_jahr = substr($datum, 0, 4);
echo "<option value=\"-1\"></option>";
for ($i = intval(Date("Y")) + 5; $i >= 2000; $i--) {
echo "<option value=\"" . $i . "\" " . ($datum_jahr == $i ? "selected" : "") . ">" . $i . "</option>";
}
?>
</select>
<select
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_PROPOSAL_HOUR') . ' ' . $termin ?>"
class="uk-select uk-form-width-small"
name="uhrzeit_stunden_<?php echo $termin; ?>" size="1"
onChange="termin_changed_<?php echo $termin; ?>();">
<?php
$stunden = -1;
if (isset($termine[$termin - 1]))
$stunden = intval(substr($termine[$termin - 1]->zeitpunkt, 11, 2));
echo "<option value=\"-1\"></option>";
for ($i = 0; $i <= 23; $i++) {
echo "<option value=\"" . $i . "\" " . ($datum_jahr > 0 && $stunden == $i ? "selected" : "") . ">" . sprintf("%02d", $i) . "</option>";
}
?>
</select>
<select
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_PROPOSAL_MINUTE') . ' ' . $termin ?>"
class="uk-select uk-form-width-small"
name="uhrzeit_minuten_<?php echo $termin; ?>" size="1"
onChange="termin_changed_<?php echo $termin; ?>();">
<?php
$minuten = -1;
if (isset($termine[$termin - 1]))
$minuten = intval(substr($termine[$termin - 1]->zeitpunkt, 14, 2));
echo "<option value=\"-1\"></option>";
for ($i = 0; $i <= 59; $i += 5) {
echo "<option value=\"" . $i . "\" " . ($datum_jahr > 0 && $minuten == $i ? "selected" : "") . ">" . sprintf("%02d", $i) . "</option>";
}
?>
</select>
<?php
if ($berechtigt_fuer_akzeptieren && isset($termine[$termin - 1])) {
?>
<input type="submit" name="akzeptieren"
value="<?php echo Text::_('COM_SPORTSMANAGER_ACCEPT'); ?>"
class="button"
onclick="document.adminForm.task.value='begegnung_verlegen_bestaetigen'; document.adminForm.begegnung_historie_id.value='<?php echo $termine[$termin - 1]->begegnung_historie_id; ?>'; return true;"/>
<?php
}
?>
</td>
</tr>
<?php
if (isset($termine[$termin - 1]) && !empty($termine[$termin - 1]->kommentar)) {
?>
<tr>
<td nowrap style="width: 20%; text-align: right">
<?php echo Text::_('COM_SPORTSMANAGER_COMMENT'); ?>:
</td>
<td nowrap>
<?php echo htmlentities_utf8($termine[$termin - 1]->kommentar); ?>
</td>
</tr>
<?php
}
?>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label
for="comment_<?php echo $termin; ?>"><?php echo Text::_('COM_SPORTSMANAGER_NEW_COMMENT'); ?>
:</label>
</td>
<td nowrap>
<input class="inputbox" type="text"
name="kommentar_<?php echo $termin; ?>"
id="comment_<?php echo $termin; ?>"
size="100" maxlength="255"/>
</td>
</tr>
<?php
}
} else if (count($termine) && $berechtigt_fuer_akzeptieren) {
$anzahl_moegliche_termine = $veranstaltung->termine_maximal == 0 ? 3 : $veranstaltung->termine_maximal;
for ($termin = 1;
$termin <= count($termine);
$termin++) {
?>
<tr>
<td nowrap style="width: 20%; text-align: right">
<?php echo $termin; ?>
. <?php echo Text::_('COM_SPORTSMANAGER_PROPOSAL'); ?>:
</td>
<td nowrap>
<?php echo htmlentities_utf8(FormatiertesDatum($termine[$termin - 1]->zeitpunkt)); ?>
<input type="submit" name="akzeptieren"
value="<?php echo Text::_('COM_SPORTSMANAGER_ACCEPT'); ?>"
class="button"
onclick="document.adminForm.task.value='begegnung_verlegen_bestaetigen'; document.adminForm.begegnung_historie_id.value='<?php echo $termine[$termin - 1]->begegnung_historie_id; ?>'; return true;"/>
</td>
</tr>
<?php
if (!empty($termine[$termin - 1]->kommentar)) {
?>
<tr>
<td nowrap style="width: 20%; text-align: right">
<?php echo Text::_('COM_SPORTSMANAGER_COMMENT'); ?>:
</td>
<td nowrap>
<?php echo htmlentities_utf8($termine[$termin - 1]->kommentar); ?>
</td>
</tr>
<?php
}
}
}
?>
</table> </table>
</div> </div>
@@ -191,7 +191,7 @@ class HTML_sportsmanager_admin
if (benutzerZugriff("verschieberegeln_aendern")) { if (benutzerZugriff("verschieberegeln_aendern")) {
?> ?>
<td style="padding-right: 15px" nowrap> <td style="padding-right: 15px" nowrap>
<a href="<?php echo SportsManagerURL('&task=admin_verschieben_modi'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_POSTPONE_RULES'); ?></a> <a href="<?php echo SportsManagerURL('&task=admin_spielverlegungen'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_MATCH_RESCHEDULINGS'); ?></a>
</td> </td>
<?php <?php
$Spalte_Nr = self::checkZeilenumbruch($Spalte_Nr, $max_Spalten); $Spalte_Nr = self::checkZeilenumbruch($Spalte_Nr, $max_Spalten);
@@ -205,7 +205,7 @@ class HTML_sportsmanager_admin
self::checkZeilenumbruch($Spalte_Nr, $max_Spalten); self::checkZeilenumbruch($Spalte_Nr, $max_Spalten);
} }
if (benutzerZugriff("mannschaftswettbewerb_aendern") && einstellungswert("ordnungsstrafen_verwenden")) { if ((benutzerZugriff("mannschaftswettbewerb_aendern") || benutzerVeranstaltungModerator()) && einstellungswert("ordnungsstrafen_verwenden")) {
?> ?>
<td style="padding-right: 15px" nowrap> <td style="padding-right: 15px" nowrap>
<a href="<?php echo SportsManagerURL('&task=admin_ordnungsstrafen'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_DISCIPLINARY_FINES'); ?></a> <a href="<?php echo SportsManagerURL('&task=admin_ordnungsstrafen'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_DISCIPLINARY_FINES'); ?></a>
@@ -4925,7 +4925,7 @@ class HTML_sportsmanager_admin
<table style="border-spacing: 10px"> <table style="border-spacing: 10px">
<tr> <tr>
<td nowrap><a <td nowrap><a
href="<?php echo SportsManagerURL('&task=admin_uebersicht'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_BACK'); ?></a> href="<?php echo SportsManagerURL('&task=admin_spielverlegungen'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_BACK'); ?></a>
</td> </td>
</tr> </tr>
<tr> <tr>
@@ -4978,139 +4978,185 @@ class HTML_sportsmanager_admin
<form action="<?php echo SportsManagerURL(); ?>" method="post" name="adminForm" id="adminForm"> <form action="<?php echo SportsManagerURL(); ?>" method="post" name="adminForm" id="adminForm">
<div class="uk-overflow-auto"> <div class="uk-overflow-auto">
<table class="uk-table" style="width: 100%"> <table style="width: 100%">
<tr> <tr>
<td nowrap style="width: 60%; vertical-align: top"> <td nowrap style="width: 20%; text-align: right">
<div class="uk-overflow-auto"> <label
<table class="uk-table" style="width: 100%"> for="designation"><?php echo Text::_('COM_SPORTSMANAGER_DESIGNATION'); ?>
<tr> :</label>
<td nowrap style="width: 20%; text-align: right"> </td>
<label <td nowrap>
for="designation"><?php echo Text::_('COM_SPORTSMANAGER_DESIGNATION'); ?> <input class="inputbox" type="text" name="bezeichnung" id="designation"
:</label> size="50" maxlength="100"
</td> value="<?php if ($row != null) echo htmlentities_utf8($row->bezeichnung); ?>"/>
<td nowrap> </td>
<input class="inputbox" type="text" name="bezeichnung" id="designation" </tr>
size="50" maxlength="100" <tr>
value="<?php if ($row != null) echo htmlentities_utf8($row->bezeichnung); ?>"/> <td nowrap style="width: 20%; text-align: right">
</td> <label
</tr> for="appointment_suggestion"><?php echo Text::_('COM_SPORTSMANAGER_INITIAL_APPOINTMENT_SUGGESTIONS'); ?>
<tr> :</label>
<td nowrap style="width: 20%; text-align: right"> </td>
<label <td nowrap>
for="appointment_suggestion"><?php echo Text::_('COM_SPORTSMANAGER_INITIAL_APPOINTMENT_SUGGESTIONS'); ?> <select class="uk-select uk-form-width-medium" name="initial_ohne_termin"
:</label> id="appointment_suggestion" size="1">
</td> <?php
<td nowrap> $typ = array(Text::_('COM_SPORTSMANAGER_ANY'), Text::_('COM_SPORTSMANAGER_REQUESTING_TEAM'), Text::_('COM_SPORTSMANAGER_OPPONENT_TEAM'));
<select class="uk-select uk-form-width-medium" name="initial_ohne_termin" for ($i = 0; $i <= 2; $i++) {
id="appointment_suggestion" size="1"> echo "<option value=\"" . $i . "\"" . ($row != null ? ($row->initial_ohne_termin == $i ? " selected" : "") : "") . ">" . htmlentities_utf8($typ[$i]) . "</option>";
<?php }
$typ = array(Text::_('COM_SPORTSMANAGER_ANY'), Text::_('COM_SPORTSMANAGER_REQUESTING_TEAM'), Text::_('COM_SPORTSMANAGER_OPPONENT_TEAM')); ?>
for ($i = 0; $i <= 2; $i++) { </select>
echo "<option value=\"" . $i . "\"" . ($row != null ? ($row->initial_ohne_termin == $i ? " selected" : "") : "") . ">" . htmlentities_utf8($typ[$i]) . "</option>"; </td>
} </tr>
?> <tr>
</select> <td nowrap style="width: 20%; text-align: right">
</td> <label
</tr> for="disallow_proposals"><?php echo Text::_('COM_SPORTSMANAGER_AGAINST_PROPOSALS_ALLOWED'); ?>
<tr> :</label>
<td nowrap style="width: 20%; text-align: right"> </td>
<label <td nowrap>
for="disallow_proposals"><?php echo Text::_('COM_SPORTSMANAGER_AGAINST_PROPOSALS_ALLOWED'); ?> <select class="uk-select uk-form-width-medium" name="keine_gegenvorschlaege"
:</label> id="disallow_proposals"
</td> size="1">
<td nowrap> <?php
<select class="uk-select uk-form-width-medium" name="keine_gegenvorschlaege" $typ = array(Text::_('COM_SPORTSMANAGER_YES'), Text::_('COM_SPORTSMANAGER_NO'));
id="disallow_proposals" for ($i = 0; $i <= 1; $i++) {
size="1"> echo "<option value=\"" . $i . "\"" . ($row != null ? ($row->keine_gegenvorschlaege == $i ? " selected" : "") : "") . ">" . htmlentities_utf8($typ[$i]) . "</option>";
<?php }
$typ = array(Text::_('COM_SPORTSMANAGER_YES'), Text::_('COM_SPORTSMANAGER_NO')); ?>
for ($i = 0; $i <= 1; $i++) { </select>
echo "<option value=\"" . $i . "\"" . ($row != null ? ($row->keine_gegenvorschlaege == $i ? " selected" : "") : "") . ">" . htmlentities_utf8($typ[$i]) . "</option>"; </td>
} </tr>
?> <tr>
</select> <td nowrap style="width: 20%; text-align: right">
</td> <label for="lead_time"><?php echo Text::_('COM_SPORTSMANAGER_LEAD_TIME'); ?>
</tr> :</label>
<tr> </td>
<td nowrap style="width: 20%; text-align: right"> <td nowrap>
<label for="lead_time"><?php echo Text::_('COM_SPORTSMANAGER_LEAD_TIME'); ?> <select class="uk-select uk-form-width-medium" name="vorlaufzeit_tage"
:</label> id="lead_time" size="1">
</td> <option
<td nowrap> value="0"><?php echo Text::_('COM_SPORTSMANAGER_UNRESTRICTED'); ?></option>
<select class="uk-select uk-form-width-medium" name="vorlaufzeit_tage" <?php
id="lead_time" size="1"> for ($i = 1; $i <= 90; $i++) {
<option echo "<option value=\"" . $i . "\"" . ($row != null ? ($row->vorlaufzeit_tage == $i ? " selected" : "") : "") . ">" . ($i == 1 ? Text::_('COM_SPORTSMANAGER_ONE_DAY') : Text::sprintf('COM_SPORTSMANAGER_NUMBER_DAYS', $i)) . " </option>";
value="0"><?php echo Text::_('COM_SPORTSMANAGER_UNRESTRICTED'); ?></option> }
<?php ?>
for ($i = 1; $i <= 90; $i++) { </select>
echo "<option value=\"" . $i . "\"" . ($row != null ? ($row->vorlaufzeit_tage == $i ? " selected" : "") : "") . ">" . ($i == 1 ? Text::_('COM_SPORTSMANAGER_ONE_DAY') : Text::sprintf('COM_SPORTSMANAGER_NUMBER_DAYS', $i)) . " </option>"; </td>
} </tr>
?> <tr>
</select> <td nowrap style="width: 20%; text-align: right">
</td> <label
</tr> for="minimal_proposal"><?php echo Text::_('COM_SPORTSMANAGER_APPOINTMENT_PROPOSALS_MINIMAL'); ?>
<tr> :</label>
<td nowrap style="width: 20%; text-align: right"> </td>
<label <td nowrap>
for="minimal_proposal"><?php echo Text::_('COM_SPORTSMANAGER_APPOINTMENT_PROPOSALS_MINIMAL'); ?> <select class="uk-select uk-form-width-medium" name="termine_minimal"
:</label> id="minimal_proposal" size="1">
</td> <?php
<td nowrap> for ($i = 1; $i <= 5; $i++) {
<select class="uk-select uk-form-width-medium" name="termine_minimal" echo "<option value=\"" . $i . "\"" . ($row != null ? ($row->termine_minimal == $i ? " selected" : "") : "") . ">" . $i . "</option>";
id="minimal_proposal" size="1"> }
<?php ?>
for ($i = 1; $i <= 5; $i++) { </select>
echo "<option value=\"" . $i . "\"" . ($row != null ? ($row->termine_minimal == $i ? " selected" : "") : "") . ">" . $i . "</option>"; </td>
} </tr>
?> <tr>
</select> <td nowrap style="width: 20%; text-align: right">
</td> <label
</tr> for="maximal_proposal"><?php echo Text::_('COM_SPORTSMANAGER_APPOINTMENT_PROPOSALS_MAXIMUM'); ?>
<tr> :</label>
<td nowrap style="width: 20%; text-align: right"> </td>
<label <td nowrap>
for="maximal_proposal"><?php echo Text::_('COM_SPORTSMANAGER_APPOINTMENT_PROPOSALS_MAXIMUM'); ?> <select class="uk-select uk-form-width-medium" name="termine_maximal"
:</label> id="maximal_proposal" size="1">
</td> <?php
<td nowrap> for ($i = 1; $i <= 5; $i++) {
<select class="uk-select uk-form-width-medium" name="termine_maximal" echo "<option value=\"" . $i . "\"" . ($row != null ? ($row->termine_maximal == $i ? " selected" : "") : ($i == 3 ? " selected" : "")) . ">" . $i . "</option>";
id="maximal_proposal" size="1"> }
<?php ?>
for ($i = 1; $i <= 5; $i++) { </select>
echo "<option value=\"" . $i . "\"" . ($row != null ? ($row->termine_maximal == $i ? " selected" : "") : ($i == 3 ? " selected" : "")) . ">" . $i . "</option>"; </td>
} </tr>
?> <tr>
</select> <td nowrap style="width: 20%; text-align: right">
</td> <label
</tr> for="reject_appointment"><?php echo Text::_('COM_SPORTSMANAGER_REJECT_APPOINTMENT_SHIFT'); ?>
<tr> :</label>
<td nowrap style="width: 20%; text-align: right"> </td>
<label <td nowrap>
for="reject_appointment"><?php echo Text::_('COM_SPORTSMANAGER_REJECT_APPOINTMENT_SHIFT'); ?> <select class="uk-select uk-form-width-medium" name="ablehnen"
:</label> id="reject_appointment" size="1">
</td> <?php
<td nowrap> $typ = array(Text::_('COM_SPORTSMANAGER_NOT_POSSIBLE'), Text::_('COM_SPORTSMANAGER_ANY'), Text::_('COM_SPORTSMANAGER_PROPOSING_TEAM'), Text::_('COM_SPORTSMANAGER_ACCEPTING_TEAM'));
<select class="uk-select uk-form-width-medium" name="ablehnen" for ($i = 0; $i <= 3; $i++) {
id="reject_appointment" size="1"> echo "<option value=\"" . $i . "\"" . ($row != null ? ($row->ablehnen == $i ? " selected" : "") : "") . ">" . htmlentities_utf8($typ[$i]) . "</option>";
<?php }
$typ = array(Text::_('COM_SPORTSMANAGER_NOT_POSSIBLE'), Text::_('COM_SPORTSMANAGER_ANY'), Text::_('COM_SPORTSMANAGER_PROPOSING_TEAM'), Text::_('COM_SPORTSMANAGER_ACCEPTING_TEAM')); ?>
for ($i = 0; $i <= 3; $i++) { </select>
echo "<option value=\"" . $i . "\"" . ($row != null ? ($row->ablehnen == $i ? " selected" : "") : "") . ">" . htmlentities_utf8($typ[$i]) . "</option>"; </td>
} </tr>
?> <tr>
</select> <td nowrap style="width: 20%; text-align: right">
</td> <label
</tr> for="reason_required"><?php echo Text::_('COM_SPORTSMANAGER_REASON_REQUIRED'); ?>
<tr> :</label>
<td nowrap colspan="2">&nbsp; </td>
<td nowrap>
<select class="uk-select uk-form-width-medium" name="begruendung_erforderlich"
id="reason_required" size="1">
<?php
$typ = array(Text::_('COM_SPORTSMANAGER_NO'), Text::_('COM_SPORTSMANAGER_YES'));
for ($i = 0; $i <= 1; $i++) {
echo "<option value=\"" . $i . "\"" . ($row != null ? ($row->begruendung_erforderlich == $i ? " selected" : "") : "") . ">" . htmlentities_utf8($typ[$i]) . "</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label
for="club_entitlement"><?php echo Text::_('COM_SPORTSMANAGER_CLUB_ENTITLEMENT'); ?>
:</label>
</td>
<td nowrap>
<select class="uk-select uk-form-width-medium" name="vereine_berechtigt"
id="club_entitlement" size="1">
<?php
$typ = array(Text::_('COM_SPORTSMANAGER_NO'), Text::_('COM_SPORTSMANAGER_YES'));
for ($i = 0; $i <= 1; $i++) {
echo "<option value=\"" . $i . "\"" . ($row != null ? ($row->vereine_berechtigt == $i ? " selected" : "") : "") . ">" . htmlentities_utf8($typ[$i]) . "</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label
for="association_entitlement"><?php echo Text::_('COM_SPORTSMANAGER_ASSOCIATION_ENTITLEMENT'); ?>
:</label>
</td>
<td nowrap>
<select class="uk-select uk-form-width-medium" name="verband_berechtigt"
id="association_entitlement" size="1">
<?php
$typ = array(Text::_('COM_SPORTSMANAGER_NO'), Text::_('COM_SPORTSMANAGER_YES'));
for ($i = 0; $i <= 1; $i++) {
echo "<option value=\"" . $i . "\"" . ($row != null ? ($row->verband_berechtigt == $i ? " selected" : "") : "") . ">" . htmlentities_utf8($typ[$i]) . "</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td nowrap colspan="2">&nbsp;
</td> </td>
</tr> </tr>
</table>
</div>
</td>
</tr>
</table> </table>
</div> </div>
@@ -6566,97 +6612,89 @@ class HTML_sportsmanager_admin
<form action="<?php echo SportsManagerURL(); ?>" method="post" name="adminForm" id="adminForm"> <form action="<?php echo SportsManagerURL(); ?>" method="post" name="adminForm" id="adminForm">
<div class="uk-overflow-auto"> <div class="uk-overflow-auto">
<table class="uk-table" style="width: 100%"> <table style="width: 100%">
<tr> <tr>
<td nowrap style="width: 60%; vertical-align: top"> <td nowrap style="width: 20%; text-align: right">
<div class="uk-overflow-auto"> <label for="user"><?php echo Text::_('COM_SPORTSMANAGER_NAME'); ?>:</label>
<table class="uk-table" style="width: 100%"> </td>
<tr> <td nowrap>
<td nowrap style="width: 20%; text-align: right"> <select class="uk-select uk-form-width-large" name="userid" id="user"
<label for="user"><?php echo Text::_('COM_SPORTSMANAGER_NAME'); ?>:</label> size="1">
</td> <?php
<td nowrap> foreach ($users as $user)
<select class="uk-select uk-form-width-medium" name="userid" id="user" echo "<option value=\"" . $user->id . "\"" . (!empty($row) && $row->moderator_user_id == $user->id ? " selected" : "") . ">" . htmlentities_utf8($user->name) . ($user->username != $user->name ? (" (" . htmlentities_utf8($user->username) . ")") : "") . "</option>";
size="1"> ?>
<?php </select>
foreach ($users as $user) </td>
echo "<option value=\"" . $user->id . "\"" . (!empty($row) && $row->moderator_user_id == $user->id ? " selected" : "") . ">" . htmlentities_utf8($user->name) . ($user->username != $user->name ? (" (" . htmlentities_utf8($user->username) . ")") : "") . "</option>"; </tr>
?> <tr>
</select> <td nowrap style="width: 20%; text-align: right; vertical-align: top">
</td> <label for="checkall"><?php echo Text::_('COM_SPORTSMANAGER_HIT'); ?>
</tr> :</label>
<tr> </td>
<td nowrap style="width: 20%; text-align: right; vertical-align: top"> <td nowrap>
<label for="checkall"><?php echo Text::_('COM_SPORTSMANAGER_HIT'); ?> <script language='JavaScript'>
:</label> function checkedAll(checked, name) {
</td> const checks = document.getElementsByName(name);
<td nowrap> for (let i = 0; i < checks.length; i++)
<script language='JavaScript'> checks[i].checked = checked;
function checkedAll(checked, name) { }
const checks = document.getElementsByName(name); </script>
for (let i = 0; i < checks.length; i++) <input type="checkbox" name="checkall" id="checkall"
checks[i].checked = checked; onclick="checkedAll(this.checked, 'zugriffe[]');"><?php echo Text::_('COM_SPORTSMANAGER_CATEGORY_ALL'); ?>
} <br/>
</script> <?php
<input type="checkbox" name="checkall" id="checkall" $werte = array(
onclick="checkedAll(this.checked, 'zugriffe[]');"><?php echo Text::_('COM_SPORTSMANAGER_CATEGORY_ALL'); ?> "moderatoren_aendern" => Text::_('COM_SPORTSMANAGER_MANAGE_MODERATORS'),
<br/> "basiseinstellungen_aendern" => Text::_('COM_SPORTSMANAGER_MANAGE_BASIC_SETTING'),
<?php "kategorien_aendern" => Text::_('COM_SPORTSMANAGER_MANAGE_CATEGORIES'),
$werte = array( "organisationen_aendern" => Text::_('COM_SPORTSMANAGER_MANAGING_ORGANISATIONS'),
"moderatoren_aendern" => Text::_('COM_SPORTSMANAGER_MANAGE_MODERATORS'), "saisons_aendern" => Text::_('COM_SPORTSMANAGER_MANAGE_SEASONS'),
"basiseinstellungen_aendern" => Text::_('COM_SPORTSMANAGER_MANAGE_BASIC_SETTING'), "spieler_aendern" => Text::_('COM_SPORTSMANAGER_MANAGE_PLAYERS'),
"kategorien_aendern" => Text::_('COM_SPORTSMANAGER_MANAGE_CATEGORIES'), "spieler_lesen_erweiterte_daten" => Text::_('COM_SPORTSMANAGER_PRIVATE_PLAYER_DATA'),
"organisationen_aendern" => Text::_('COM_SPORTSMANAGER_MANAGING_ORGANISATIONS'), "vereine_aendern" => Text::_('COM_SPORTSMANAGER_ASSOCIATIONS_MEMBERSHIPS_MANAGE'),
"saisons_aendern" => Text::_('COM_SPORTSMANAGER_MANAGE_SEASONS'), "einstufungen_aendern" => Text::_('COM_SPORTSMANAGER_MANAGE_CLASSIFICATIONS'),
"spieler_aendern" => Text::_('COM_SPORTSMANAGER_MANAGE_PLAYERS'), "mannschaftsspielplaene_aendern" => Text::_('COM_SPORTSMANAGER_MANAGE_TEAM_PLANS'),
"spieler_lesen_erweiterte_daten" => Text::_('COM_SPORTSMANAGER_PRIVATE_PLAYER_DATA'), "verschieberegeln_aendern" => Text::_('COM_SPORTSMANAGER_MANAGE_RULES_POSTPONEMENT'),
"vereine_aendern" => Text::_('COM_SPORTSMANAGER_ASSOCIATIONS_MEMBERSHIPS_MANAGE'), "spielorte_aendern" => Text::_('COM_SPORTSMANAGER_MANAGE_VENUES'),
"einstufungen_aendern" => Text::_('COM_SPORTSMANAGER_MANAGE_CLASSIFICATIONS'), "mannschaftswettbewerb_aendern" => Text::_('COM_SPORTSMANAGER_MANAGE_TEAM_COMPETITIONS'),
"mannschaftsspielplaene_aendern" => Text::_('COM_SPORTSMANAGER_MANAGE_TEAM_PLANS'), "spielerstatistiken_aendern" => Text::_('COM_SPORTSMANAGER_MANAGE_PLAYER_STATISTICS'),
"verschieberegeln_aendern" => Text::_('COM_SPORTSMANAGER_MANAGE_RULES_POSTPONEMENT'), "turniere_aendern" => Text::_('COM_SPORTSMANAGER_MANAGE_TOURNAMENTS'),
"spielorte_aendern" => Text::_('COM_SPORTSMANAGER_MANAGE_VENUES'), "individualwettbewerbe_aendern" => Text::_('COM_SPORTSMANAGER_MANAGE_INDIVIDUAL_COMPETITIONS'),
"mannschaftswettbewerb_aendern" => Text::_('COM_SPORTSMANAGER_MANAGE_TEAM_COMPETITIONS'), "ranglistenwertungen_aendern" => Text::_('COM_SPORTSMANAGER_MANAGE_RANKING_VOTES'),
"spielerstatistiken_aendern" => Text::_('COM_SPORTSMANAGER_MANAGE_PLAYER_STATISTICS'), "ranglisten_aendern" => Text::_('COM_SPORTSMANAGER_MANAGE_RANKING'),
"turniere_aendern" => Text::_('COM_SPORTSMANAGER_MANAGE_TOURNAMENTS'), "rechnungen_aendern" => Text::_('COM_SPORTSMANAGER_MANAGE_MEMBERS_BILLS'),
"individualwettbewerbe_aendern" => Text::_('COM_SPORTSMANAGER_MANAGE_INDIVIDUAL_COMPETITIONS'), "verteiler_aendern" => Text::_('COM_SPORTSMANAGER_MANAGE_DISTRIBUTIORS'),
"ranglistenwertungen_aendern" => Text::_('COM_SPORTSMANAGER_MANAGE_RANKING_VOTES'), "verteiler_lesen" => Text::_('COM_SPORTSMANAGER_READ_DISTRIBUTIORS'),
"ranglisten_aendern" => Text::_('COM_SPORTSMANAGER_MANAGE_RANKING'), "termine_aendern" => Text::_('COM_SPORTSMANAGER_MANAGE_EVENTS'),
"rechnungen_aendern" => Text::_('COM_SPORTSMANAGER_MANAGE_MEMBERS_BILLS'), "termine_benachrichtigung" => Text::_('COM_SPORTSMANAGER_NOTIFICATION_APPOINTMENTS'));
"verteiler_aendern" => Text::_('COM_SPORTSMANAGER_MANAGE_DISTRIBUTIORS'), foreach ($werte as $wert => $bezeichnung) {
"verteiler_lesen" => Text::_('COM_SPORTSMANAGER_READ_DISTRIBUTIORS'), $auswahl = false;
"termine_aendern" => Text::_('COM_SPORTSMANAGER_MANAGE_EVENTS'), if ($row != null) {
"termine_benachrichtigung" => Text::_('COM_SPORTSMANAGER_NOTIFICATION_APPOINTMENTS')); foreach ($zugriffe as $zugriff) {
foreach ($werte as $wert => $bezeichnung) { if ($zugriff->zugriff == $wert) {
$auswahl = false; $auswahl = true;
if ($row != null) { break;
foreach ($zugriffe as $zugriff) { }
if ($zugriff->zugriff == $wert) { }
$auswahl = true; }
break; ?>
} <label>
} <input type="checkbox"
} name="zugriffe[]"
?> value="<?php echo htmlentities_utf8("$wert"); ?>"<?php if ($auswahl) echo " checked"; ?> /><?php echo htmlentities_utf8($bezeichnung); ?>
<label> </label>
<input type="checkbox" <br/>
name="zugriffe[]" <?php
value="<?php echo htmlentities_utf8("$wert"); ?>"<?php if ($auswahl) echo " checked"; ?> /><?php echo htmlentities_utf8($bezeichnung); ?> }
</label> ?>
<br/> </td>
<?php </tr>
} <tr>
?> <td nowrap colspan="2">&nbsp;
</td>
</tr>
<tr>
<td nowrap colspan="2">&nbsp;
</td> </td>
</tr> </tr>
</table>
</div>
</td>
</tr>
</table> </table>
</div> </div>
@@ -6953,7 +6991,7 @@ class HTML_sportsmanager_admin
echo "<option value=\"" . $aussteller->id . "\" " . ($filter['aussteller'] == $aussteller->id ? "selected" : "") . ">" . htmlentities_utf8($aussteller->name) . "</option>"; echo "<option value=\"" . $aussteller->id . "\" " . ($filter['aussteller'] == $aussteller->id ? "selected" : "") . ">" . htmlentities_utf8($aussteller->name) . "</option>";
?> ?>
</select> </select>
<?php if (benutzerZugriff("benutzerVeranstalterModerator")){ ?> <?php if (benutzerZugriff("benutzerVeranstalterModerator") && !empty($rows)){ ?>
<input type="submit" value="<?php echo Text::_('COM_SPORTSMANAGER_EXPORT'); ?>" class="button" <input type="submit" value="<?php echo Text::_('COM_SPORTSMANAGER_EXPORT'); ?>" class="button"
onclick="const t = this.form.task; onclick="const t = this.form.task;
t.value = 'admin_ordnungsstrafen_export'; t.value = 'admin_ordnungsstrafen_export';
@@ -6989,6 +7027,7 @@ class HTML_sportsmanager_admin
$k = 0; $k = 0;
foreach ($rows as $row) { foreach ($rows as $row) {
if (!benutzerZugriff("mannschaftswettbewerb_aendern") && !benutzerVeranstaltungModerator($row->veranstaltung_id)){continue;}
?> ?>
<tr class="sectiontableentry<?php echo $k + 1; <tr class="sectiontableentry<?php echo $k + 1;
$k = ($k + 1) % 2; ?><?php echo $params->get('pageclass_sfx'); ?>"> $k = ($k + 1) % 2; ?><?php echo $params->get('pageclass_sfx'); ?>">
@@ -7098,7 +7137,7 @@ class HTML_sportsmanager_admin
value="<?php echo (empty($row->aussteller_id) ? $aussteller->id : $row->aussteller_id); ?>"/> 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" <input class="uk-select uk-form-width-medium" type="text" name="ausstelldatum" id="issuedate"
size="1" style='height: 34px; width: 200px;' readonly size="1" style='height: 34px; width: 200px;' readonly
value="<?php echo (empty($row->ausstelldatum) ? date('Y-m-d h:m:s') : $row->ausstelldatum); ?>"/> value="<?php echo (empty($row->ausstelldatum) ? date('Y-m-d H:i:s') : $row->ausstelldatum); ?>"/>
</td> </td>
</tr> </tr>
@@ -7191,6 +7230,227 @@ class HTML_sportsmanager_admin
<?php <?php
} }
static function adminSpielverlegungen($rows,$saisons,$filter_saison_id): void
{
global $params;
?>
<style>
td, th {
padding-left: 8px;
}
</style>
<div
class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_MATCH_RESCHEDULINGS'); ?>
: <?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("verschieberegeln_aendern")){ ?>
<tr>
<td nowrap><a
href="<?php echo SportsManagerURL('&task=admin_verschieben_modi'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_POSTPONE_RULES'); ?></a>
</td>
<?php }
if (benutzerZugriff("benutzerVeranstalterModerator")){ ?>
<td nowrap><a
href="<?php echo SportsManagerURL('&task=admin_spielverlegung_vorlage'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_TEMPLATE'); ?></a>
</td>
</tr>
<?php } ?>
</table>
<form action="<?php echo SportsManagerURL(); ?>" method="post" name="adminForm" id="adminForm">
<table class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr>
<td nowrap>
<label for="filter_saison_id"><?php echo Text::_('COM_SPORTSMANAGER_SEASON'); ?>:</label>
<select class="uk-form-width-small" name="filter_saison_id" id="filter_saison_id" size="1"
onChange="document.adminForm.submit();">
<?php
foreach ($saisons as $saison)
echo "<option value=\"" . $saison->saison_id . "\" " . ($filter_saison_id == $saison->saison_id ? "selected" : "") . ">" . htmlentities_utf8($saison->saisonbezeichnung) . "</option>";
?>
</select>
</td>
<td>
<?php if (!empty($rows)){ ?>
<input type="submit" value="<?php echo Text::_('COM_SPORTSMANAGER_EXPORT'); ?>" class="button"
onclick="const t = this.form.task;
t.value = 'admin_spielverlegungen_export';
setTimeout(() => { t.value = 'admin_spielverlegungen'; }, 100);"/>
<?php } ?>
<input type="hidden" name="task" value="admin_spielverlegungen"/>
</td>
</tr>
</table>
</form>
<div class="uk-overflow-auto">
<table class="uk-table-shrink contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>" style='width: 100%;'>
<tr class="sectiontableheader<?php echo $params->get('pageclass_sfx'); ?>">
<th nowrap style='text-align: center; width: 60px;'><STRONG>ID</STRONG></th>
<th nowrap style='text-align: center; width: 180px;'><STRONG><?php echo Text::_('COM_SPORTSMANAGER_COMPETITION'); ?></STRONG></th>
<th nowrap style='text-align: center; width: 200px;'><STRONG><?php echo Text::_('COM_SPORTSMANAGER_MATCH'); ?></STRONG></th>
<th nowrap style='text-align: center; width: 120px;'><STRONG><?php echo Text::_('COM_SPORTSMANAGER_OLD_DATE'); ?></STRONG></th>
<th nowrap style='text-align: center; width: 120px;'><STRONG><?php echo Text::_('COM_SPORTSMANAGER_NEW_DATE'); ?></STRONG></th>
<th nowrap style='text-align: left; width: 280px;'><STRONG><?php echo Text::_('COM_SPORTSMANAGER_COMMENT'); ?></STRONG></th>
<th nowrap style='text-align: center; width: 120px;'><STRONG><?php echo Text::_('COM_SPORTSMANAGER_status'); ?></strong></th>
<th></th>
</tr>
<?php
if (count($rows) > 0) {
$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_spielverlegung_edit&begegnung_id=' . $row->begegnung_id);
?>">
<?php echo $row->begegnung_id; ?>
</a>
</td>
<td nowrap style='text-align: center;'>
<?php echo htmlentities_utf8($row->Liga); ?>
</td>
<td nowrap style='text-align: center;'>
<?php
if ($row->Heim == $row->beantragt_von)
echo "<u>" . htmlentities_utf8($row->Heim) . "</u>";
else
echo htmlentities_utf8($row->Heim);
echo "<br>";
if ($row->Gast == $row->beantragt_von)
echo "<u>" . htmlentities_utf8($row->Gast) . "</u>";
else
echo htmlentities_utf8($row->Gast);
?>
</td>
<td nowrap style='text-align: center;'>
<?php echo str_replace(" ", "<br>", date('d.m.Y H:i', strtotime($row->Termin_alt))); ?>
</td>
<td nowrap style='text-align: center;'>
<?php echo $row->Termin_neu == "" ? "" : str_replace(" ", "<br>", date('d.m.Y H:i', strtotime($row->Termin_neu))); ?>
</td>
<td style='text-align: left;'>
<?php echo htmlentities_utf8($row->Begruendung_beantragt); ?>
</td>
<td style='text-align: center;'>
<?php echo htmlentities_utf8($row->status); ?>
</td>
<td nowrap><small>
<a href="<?php echo SportsManagerURL('&task=admin_spielverlegung_remove&id=' . $row->begegnung_id); ?>"
onclick="return confirm('<?php echo Text::_('COM_SPORTSMANAGER_REALLY_MATCH_RESCHEDULING'); ?>');"
title="<?php echo Text::_('COM_SPORTSMANAGER_REMOVE'); ?>">X</a></small>
<a href="<?php echo SportsManagerURL('&task=admin_spielverlegung_mailen&id=' . $row->begegnung_id); ?>"
title="<?php echo Text::_('COM_SPORTSMANAGER_EMAIL_SEND'); ?>">M</a></small>
</td>
</tr>
<?php
}
}
?>
</table></div>
<span class="article_seperator<?php echo $params->get('pageclass_sfx'); ?>">&nbsp;</span>
<?php
}
static function adminEditSpielverlegung($row,$teams): void
{
global $params;
?>
<div
class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_MATCH_RESCHEDULING'); ?>
: <?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 $row->Begegnung; ?>"/>
</td>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label for="beantragt_team"><?php echo Text::_('COM_SPORTSMANAGER_APPLIED_FOR'); ?>
:</label>
</td>
<td nowrap>
<select class="uk-select uk-form-width-medium" name="beantragt_verein" id="beantragt_team"
size="1" style='width: 400px;'>
<?php
foreach ($teams as $key => $team) {
echo "<option value=\"" . $key . "\"" . ($row->beantragt_verein == $key ? "selected" : "") . ">" . htmlentities_utf8($team) . "</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label
for="old_date"><?php echo Text::_('COM_SPORTSMANAGER_OLD_DATE'); ?>
:</label>
</td>
<td nowrap>
<input class="uk-select uk-form-width-medium" type="text" name="Termin_alt"
id="old_date" size="50" style='height: 34px;' readonly
value="<?php echo $row->Termin_alt; ?>"/>
</td>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label
for="new_date"><?php echo Text::_('COM_SPORTSMANAGER_NEW_DATE'); ?>
:</label>
</td>
<td nowrap>
<input class="uk-select uk-form-width-medium" type="text" name="Termin_neu"
id="new_date" size="50" maxlength="19" style='height: 34px;'
value="<?php echo $row->Termin_neu; ?>"/>
<?php echo Text::_('COM_SPORTSMANAGER_MATCH_SWAPPING_HELP'); ?>
</td>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label
for="reason"><?php echo Text::_('COM_SPORTSMANAGER_REASON_GAME_APPOINTMENT'); ?>
:</label>
</td>
<td nowrap>
<input class="uk-select uk-form-width-medium" type="text" name="Begruendung_beantragt"
id="reason" size="50" maxlength="255" style='height: 34px; width: 700px;'
value="<?php echo $row->Begruendung_beantragt; ?>"/>
</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_spielverlegung_save"/>
<input type="hidden" name="begegnung_id" value="<?php echo($row != null ? $row->begegnung_id : "0"); ?>"/>
<input type="hidden" name="beantragt_id" value="<?php echo($row != null ? $row->beantragt_id : "0"); ?>"/>
<input type="hidden" name="genehmigt_id" value="<?php echo($row != null ? $row->genehmigt_id : "0"); ?>"/>
<input type="hidden" name="abgelehnt_id" value="<?php echo($row != null ? $row->abgelehnt_id : "0"); ?>"/>
</form>
<?php
}
static function adminRegelwerke($rows): void static function adminRegelwerke($rows): void
{ {
global $params; global $params;
@@ -7496,7 +7756,7 @@ class HTML_sportsmanager_admin
<?php <?php
} }
static function adminEditEmailVorlage($vorlage,$row,$vars): void static function adminEditEmailVorlage($vorlage,$row,$vars,$back): void
{ {
global $params; global $params;
?> ?>
@@ -7576,6 +7836,7 @@ class HTML_sportsmanager_admin
<input type="submit" name="save" value="<?php echo Text::_('COM_SPORTSMANAGER_SAVE'); ?>" class="button"/> <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="submit" name="cancel" value="<?php echo Text::_('COM_SPORTSMANAGER_CANCEL'); ?>" class="button"/>
<input type="hidden" name="task" value="admin_email_vorlage_save"/> <input type="hidden" name="task" value="admin_email_vorlage_save"/>
<input type="hidden" name="back" value="<?php echo $back; ?>"/>
</form> </form>
<?php <?php
} }
@@ -9682,7 +9943,7 @@ class HTML_sportsmanager_admin
<?php <?php
} }
static function adminBegegnungen($veranstaltung, $modus, $rows): void static function adminBegegnungen($veranstaltung, $modus, $rows, $verschieben_admin): void
{ {
global $params; global $params;
$max_Spalten = 4; $max_Spalten = 4;
@@ -9693,7 +9954,8 @@ class HTML_sportsmanager_admin
<?php echo Text::_('COM_SPORTSMANAGER_ENCOUNTERS'); ?> <?php echo Text::_('COM_SPORTSMANAGER_ENCOUNTERS'); ?>
'<?php echo htmlentities_utf8($veranstaltung->bezeichnung); ?> '<?php echo htmlentities_utf8($veranstaltung->bezeichnung); ?>
': <?php echo Text::_('COM_SPORTSMANAGER_JOOMLA_MANAGEMENT'); ?></div> ': <?php echo Text::_('COM_SPORTSMANAGER_JOOMLA_MANAGEMENT'); ?></div>
<div class="uk-overflow-auto">
<table style="border-spacing: 10px; width: 100%;"> <table style="border-spacing: 10px; width: 100%;">
<tr> <tr>
<td colspan="3" nowrap> <td colspan="3" nowrap>
@@ -9846,11 +10108,17 @@ class HTML_sportsmanager_admin
href="<?php echo SportsManagerURL('&task=admin_ordnungsstrafe_edit&begegnungid=' . $row->begegnung_id); ?>" 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> title="<?php echo Text::_('COM_SPORTSMANAGER_ISSUE_DISCIPLINARY_FINES'); ?>">O</a></small></td>
<?php } ?> <?php } ?>
<?php if ($verschieben_admin && !$ergebnis_vorhanden){ ?>
<td nowrap><small><a
href="<?php echo SportsManagerURL('&task=admin_spielverlegung_edit&begegnung_id=' . $row->begegnung_id); ?>"
title="<?php echo Text::_('COM_SPORTSMANAGER_MATCH_RESCHEDULING'); ?>">V</a></small></td>
<?php } ?>
</tr> </tr>
<?php <?php
} }
?> ?>
</table> </table>
</div>
<?php <?php
} }
} }
@@ -576,7 +576,7 @@ COM_SPORTSMANAGER_PRIVATE_PLAYER_DATA="Private Spielerdaten in Vereins- und Mann
COM_SPORTSMANAGER_ASSOCIATIONS_MEMBERSHIPS_MANAGE="Vereine und Mitgliedschaften verwalten" COM_SPORTSMANAGER_ASSOCIATIONS_MEMBERSHIPS_MANAGE="Vereine und Mitgliedschaften verwalten"
COM_SPORTSMANAGER_MANAGE_CLASSIFICATIONS="Einstufungen verwalten" COM_SPORTSMANAGER_MANAGE_CLASSIFICATIONS="Einstufungen verwalten"
COM_SPORTSMANAGER_MANAGE_TEAM_PLANS="Mannschaftsspielpläne verwalten" COM_SPORTSMANAGER_MANAGE_TEAM_PLANS="Mannschaftsspielpläne verwalten"
COM_SPORTSMANAGER_MANAGE_RULES_POSTPONEMENT="Verschieberegeln verwalten" COM_SPORTSMANAGER_MANAGE_RULES_POSTPONEMENT="Spielverlegungen/Verschieberegeln verwalten"
COM_SPORTSMANAGER_MANAGE_VENUES="Spielorte verwalten" COM_SPORTSMANAGER_MANAGE_VENUES="Spielorte verwalten"
COM_SPORTSMANAGER_MANAGE_TEAM_COMPETITIONS="Mannschaftswettbewerbe verwalten" COM_SPORTSMANAGER_MANAGE_TEAM_COMPETITIONS="Mannschaftswettbewerbe verwalten"
COM_SPORTSMANAGER_MANAGE_PLAYER_STATISTICS="Spielerstastistiken verwalten" COM_SPORTSMANAGER_MANAGE_PLAYER_STATISTICS="Spielerstastistiken verwalten"
@@ -886,6 +886,9 @@ COM_SPORTSMANAGER_INITIAL_APPOINTMENT_SUGGESTIONS="Initiale Terminvorschl&auml;g
COM_SPORTSMANAGER_REQUESTING_TEAM="Beantragende Mannschaft" COM_SPORTSMANAGER_REQUESTING_TEAM="Beantragende Mannschaft"
COM_SPORTSMANAGER_OPPONENT_TEAM="Gegnerische Mannschaft" COM_SPORTSMANAGER_OPPONENT_TEAM="Gegnerische Mannschaft"
COM_SPORTSMANAGER_AGAINST_PROPOSALS_ALLOWED="Gegensvorschl&auml;ge zul&auml;ssig" COM_SPORTSMANAGER_AGAINST_PROPOSALS_ALLOWED="Gegensvorschl&auml;ge zul&auml;ssig"
COM_SPORTSMANAGER_REASON_REQUIRED="Begr&uuml;ndung erforderlich"
COM_SPORTSMANAGER_CLUB_ENTITLEMENT="Berechtigung Vereine"
COM_SPORTSMANAGER_ASSOCIATION_ENTITLEMENT="Berechtigung Verband"
COM_SPORTSMANAGER_LEAD_TIME="Vorlaufzeit" COM_SPORTSMANAGER_LEAD_TIME="Vorlaufzeit"
COM_SPORTSMANAGER_APPOINTMENT_PROPOSALS_MINIMAL="Terminvorschl&auml;ge minimal" COM_SPORTSMANAGER_APPOINTMENT_PROPOSALS_MINIMAL="Terminvorschl&auml;ge minimal"
COM_SPORTSMANAGER_APPOINTMENT_PROPOSALS_MAXIMUM="Terminvorschl&auml;ge maximal" COM_SPORTSMANAGER_APPOINTMENT_PROPOSALS_MAXIMUM="Terminvorschl&auml;ge maximal"
@@ -1056,4 +1059,12 @@ COM_SPORTSMANAGER_BILL_ISSUER="Rechnung erstellt"
COM_SPORTSMANAGER_MULTIPLIER="Multiplikator" COM_SPORTSMANAGER_MULTIPLIER="Multiplikator"
COM_SPORTSMANAGER_ADDITIONAL_INFORMATION="Weitere Angaben" COM_SPORTSMANAGER_ADDITIONAL_INFORMATION="Weitere Angaben"
COM_SPORTSMANAGER_EMAIL_WAS_SEND="Die E-Mail wurde erfolgreich versendet" COM_SPORTSMANAGER_EMAIL_WAS_SEND="Die E-Mail wurde erfolgreich versendet"
COM_SPORTSMANAGER_EMAIL_WAS_NOT_SEND="Die E-Mail wurde nicht versendet" COM_SPORTSMANAGER_EMAIL_WAS_NOT_SEND="Die E-Mail wurde nicht versendet"
COM_SPORTSMANAGER_OLD_DATE="Alter Termin"
COM_SPORTSMANAGER_NEW_DATE="Neuer Termin"
COM_SPORTSMANAGER_REASON_GAME_APPOINTMENT="Verlegungsgrund"
COM_SPORTSMANAGER_MATCH_RESCHEDULINGS="Spielverlegungen"
COM_SPORTSMANAGER_MATCH_RESCHEDULING="Spielverlegung"
COM_SPORTSMANAGER_MATCH_SWAPPING_HELP="Bei Heimrechttausch gleichen Termin eintragen"
COM_SPORTSMANAGER_NOT_VALID_TIME="Ung&uuml;ltige Uhrzeit"
COM_SPORTSMANAGER_REALLY_MATCH_RESCHEDULING="Willst Du diesen Spielverlegung wirklich entfernen?"
@@ -576,7 +576,7 @@ COM_SPORTSMANAGER_PRIVATE_PLAYER_DATA="View privat player information in club an
COM_SPORTSMANAGER_ASSOCIATIONS_MEMBERSHIPS_MANAGE="Manage clubs and memberships" COM_SPORTSMANAGER_ASSOCIATIONS_MEMBERSHIPS_MANAGE="Manage clubs and memberships"
COM_SPORTSMANAGER_MANAGE_CLASSIFICATIONS="Manage classifications" COM_SPORTSMANAGER_MANAGE_CLASSIFICATIONS="Manage classifications"
COM_SPORTSMANAGER_MANAGE_TEAM_PLANS="Manage team plans" COM_SPORTSMANAGER_MANAGE_TEAM_PLANS="Manage team plans"
COM_SPORTSMANAGER_MANAGE_RULES_POSTPONEMENT="Manage postpone rules" COM_SPORTSMANAGER_MANAGE_RULES_POSTPONEMENT="Manage match rescheduling/postpone rules"
COM_SPORTSMANAGER_MANAGE_VENUES="Manage venues" COM_SPORTSMANAGER_MANAGE_VENUES="Manage venues"
COM_SPORTSMANAGER_MANAGE_TEAM_COMPETITIONS="Manage team competitions" COM_SPORTSMANAGER_MANAGE_TEAM_COMPETITIONS="Manage team competitions"
COM_SPORTSMANAGER_MANAGE_PLAYER_STATISTICS="Manage player statitics" COM_SPORTSMANAGER_MANAGE_PLAYER_STATISTICS="Manage player statitics"
@@ -886,6 +886,9 @@ COM_SPORTSMANAGER_INITIAL_APPOINTMENT_SUGGESTIONS="Initial appointment suggestio
COM_SPORTSMANAGER_REQUESTING_TEAM="Requesting team" COM_SPORTSMANAGER_REQUESTING_TEAM="Requesting team"
COM_SPORTSMANAGER_OPPONENT_TEAM="Opponent team" COM_SPORTSMANAGER_OPPONENT_TEAM="Opponent team"
COM_SPORTSMANAGER_AGAINST_PROPOSALS_ALLOWED="Against proposals allowed" COM_SPORTSMANAGER_AGAINST_PROPOSALS_ALLOWED="Against proposals allowed"
COM_SPORTSMANAGER_REASON_REQUIRED="Reason required"
COM_SPORTSMANAGER_CLUB_ENTITLEMENT="Club entitlement"
COM_SPORTSMANAGER_ASSOCIATION_ENTITLEMENT="Association_entitlement"
COM_SPORTSMANAGER_LEAD_TIME="Lead time" COM_SPORTSMANAGER_LEAD_TIME="Lead time"
COM_SPORTSMANAGER_APPOINTMENT_PROPOSALS_MINIMAL="Appointment proposals minimal" COM_SPORTSMANAGER_APPOINTMENT_PROPOSALS_MINIMAL="Appointment proposals minimal"
COM_SPORTSMANAGER_APPOINTMENT_PROPOSALS_MAXIMUM="Appointment proposals maximum" COM_SPORTSMANAGER_APPOINTMENT_PROPOSALS_MAXIMUM="Appointment proposals maximum"
@@ -1056,4 +1059,12 @@ COM_SPORTSMANAGER_BILL_ISSUER="Bill issuer"
COM_SPORTSMANAGER_MULTIPLIER="Multiplier" COM_SPORTSMANAGER_MULTIPLIER="Multiplier"
COM_SPORTSMANAGER_ADDITIONAL_INFORMATION="Additional information" COM_SPORTSMANAGER_ADDITIONAL_INFORMATION="Additional information"
COM_SPORTSMANAGER_EMAIL_WAS_SEND="E-Mail was succesfully sent" COM_SPORTSMANAGER_EMAIL_WAS_SEND="E-Mail was succesfully sent"
COM_SPORTSMANAGER_EMAIL_WAS_NOT_SEND="E-Mail was not sent" COM_SPORTSMANAGER_EMAIL_WAS_NOT_SEND="E-Mail was not sent"
COM_SPORTSMANAGER_OLD_DATE="Old Date"
COM_SPORTSMANAGER_NEW_DATE="New Date"
COM_SPORTSMANAGER_REASON_GAME_APPOINTMENT="Appointment reason"
COM_SPORTSMANAGER_MATCH_RESCHEDULINGS="Match reschedulings"
COM_SPORTSMANAGER_MATCH_RESCHEDULING="Match rescheduling"
COM_SPORTSMANAGER_MATCH_SWAPPING_HELP="If home advantage is swapped, enter the same date"
COM_SPORTSMANAGER_NOT_VALID_TIME="Not valid time"
COM_SPORTSMANAGER_REALLY_MATCH_RESCHEDULING="Do you really want to remove this match rescheduling?"
+14 -7
View File
@@ -1097,16 +1097,19 @@ return new class () implements InstallerScriptInterface
if (!$db->execute()) { die($db->stderr(true)); } if (!$db->execute()) { die($db->stderr(true)); }
$query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_verschieberegel` (" $query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_verschieberegel` ("
. "\n `verschieberegel_id` int(11) NOT NULL AUTO_INCREMENT," . "\n `verschieberegel_id` int(11) NOT NULL AUTO_INCREMENT,"
. "\n `bezeichnung` varchar(50) NOT NULL DEFAULT ''," . "\n `bezeichnung` varchar(50) NOT NULL DEFAULT '',"
. "\n `initial_ohne_termin` tinyint(1) NOT NULL DEFAULT '0'," . "\n `initial_ohne_termin` tinyint(1) NOT NULL DEFAULT '0',"
. "\n `keine_gegenvorschlaege` tinyint(1) NOT NULL DEFAULT '0'," . "\n `keine_gegenvorschlaege` tinyint(1) NOT NULL DEFAULT '0',"
. "\n `vorlaufzeit_tage` tinyint(4) NOT NULL DEFAULT '0'," . "\n `vorlaufzeit_tage` tinyint(4) NOT NULL DEFAULT '0',"
. "\n `termine_minimal` tinyint(4) NOT NULL DEFAULT '0'," . "\n `termine_minimal` tinyint(4) NOT NULL DEFAULT '0',"
. "\n `termine_maximal` tinyint(4) NOT NULL DEFAULT '0'," . "\n `termine_maximal` tinyint(4) NOT NULL DEFAULT '0',"
. "\n `ablehnen` tinyint(1) NOT NULL DEFAULT '0'," . "\n `ablehnen` tinyint(1) NOT NULL DEFAULT '0',"
. "\n PRIMARY KEY (`verschieberegel_id`)" . "\n `begruendung_erforderlich` int(1) NOT NULL DEFAULT 0,"
. "\n) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;"; . "\n `vereine_berechtigt` int(1) NOT NULL DEFAULT 1,"
. "\n `verband_berechtigt` int(1) NOT NULL DEFAULT 0,"
. "\n PRIMARY KEY (`verschieberegel_id`)"
. "\n) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
$db->setQuery( $query ); $db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); } if (!$db->execute()) { die($db->stderr(true)); }
@@ -1181,7 +1184,7 @@ 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 = '114';"; $query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'datenbank_version', wert = '115';";
$db->setQuery( $query ); $db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); } if (!$db->execute()) { die($db->stderr(true)); }
@@ -1234,6 +1237,10 @@ 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 INTO `#__sportsmanager_email_vorlagen` (`email_vorlagen_id`, `vorlage`) VALUES (NULL, 'Spielverlegung');";
$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)',"
. "\n status = '1'," . "\n status = '1',"