mirror of
https://github.com/Deutscher-Tischfussballbund/com_sportsmanager.git
synced 2026-06-10 14:37:52 +00:00
Compare commits
59 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 24f4195403 | |||
| c1b7cb1e8c | |||
| 878cacd8cd | |||
| 5f830602ef | |||
| eef105895b | |||
| c0bdbb4bde | |||
| d05f3c5d7f | |||
| 0c334d897d | |||
| 79efed156b | |||
| 7984ea73aa | |||
| 7d07aee916 | |||
| 43acc01861 | |||
| fa374986ca | |||
| aa68992d45 | |||
| 0d4381fc7f | |||
| 9b4eb13d52 | |||
| cfe4f871f7 | |||
| bbe786a075 | |||
| 64ce39a59f | |||
| d0258d967d | |||
| bf99d459fb | |||
| bc91be9382 | |||
| 5c09a35485 | |||
| f14d5a1e8c | |||
| 26fd06afef | |||
| 1f147081e1 | |||
| 4f89abc630 | |||
| d84c2eefcf | |||
| ba73036b02 | |||
| 29a108d88c | |||
| 11e42c2374 | |||
| 56776c01f0 | |||
| 6187456e31 | |||
| 49e3bde816 | |||
| 15347b3ab7 | |||
| 3363ec1a77 | |||
| 751c1919d4 | |||
| 9babcec39e | |||
| e8c4ab2d1d | |||
| 53ff7ab566 | |||
| ac8bafaa9e | |||
| 4f6edb0acb | |||
| 822708356b | |||
| 7c302d4ded | |||
| 1e63f2b542 | |||
| 1d9aa13300 | |||
| ea85f102a5 | |||
| ebfd6ee4e9 | |||
| a503325ca4 | |||
| 218dc138fb | |||
| eed53841cf | |||
| dbc79096d4 | |||
| 3e93e27f72 | |||
| 8c022f831a | |||
| 2ab429f949 | |||
| 6e53017158 | |||
| 56679669c0 | |||
| 1e8a7a3ae0 | |||
| 269af499c8 |
@@ -98,3 +98,24 @@ jobs:
|
|||||||
else
|
else
|
||||||
echo "No draft releases found"
|
echo "No draft releases found"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
- name: Send notification to Teams
|
||||||
|
run: |
|
||||||
|
curl -H 'Content-Type: application/json' \
|
||||||
|
-d "{
|
||||||
|
\"@type\": \"MessageCard\",
|
||||||
|
\"@context\": \"http://schema.org/extensions\",
|
||||||
|
\"summary\": \"New Release\",
|
||||||
|
\"themeColor\": \"0076D7\",
|
||||||
|
\"title\": \"🚀 New Release: ${{ github.ref_name }}\",
|
||||||
|
\"sections\": [{
|
||||||
|
\"activityTitle\": \"Repository: ${{ github.repository }}\",
|
||||||
|
\"text\": \"${{ steps.release_notes_github.outputs.body }}\"
|
||||||
|
}],
|
||||||
|
\"potentialAction\": [{
|
||||||
|
\"@type\": \"OpenUri\",
|
||||||
|
\"name\": \"View Release\",
|
||||||
|
\"targets\": [{ \"os\": \"default\", \"uri\": \"https://github.com/${{ github.repository }}/releases/tag/${{ github.ref_name }}\" }]
|
||||||
|
}]
|
||||||
|
}" \
|
||||||
|
${{ secrets.TEAMS_WEBHOOK_URL }}
|
||||||
|
|||||||
@@ -18,18 +18,25 @@ defined('_JEXEC') or die('Restricted access');
|
|||||||
require_once JPATH_SITE . '/components/com_sportsmanager/util/image.php';
|
require_once JPATH_SITE . '/components/com_sportsmanager/util/image.php';
|
||||||
require_once JPATH_SITE . '/components/com_sportsmanager/database/init.php';
|
require_once JPATH_SITE . '/components/com_sportsmanager/database/init.php';
|
||||||
|
|
||||||
function UhrzeitWandlerDE($Zeitstempel): mixed
|
function UhrzeitWandlerDE(string $input): string {
|
||||||
{
|
// mögliche Datumsformate
|
||||||
$Temp = explode(' ', $Zeitstempel);
|
$formats = [
|
||||||
$Datum = $Temp[0];
|
'Y-m-d H:i',
|
||||||
$Uhrzeit = $Temp[1];
|
'd.m.Y H:i',
|
||||||
if (preg_match("/\d{2}\.\d{2}\.\d{4}/", $Datum)) {
|
'd.m.Y H:i:s',
|
||||||
$Datum = substr($Datum, 6, 4) . "-" . substr($Datum, 3, 2) . "-" . substr($Datum, 0, 2);
|
];
|
||||||
} else if (preg_match("/\d{4}-\d{2}-\d{2}/", $Datum)) {
|
|
||||||
return $Zeitstempel;
|
|
||||||
}
|
|
||||||
return $Datum . " " . $Uhrzeit;
|
|
||||||
|
|
||||||
|
foreach ($formats as $format) {
|
||||||
|
$dt = DateTime::createFromFormat($format, $input);
|
||||||
|
|
||||||
|
// prüfen, ob Parsing erfolgreich war UND das Datum exakt passt
|
||||||
|
if ($dt && $dt->format($format) === $input) {
|
||||||
|
return $dt->format('Y-m-d H:i:s');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// falls kein bekanntes Format -> Original zurückgeben
|
||||||
|
return $input;
|
||||||
}
|
}
|
||||||
|
|
||||||
function validateDate($date, $format = 'Y-m-d H:i:s'): bool
|
function validateDate($date, $format = 'Y-m-d H:i:s'): bool
|
||||||
@@ -38,6 +45,22 @@ function validateDate($date, $format = 'Y-m-d H:i:s'): bool
|
|||||||
return $d && $d->format($format) == $date;
|
return $d && $d->format($format) == $date;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function detectFileEncoding(string $filename): string {
|
||||||
|
$handle = fopen($filename, "r");
|
||||||
|
if (!$handle) {
|
||||||
|
throw new Exception("Datei konnte nicht geöffnet werden: $filename");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Erstes Stück der Datei lesen (nicht alles, reicht für Erkennung)
|
||||||
|
$sample = fread($handle, 1000);
|
||||||
|
fclose($handle);
|
||||||
|
|
||||||
|
// Encoding bestimmen
|
||||||
|
$encoding = mb_detect_encoding($sample, ['UTF-8', 'ISO-8859-1', 'Windows-1252'], true);
|
||||||
|
|
||||||
|
return $encoding ?: 'UTF-8'; // Fallback auf UTF-8
|
||||||
|
}
|
||||||
|
|
||||||
function adminUebersicht(): void
|
function adminUebersicht(): void
|
||||||
{
|
{
|
||||||
$db = getDatabase();
|
$db = getDatabase();
|
||||||
@@ -658,17 +681,15 @@ function adminEinstellungen(): void
|
|||||||
$lizenz_anzeigen = $jInput->get('lizenz_anzeigen', 0, 'INT');
|
$lizenz_anzeigen = $jInput->get('lizenz_anzeigen', 0, 'INT');
|
||||||
$anzahl_mitglieder_zeigen = $jInput->get('anzahl_mitglieder_zeigen', 0, 'INT');
|
$anzahl_mitglieder_zeigen = $jInput->get('anzahl_mitglieder_zeigen', 0, 'INT');
|
||||||
$verband_anzeigen = $jInput->get('verband_anzeigen', 0, 'INT');
|
$verband_anzeigen = $jInput->get('verband_anzeigen', 0, 'INT');
|
||||||
|
$spalte_mitglieder_zeigen = $jInput->get('spalte_mitglieder_zeigen', 0, 'INT');
|
||||||
$turnierbaum_zeigen = $jInput->get('turnierbaum_zeigen', 0, 'INT');
|
$turnierbaum_zeigen = $jInput->get('turnierbaum_zeigen', 0, 'INT');
|
||||||
$termine_beantragen = $jInput->get('termine_beantragen', 0, 'INT');
|
$termine_beantragen = $jInput->get('termine_beantragen', 0, 'INT');
|
||||||
|
$enableEmailReminders = $jInput->get('enable_email_reminders', 0, 'INT');
|
||||||
|
|
||||||
$spielerimport_persoenliche_daten_vorauswahl = $jInput->get('spielerimport_persoenliche_daten_vorauswahl', 0, 'INT');
|
$spielerimport_persoenliche_daten_vorauswahl = $jInput->get('spielerimport_persoenliche_daten_vorauswahl', 0, 'INT');
|
||||||
|
|
||||||
$api_push_key = $jInput->get('api_push_key', '', 'RAW');
|
$api_push_key = $jInput->get('api_push_key', '', 'RAW');
|
||||||
|
|
||||||
/*
|
|
||||||
$twitter_benutzername = $db->escape(trim( $jInput->get('twitter_benutzername', '', 'RAW') ));
|
|
||||||
$twitter_kennwort = !empty($twitter_benutzername) ? $db->escape(trim( $jInput->get('twitter_kennwort', '', 'RAW') )) : "";
|
|
||||||
*/
|
|
||||||
|
|
||||||
$query = "REPLACE #__sportsmanager_einstellungen"
|
$query = "REPLACE #__sportsmanager_einstellungen"
|
||||||
. "\n SET name = 'basis_spielernr'"
|
. "\n SET name = 'basis_spielernr'"
|
||||||
. ", wert = '$basis_spielernr'";
|
. ", wert = '$basis_spielernr'";
|
||||||
@@ -717,6 +738,14 @@ function adminEinstellungen(): void
|
|||||||
die($db->stderr(true));
|
die($db->stderr(true));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$query = "REPLACE #__sportsmanager_einstellungen"
|
||||||
|
. "\n SET name = 'spalte_mitglieder_zeigen'"
|
||||||
|
. ", wert = '$spalte_mitglieder_zeigen'";
|
||||||
|
$db->setQuery($query);
|
||||||
|
if (!$db->execute()) {
|
||||||
|
die($db->stderr(true));
|
||||||
|
}
|
||||||
|
|
||||||
$query = "REPLACE #__sportsmanager_einstellungen"
|
$query = "REPLACE #__sportsmanager_einstellungen"
|
||||||
. "\n SET name = 'turnierbaum_zeigen'"
|
. "\n SET name = 'turnierbaum_zeigen'"
|
||||||
. ", wert = '$turnierbaum_zeigen'";
|
. ", wert = '$turnierbaum_zeigen'";
|
||||||
@@ -771,6 +800,12 @@ function adminEinstellungen(): void
|
|||||||
die($db->stderr(true));
|
die($db->stderr(true));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$query = "REPLACE #__sportsmanager_einstellungen SET name = 'enable_email_reminders', wert = '$enableEmailReminders'";
|
||||||
|
$db->setQuery($query);
|
||||||
|
if (!$db->execute()) {
|
||||||
|
die($db->stderr(true));
|
||||||
|
}
|
||||||
|
|
||||||
redirectSportsManagerURL('&task=admin_uebersicht');
|
redirectSportsManagerURL('&task=admin_uebersicht');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -6448,7 +6483,6 @@ function adminEditMannschaft(): void
|
|||||||
if ($id == 0) {
|
if ($id == 0) {
|
||||||
$query = "INSERT INTO #__sportsmanager_team (verein_id, veranstaltung_id, teamname, teamname_kurz, tischtyp, tischeigenschaften, heimspiel_wochentag, heimspiel_uhrzeit, heimspielort_id, nichtraucherschutz, zusatzpunkte" . ($veranstaltung->tabellenwertung == -2 ? ", platz" : "") . ", pin)"
|
$query = "INSERT INTO #__sportsmanager_team (verein_id, veranstaltung_id, teamname, teamname_kurz, tischtyp, tischeigenschaften, heimspiel_wochentag, heimspiel_uhrzeit, heimspielort_id, nichtraucherschutz, zusatzpunkte" . ($veranstaltung->tabellenwertung == -2 ? ", platz" : "") . ", pin)"
|
||||||
. "\n VALUES (" . ($verein_id != 0 ? "'$verein_id'" : "NULL") . ", '$veranstaltungId', '$teamname', '$teamname_kurz', '$tischtyp', '$tischeigenschaften', '$heimspiel_wochentag', '$heimspiel_uhrzeit', " . ($heimspielort_id != 0 ? "'$heimspielort_id'" : "NULL") . ", '$nichtraucherschutz', '$zusatzpunkte'" . ($veranstaltung->tabellenwertung == -2 ? ($platz != 0 ? ", '$platz'" : ", NULL") : "") . ", '$pin');";
|
. "\n VALUES (" . ($verein_id != 0 ? "'$verein_id'" : "NULL") . ", '$veranstaltungId', '$teamname', '$teamname_kurz', '$tischtyp', '$tischeigenschaften', '$heimspiel_wochentag', '$heimspiel_uhrzeit', " . ($heimspielort_id != 0 ? "'$heimspielort_id'" : "NULL") . ", '$nichtraucherschutz', '$zusatzpunkte'" . ($veranstaltung->tabellenwertung == -2 ? ($platz != 0 ? ", '$platz'" : ", NULL") : "") . ", '$pin');";
|
||||||
echo $query;
|
|
||||||
$db->setQuery($query);
|
$db->setQuery($query);
|
||||||
if (!$db->execute()) {
|
if (!$db->execute()) {
|
||||||
die($db->stderr(true));
|
die($db->stderr(true));
|
||||||
@@ -8319,7 +8353,7 @@ function adminSaveBegegnungSpielplan(): void
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($zwischenergebnis) {
|
if ($zwischenergebnis) {
|
||||||
$query = "INSERT INTO #__sportsmanager_unbestaetigtes_ergebnis (begegnung_id, vorschlagendes_team_id, zwischenergebnis, kommentar, vorgeschlagen)"
|
$query = "INSERT IGNORE INTO #__sportsmanager_unbestaetigtes_ergebnis (begegnung_id, vorschlagendes_team_id, zwischenergebnis, kommentar, vorgeschlagen)"
|
||||||
. "\n VALUES ('$id', " . ($bestaetigen != 0 ? "'$vorschlagendes_team_id'" : "'0'") . ", '1', '$kommentar', now());";
|
. "\n VALUES ('$id', " . ($bestaetigen != 0 ? "'$vorschlagendes_team_id'" : "'0'") . ", '1', '$kommentar', now());";
|
||||||
$db->setQuery($query);
|
$db->setQuery($query);
|
||||||
if (!$db->execute()) {
|
if (!$db->execute()) {
|
||||||
@@ -8333,7 +8367,7 @@ function adminSaveBegegnungSpielplan(): void
|
|||||||
abortWithError($db->stderr(true));
|
abortWithError($db->stderr(true));
|
||||||
}
|
}
|
||||||
} else if ($bestaetigen != 0) {
|
} else if ($bestaetigen != 0) {
|
||||||
$query = "INSERT INTO #__sportsmanager_unbestaetigtes_ergebnis (begegnung_id, vorschlagendes_team_id, kommentar, vorgeschlagen)"
|
$query = "INSERT IGNORE INTO #__sportsmanager_unbestaetigtes_ergebnis (begegnung_id, vorschlagendes_team_id, kommentar, vorgeschlagen)"
|
||||||
. "\n VALUES ('$id', '$vorschlagendes_team_id', '$kommentar', now());";
|
. "\n VALUES ('$id', '$vorschlagendes_team_id', '$kommentar', now());";
|
||||||
$db->setQuery($query);
|
$db->setQuery($query);
|
||||||
if (!$db->execute()) {
|
if (!$db->execute()) {
|
||||||
@@ -9491,6 +9525,8 @@ function adminBegegnungenImportieren(): void
|
|||||||
redirectSportsManagerURL('&task=admin_spieler', Text::_('COM_SPORTSMANAGER_NO_FILE_SPECIFIED'));
|
redirectSportsManagerURL('&task=admin_spieler', Text::_('COM_SPORTSMANAGER_NO_FILE_SPECIFIED'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$encoding = detectFileEncoding($_FILES["daten"]["tmp_name"]);
|
||||||
|
|
||||||
$handle = fopen($_FILES["daten"]["tmp_name"], "r");
|
$handle = fopen($_FILES["daten"]["tmp_name"], "r");
|
||||||
if (!$handle) {
|
if (!$handle) {
|
||||||
redirectSportsManagerURL('&task=admin_spieler', Text::_('COM_SPORTSMANAGER_COULD_NOT_OPEN_FILE'));
|
redirectSportsManagerURL('&task=admin_spieler', Text::_('COM_SPORTSMANAGER_COULD_NOT_OPEN_FILE'));
|
||||||
@@ -9512,6 +9548,7 @@ function adminBegegnungenImportieren(): void
|
|||||||
$Titelzeile = null;
|
$Titelzeile = null;
|
||||||
$import_zeile = false;
|
$import_zeile = false;
|
||||||
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
|
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
|
||||||
|
if (empty($data[0])){continue;}
|
||||||
if ($Zeile == 1) {
|
if ($Zeile == 1) {
|
||||||
foreach($data as $spalte_nr => $spalte)
|
foreach($data as $spalte_nr => $spalte)
|
||||||
{
|
{
|
||||||
@@ -9520,7 +9557,7 @@ function adminBegegnungenImportieren(): void
|
|||||||
if (vergleich($spalte,"heim,heimteam,heimmannschaft")) $Titelzeile['Heim'] = $spalte_nr;
|
if (vergleich($spalte,"heim,heimteam,heimmannschaft")) $Titelzeile['Heim'] = $spalte_nr;
|
||||||
if (vergleich($spalte,"gast,gastteam,gastmannschaft")) $Titelzeile['Gast'] = $spalte_nr;
|
if (vergleich($spalte,"gast,gastteam,gastmannschaft")) $Titelzeile['Gast'] = $spalte_nr;
|
||||||
if (vergleich($spalte,"spielnr,spielnummer")) $Titelzeile['Spiel_Nr'] = $spalte_nr;
|
if (vergleich($spalte,"spielnr,spielnummer")) $Titelzeile['Spiel_Nr'] = $spalte_nr;
|
||||||
if (vergleich($spalte,"spieltagtitel")) $Titelzeile['Spieltag_Titel'] = $spalte_nr;
|
if (vergleich($spalte,"spieltagtitel,spieltitel")) $Titelzeile['Spieltag_Titel'] = $spalte_nr;
|
||||||
if (vergleich($spalte,"jahr,spieljahr")) $Titelzeile['Spieljahr'] = $spalte_nr;
|
if (vergleich($spalte,"jahr,spieljahr")) $Titelzeile['Spieljahr'] = $spalte_nr;
|
||||||
if (vergleich($spalte,"kalenderwoche,woche,kw")) $Titelzeile['Kalenderwoche'] = $spalte_nr;
|
if (vergleich($spalte,"kalenderwoche,woche,kw")) $Titelzeile['Kalenderwoche'] = $spalte_nr;
|
||||||
}
|
}
|
||||||
@@ -9529,10 +9566,16 @@ function adminBegegnungenImportieren(): void
|
|||||||
$bgcolor = "green";
|
$bgcolor = "green";
|
||||||
$Begegnung[$Zeile]['spieltag'] = $data[$Titelzeile['Spieltag_Nr']];
|
$Begegnung[$Zeile]['spieltag'] = $data[$Titelzeile['Spieltag_Nr']];
|
||||||
$Begegnung[$Zeile]['zeitpunkt'] = UhrzeitWandlerDE($data[$Titelzeile['Spielstart']]);
|
$Begegnung[$Zeile]['zeitpunkt'] = UhrzeitWandlerDE($data[$Titelzeile['Spielstart']]);
|
||||||
$Begegnung[$Zeile]['heim_team_id'] = $Mannschaften[$data[$Titelzeile['Heim']]]['team_id'];
|
if ($encoding == "UTF-8"){
|
||||||
$Begegnung[$Zeile]['gast_team_id'] = $Mannschaften[$data[$Titelzeile['Gast']]]['team_id'];
|
$Begegnung[$Zeile]['heim_team_id'] = $Mannschaften[$data[$Titelzeile['Heim']]]['team_id'];
|
||||||
|
$Begegnung[$Zeile]['gast_team_id'] = $Mannschaften[$data[$Titelzeile['Gast']]]['team_id'];
|
||||||
|
if (isset($data[$Titelzeile['Spieltag_Titel']])) $Begegnung[$Zeile]['spieltag_titel'] = $data[$Titelzeile['Spieltag_Titel']];
|
||||||
|
} else {
|
||||||
|
$Begegnung[$Zeile]['heim_team_id'] = $Mannschaften[utf8_encode($data[$Titelzeile['Heim']])]['team_id'];
|
||||||
|
$Begegnung[$Zeile]['gast_team_id'] = $Mannschaften[utf8_encode($data[$Titelzeile['Gast']])]['team_id'];
|
||||||
|
if (isset($data[$Titelzeile['Spieltag_Titel']])) $Begegnung[$Zeile]['spieltag_titel'] = utf8_encode($data[$Titelzeile['Spieltag_Titel']]);
|
||||||
|
}
|
||||||
if (isset($data[$Titelzeile['Spiel_Nr']])) $Begegnung[$Zeile]['spiel_nr'] = $data[$Titelzeile['Spiel_Nr']];
|
if (isset($data[$Titelzeile['Spiel_Nr']])) $Begegnung[$Zeile]['spiel_nr'] = $data[$Titelzeile['Spiel_Nr']];
|
||||||
if (isset($data[$Titelzeile['Spieltag_Titel']])) $Begegnung[$Zeile]['spieltag_titel'] = $data[$Titelzeile['Spieltag_Titel']];
|
|
||||||
echo "<tr style='color: white;'>";
|
echo "<tr style='color: white;'>";
|
||||||
if ($Begegnung[$Zeile]['spieltag'] > 99 or $Begegnung[$Zeile]['spieltag'] < 1) {
|
if ($Begegnung[$Zeile]['spieltag'] > 99 or $Begegnung[$Zeile]['spieltag'] < 1) {
|
||||||
$bgcolor = "red";
|
$bgcolor = "red";
|
||||||
@@ -9552,7 +9595,6 @@ function adminBegegnungenImportieren(): void
|
|||||||
$Mannschaften[$data[$Titelzeile['Heim']]]['heimspiel_uhrzeit']);
|
$Mannschaften[$data[$Titelzeile['Heim']]]['heimspiel_uhrzeit']);
|
||||||
}
|
}
|
||||||
|
|
||||||
$Begegnung[$Zeile]['zeitpunkt'] = $data[$Titelzeile['Spielstart']];
|
|
||||||
if (!validateDate($Begegnung[$Zeile]['zeitpunkt'])) {
|
if (!validateDate($Begegnung[$Zeile]['zeitpunkt'])) {
|
||||||
$bgcolor = "red";
|
$bgcolor = "red";
|
||||||
$import = false;
|
$import = false;
|
||||||
@@ -9572,7 +9614,12 @@ function adminBegegnungenImportieren(): void
|
|||||||
} else {
|
} else {
|
||||||
$bgcolor = "green";
|
$bgcolor = "green";
|
||||||
}
|
}
|
||||||
echo "<td style='text-align: center; background-color:" . $bgcolor . "'>" . $data[$Titelzeile['Heim']] . "</td>";
|
echo "<td style='text-align: center; background-color:" . $bgcolor . "'>";
|
||||||
|
if ($encoding == "UTF-8")
|
||||||
|
echo $data[$Titelzeile['Heim']];
|
||||||
|
else
|
||||||
|
echo utf8_encode($data[$Titelzeile['Heim']]);
|
||||||
|
echo "</td>";
|
||||||
if ($Begegnung[$Zeile]['gast_team_id'] == "") {
|
if ($Begegnung[$Zeile]['gast_team_id'] == "") {
|
||||||
if ($data[$Titelzeile['Gast']] == "spielfrei") {
|
if ($data[$Titelzeile['Gast']] == "spielfrei") {
|
||||||
$bgcolor = "orange";
|
$bgcolor = "orange";
|
||||||
@@ -9584,7 +9631,12 @@ function adminBegegnungenImportieren(): void
|
|||||||
} else {
|
} else {
|
||||||
$bgcolor = "green";
|
$bgcolor = "green";
|
||||||
}
|
}
|
||||||
echo "<td style='text-align: center; background-color:" . $bgcolor . "'>" . $data[$Titelzeile['Gast']] . "</td>";
|
echo "<td style='text-align: center; background-color:" . $bgcolor . "'>";
|
||||||
|
if ($encoding == "UTF-8")
|
||||||
|
echo $data[$Titelzeile['Gast']];
|
||||||
|
else
|
||||||
|
echo utf8_encode($data[$Titelzeile['Gast']]);
|
||||||
|
echo "</td>";
|
||||||
echo "</tr>";
|
echo "</tr>";
|
||||||
}
|
}
|
||||||
if (!$import_zeile) {
|
if (!$import_zeile) {
|
||||||
@@ -9592,6 +9644,7 @@ function adminBegegnungenImportieren(): void
|
|||||||
}
|
}
|
||||||
$Zeile++;
|
$Zeile++;
|
||||||
}
|
}
|
||||||
|
echo "<tr><td colspan=4 style='text-align: center;'>Dateiformat: $encoding</td></tr>";
|
||||||
echo "</table>";
|
echo "</table>";
|
||||||
fclose($handle);
|
fclose($handle);
|
||||||
|
|
||||||
@@ -9818,7 +9871,12 @@ function adminBegegnungenPokalrundeAuslosenForm(): void
|
|||||||
. "\n ORDER BY spieltag DESC";
|
. "\n ORDER BY spieltag DESC";
|
||||||
$veranstaltung->nicht_abgeschlossene_spiele = loadResult($db, $query);
|
$veranstaltung->nicht_abgeschlossene_spiele = loadResult($db, $query);
|
||||||
|
|
||||||
HTML_sportsmanager_admin::adminBegegnungenPokalrundeAuslosenForm($veranstaltung,getAuswahlSpieltagtitel());
|
$query = "SELECT *"
|
||||||
|
. "\n FROM #__sportsmanager_spielort"
|
||||||
|
. "\n ORDER BY ortsname, name, ortsteil";
|
||||||
|
$spielorte = loadObjectList($db, $query);
|
||||||
|
|
||||||
|
HTML_sportsmanager_admin::adminBegegnungenPokalrundeAuslosenForm($veranstaltung,getAuswahlSpieltagtitel(),$spielorte);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[NoReturn] function adminBegegnungenPokalrundeAuslosen(): void
|
#[NoReturn] function adminBegegnungenPokalrundeAuslosen(): void
|
||||||
@@ -9828,6 +9886,7 @@ function adminBegegnungenPokalrundeAuslosenForm(): void
|
|||||||
|
|
||||||
$sperren = false;
|
$sperren = false;
|
||||||
$veranstaltungId = $jInput->get('veranstaltungid', 0, 'INT');
|
$veranstaltungId = $jInput->get('veranstaltungid', 0, 'INT');
|
||||||
|
$spielort_id = $jInput->get('spielort_id', 0, 'INT');
|
||||||
$rundenNr = $jInput->get('runde', 0, 'INT');
|
$rundenNr = $jInput->get('runde', 0, 'INT');
|
||||||
$rundenTitel = $jInput->get('rundentitel', 0, 'STRING');
|
$rundenTitel = $jInput->get('rundentitel', 0, 'STRING');
|
||||||
$spielumplatz3 = $jInput->get('spielumplatz3', 0, 'INT');
|
$spielumplatz3 = $jInput->get('spielumplatz3', 0, 'INT');
|
||||||
@@ -9978,7 +10037,7 @@ function adminBegegnungenPokalrundeAuslosenForm(): void
|
|||||||
$query .= "('" . $match['zeitpunkt'] . "', " . $rundenNr .
|
$query .= "('" . $match['zeitpunkt'] . "', " . $rundenNr .
|
||||||
", '" . $match['rundentitel'] . "', " . $key .
|
", '" . $match['rundentitel'] . "', " . $key .
|
||||||
", '" . $match['heim'] . "', '" . $match['gast'] . "'" .
|
", '" . $match['heim'] . "', '" . $match['gast'] . "'" .
|
||||||
", " . ($match['heimspielort_id'] != 0 ? "'" . $match['heimspielort_id'] . "'" : "NULL") . ")";
|
", " . ($spielort_id != 0 ? "'" . $spielort_id . "'" : "NULL") . ")";
|
||||||
}
|
}
|
||||||
$query .= "; ";
|
$query .= "; ";
|
||||||
$db->setQuery($query);
|
$db->setQuery($query);
|
||||||
@@ -10007,9 +10066,11 @@ function adminBegegnungenPokalrundeAuslosenForm(): void
|
|||||||
|
|
||||||
$sperren = false;
|
$sperren = false;
|
||||||
$veranstaltungId = $jInput->get('veranstaltungid', 0, 'INT');
|
$veranstaltungId = $jInput->get('veranstaltungid', 0, 'INT');
|
||||||
|
$spielort_id = $jInput->get('spielort_id', 0, 'INT');
|
||||||
$rundenNr = $jInput->get('runde', 0, 'INT');
|
$rundenNr = $jInput->get('runde', 0, 'INT');
|
||||||
$rundenTitel = $jInput->get('rundentitel', 0, 'STRING');
|
$rundenTitel = $jInput->get('rundentitel', 0, 'STRING');
|
||||||
$spielumplatz3 = $jInput->get('spielumplatz3', 0, 'INT');
|
$spielumplatz3 = $jInput->get('spielumplatz3', 0, 'INT');
|
||||||
|
$heimrecht_losen = $jInput->get('heimrecht_losen', 0, 'INT');
|
||||||
|
|
||||||
if ($veranstaltungId == 0) die("Missing id!");
|
if ($veranstaltungId == 0) die("Missing id!");
|
||||||
|
|
||||||
@@ -10159,12 +10220,22 @@ function adminBegegnungenPokalrundeAuslosenForm(): void
|
|||||||
$matches[2]['rundentitel'] = "Spiel um Platz 3";
|
$matches[2]['rundentitel'] = "Spiel um Platz 3";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($heimrecht_losen)
|
||||||
|
{
|
||||||
|
foreach ($matches as $key => $match) {
|
||||||
|
if (random_int(0, 1) === 1) {
|
||||||
|
$tmp = $matches[$key]['heim'];
|
||||||
|
$matches[$key]['heim'] = $matches[$key]['gast'];
|
||||||
|
$matches[$key]['gast'] = $tmp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$Fehlertext = "";
|
$Fehlertext = "";
|
||||||
foreach($matches AS $spiel_nr => $match)
|
foreach($matches AS $spiel_nr => $match)
|
||||||
{
|
{
|
||||||
$matches[$spiel_nr]['rundentitel'] = $matches[$spiel_nr]['rundentitel'] ?? $rundenTitel;
|
$matches[$spiel_nr]['rundentitel'] = $matches[$spiel_nr]['rundentitel'] ?? $rundenTitel;
|
||||||
$matches[$spiel_nr]['zeitpunkt'] = $zeitpunkt;
|
$matches[$spiel_nr]['zeitpunkt'] = $zeitpunkt;
|
||||||
$matches[$spiel_nr]['heimspielort_id'] = $teams[$teams_setzliste[$setzung[0]]]['heimspielort_id'];
|
|
||||||
$team_heim = $match['heim'];
|
$team_heim = $match['heim'];
|
||||||
if ($datum_kw != null && $teams[$team_heim]['heimspiel_wochentag'] !== 0) {
|
if ($datum_kw != null && $teams[$team_heim]['heimspiel_wochentag'] !== 0) {
|
||||||
$ts = getdate(mondaykw($datum_kw, $datum_jahr, $teams[$team_heim]['heimspiel_wochentag'] - 1));
|
$ts = getdate(mondaykw($datum_kw, $datum_jahr, $teams[$team_heim]['heimspiel_wochentag'] - 1));
|
||||||
@@ -10185,7 +10256,7 @@ function adminBegegnungenPokalrundeAuslosenForm(): void
|
|||||||
$query .= "('" . $match['zeitpunkt'] . "', " . $rundenNr .
|
$query .= "('" . $match['zeitpunkt'] . "', " . $rundenNr .
|
||||||
", '" . $match['rundentitel'] . "', " . $key .
|
", '" . $match['rundentitel'] . "', " . $key .
|
||||||
", '" . $match['heim'] . "', '" . $match['gast'] . "'" .
|
", '" . $match['heim'] . "', '" . $match['gast'] . "'" .
|
||||||
", " . ($match['heimspielort_id'] != 0 ? "'" . $match['heimspielort_id'] . "'" : "NULL") . ")";
|
", " . ($spielort_id != 0 ? "'" . $spielort_id . "'" : "NULL") . ")";
|
||||||
}
|
}
|
||||||
$query .= "; ";
|
$query .= "; ";
|
||||||
$db->setQuery($query);
|
$db->setQuery($query);
|
||||||
@@ -10538,6 +10609,7 @@ function adminEditTurnier(): void
|
|||||||
$turnierort = $db->escape(trim($jInput->get('turnierort', '', 'RAW')));
|
$turnierort = $db->escape(trim($jInput->get('turnierort', '', 'RAW')));
|
||||||
$erster_tag = normalisiertesDatum(sprintf("%04d-%02d-%02d", $jInput->get('erster_tag_jahr', 2000, 'INT'), $jInput->get('erster_tag_monat', 1, 'INT'), $jInput->get('erster_tag_tag', 1, 'INT')));
|
$erster_tag = normalisiertesDatum(sprintf("%04d-%02d-%02d", $jInput->get('erster_tag_jahr', 2000, 'INT'), $jInput->get('erster_tag_monat', 1, 'INT'), $jInput->get('erster_tag_tag', 1, 'INT')));
|
||||||
$mehrtaegig = $jInput->get('mehrtaegig', 0, 'INT');
|
$mehrtaegig = $jInput->get('mehrtaegig', 0, 'INT');
|
||||||
|
$reminder_count = $jInput->get('reminder_count', 0, 'INT');
|
||||||
if (!$mehrtaegig)
|
if (!$mehrtaegig)
|
||||||
$letzter_tag = $erster_tag;
|
$letzter_tag = $erster_tag;
|
||||||
else
|
else
|
||||||
@@ -10561,7 +10633,20 @@ function adminEditTurnier(): void
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($id == 0) {
|
if ($id == 0) {
|
||||||
$query = "INSERT INTO #__sportsmanager_turnier (veranstalter_id, turnierbezeichnung, saison_id, turnierort, erster_tag" . ($letzter_tag != null ? ", letzter_tag" : "") . ", kategorie) VALUES ('$veranstalterId', '$turnierbezeichnung', '$saison_id', '$turnierort', '$erster_tag'" . ($letzter_tag != null ? ", '$letzter_tag'" : "") . ", '$kategorie');";
|
$query = $db->getQuery(true)
|
||||||
|
->select('wert')
|
||||||
|
->from('#__sportsmanager_einstellungen')
|
||||||
|
->where('name = ' . $db->quote('enable_email_reminders'));
|
||||||
|
$remindersEnabled = loadResult($db, $query);
|
||||||
|
|
||||||
|
$query = "INSERT INTO #__sportsmanager_turnier (veranstalter_id, turnierbezeichnung, saison_id, turnierort, erster_tag"
|
||||||
|
. ($letzter_tag != null ? ", letzter_tag" : "")
|
||||||
|
. ", kategorie, reminder_count) VALUES ('$veranstalterId', '$turnierbezeichnung', '$saison_id', '$turnierort', '$erster_tag'"
|
||||||
|
. ($letzter_tag != null ? ", '$letzter_tag'" : "")
|
||||||
|
. ", '$kategorie', "
|
||||||
|
. (!$remindersEnabled ? "'3'" : "'0'")
|
||||||
|
. ")";
|
||||||
|
|
||||||
$db->setQuery($query);
|
$db->setQuery($query);
|
||||||
if (!$db->execute()) {
|
if (!$db->execute()) {
|
||||||
die($db->stderr(true));
|
die($db->stderr(true));
|
||||||
@@ -10575,7 +10660,8 @@ function adminEditTurnier(): void
|
|||||||
. "\n turnierort = '$turnierort',"
|
. "\n turnierort = '$turnierort',"
|
||||||
. "\n erster_tag = '$erster_tag',"
|
. "\n erster_tag = '$erster_tag',"
|
||||||
. "\n letzter_tag = " . ($letzter_tag != null ? "'$letzter_tag'" : "NULL") . ","
|
. "\n letzter_tag = " . ($letzter_tag != null ? "'$letzter_tag'" : "NULL") . ","
|
||||||
. "\n kategorie = '$kategorie'"
|
. "\n kategorie = '$kategorie',"
|
||||||
|
. "\n reminder_count = '$reminder_count'"
|
||||||
. "\n WHERE turnier_id = $id";
|
. "\n WHERE turnier_id = $id";
|
||||||
$db->setQuery($query);
|
$db->setQuery($query);
|
||||||
if (!$db->execute()) {
|
if (!$db->execute()) {
|
||||||
|
|||||||
@@ -5291,6 +5291,93 @@ function updateDatabase(): void
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($datenbank_version < 107) {
|
||||||
|
|
||||||
|
$query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'anzahl_mitglieder_zeigen', wert = '0';";
|
||||||
|
$db->setQuery( $query );
|
||||||
|
if (!$db->execute()) { die($db->stderr(true)); }
|
||||||
|
|
||||||
|
$query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'verband_anzeigen', wert = '1';";
|
||||||
|
$db->setQuery( $query );
|
||||||
|
if (!$db->execute()) { die($db->stderr(true)); }
|
||||||
|
|
||||||
|
$query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'turnierbaum_zeigen', wert = '0';";
|
||||||
|
$db->setQuery( $query );
|
||||||
|
if (!$db->execute()) { die($db->stderr(true)); }
|
||||||
|
|
||||||
|
$query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'spalte_mitglieder_zeigen', wert = '1';";
|
||||||
|
$db->setQuery( $query );
|
||||||
|
if (!$db->execute()) { die($db->stderr(true)); }
|
||||||
|
|
||||||
|
$query = "UPDATE #__sportsmanager_einstellungen"
|
||||||
|
. "\n SET wert = '107'"
|
||||||
|
. "\n WHERE name = 'datenbank_version'";
|
||||||
|
$db->setQuery($query);
|
||||||
|
if (!$db->execute()) {
|
||||||
|
die($db->stderr(true));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($datenbank_version < 108) {
|
||||||
|
|
||||||
|
$query = "DELETE t1 FROM #__sportsmanager_unbestaetigtes_ergebnis t1"
|
||||||
|
. "\n INNER JOIN #__sportsmanager_unbestaetigtes_ergebnis t2"
|
||||||
|
. "\n ON t1.begegnung_id = t2.begegnung_id"
|
||||||
|
. "\n AND t1.unbestaetigtes_ergebnis_id < t2.unbestaetigtes_ergebnis_id;";
|
||||||
|
$db->setQuery( $query );
|
||||||
|
if (!$db->execute()) { die($db->stderr(true)); }
|
||||||
|
|
||||||
|
$query = " ALTER TABLE `#__sportsmanager_unbestaetigtes_ergebnis`"
|
||||||
|
. "\n DROP INDEX `begegnung_id`, ADD UNIQUE `begegnung_id` (`begegnung_id`) USING BTREE;";
|
||||||
|
$db->setQuery( $query );
|
||||||
|
if (!$db->execute()) { die($db->stderr(true)); }
|
||||||
|
|
||||||
|
$query = "UPDATE #__sportsmanager_einstellungen"
|
||||||
|
. "\n SET wert = '108'"
|
||||||
|
. "\n WHERE name = 'datenbank_version'";
|
||||||
|
$db->setQuery($query);
|
||||||
|
if (!$db->execute()) {
|
||||||
|
die($db->stderr(true));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($datenbank_version < 109) {
|
||||||
|
$query = "ALTER TABLE #__sportsmanager_turnier ADD COLUMN `reminder_count` TINYINT DEFAULT '0'";
|
||||||
|
$db->setQuery($query);
|
||||||
|
if (!$db->execute()) { die($db->stderr(true)); }
|
||||||
|
|
||||||
|
// set all existing tournaments to 3 to prevent email flooding
|
||||||
|
$query = "UPDATE #__sportsmanager_turnier SET `reminder_count` = '3'";
|
||||||
|
$db->setQuery($query);
|
||||||
|
if (!$db->execute()) { die($db->stderr(true)); }
|
||||||
|
|
||||||
|
// 3: prevent email flood for past tournaments
|
||||||
|
$query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'enable_email_reminders', wert = '0';";
|
||||||
|
$db->setQuery( $query );
|
||||||
|
if (!$db->execute()) { die($db->stderr(true)); }
|
||||||
|
|
||||||
|
$query = "UPDATE #__sportsmanager_einstellungen"
|
||||||
|
. "\n SET wert = '109'"
|
||||||
|
. "\n WHERE name = 'datenbank_version'";
|
||||||
|
$db->setQuery($query);
|
||||||
|
if (!$db->execute()) {
|
||||||
|
die($db->stderr(true));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($datenbank_version < 110) {
|
||||||
|
|
||||||
|
$aktueller_verein_aktualisieren = true;
|
||||||
|
|
||||||
|
$query = "UPDATE #__sportsmanager_einstellungen"
|
||||||
|
. "\n SET wert = '110'"
|
||||||
|
. "\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";
|
||||||
|
|||||||
@@ -42,11 +42,14 @@ require_once JPATH_SITE . '/components/com_sportsmanager/views/sportsmanager/vie
|
|||||||
require_once JPATH_SITE . '/components/com_sportsmanager/views/sportsmanager/view_admin.php';
|
require_once JPATH_SITE . '/components/com_sportsmanager/views/sportsmanager/view_admin.php';
|
||||||
require_once JPATH_SITE . '/components/com_sportsmanager/views/sportsmanager/view_ticker.php';
|
require_once JPATH_SITE . '/components/com_sportsmanager/views/sportsmanager/view_ticker.php';
|
||||||
require_once JPATH_SITE . '/components/com_sportsmanager/util/image.php';
|
require_once JPATH_SITE . '/components/com_sportsmanager/util/image.php';
|
||||||
|
require_once JPATH_SITE . '/components/com_sportsmanager/util/email.php';
|
||||||
require_once JPATH_SITE . '/components/com_sportsmanager/database/update.php'; // will also include init.php and util.php
|
require_once JPATH_SITE . '/components/com_sportsmanager/database/update.php'; // will also include init.php and util.php
|
||||||
|
|
||||||
initDatabase();
|
initDatabase();
|
||||||
updateDatabase();
|
updateDatabase();
|
||||||
|
|
||||||
|
sentEmailReminders();
|
||||||
|
|
||||||
if (isset($_POST['filter_saison_id']))
|
if (isset($_POST['filter_saison_id']))
|
||||||
setcookie('sportsmanager_filter_saison_id', $_POST['filter_saison_id'], time() + (60 * 60 * 24));
|
setcookie('sportsmanager_filter_saison_id', $_POST['filter_saison_id'], time() + (60 * 60 * 24));
|
||||||
else if (isset($_REQUEST['filter_saison_id']))
|
else if (isset($_REQUEST['filter_saison_id']))
|
||||||
@@ -1186,7 +1189,7 @@ function benutzerVeranstaltungModerator($veranstaltung_id = NULL): bool
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
$user_id = Factory::getContainer()->get(SiteApplication::class)->getIdentity()->id;
|
$user_id = Factory::getContainer()->get(SiteApplication::class)->getIdentity()->id;
|
||||||
$query = "SELECT * FROM #__sportsmanager_berechtigt_fuer_veranstaltung INNER JOIN #__sportsmanager_veranstaltung ON veranstaltung_id = berechtigt_veranstaltung_id WHERE berechtigt_user_id = $user_id AND DATEDIFF(letzter_tag, NOW()) >= -14";
|
$query = "SELECT * FROM #__sportsmanager_berechtigt_fuer_veranstaltung INNER JOIN #__sportsmanager_veranstaltung ON veranstaltung_id = berechtigt_veranstaltung_id WHERE berechtigt_user_id = $user_id AND DATEDIFF(letzter_tag, NOW()) >= -21";
|
||||||
if ($veranstaltung_id != NULL)
|
if ($veranstaltung_id != NULL)
|
||||||
$query .= " AND berechtigt_veranstaltung_id = $veranstaltung_id";
|
$query .= " AND berechtigt_veranstaltung_id = $veranstaltung_id";
|
||||||
$rows = loadObjectList($db, $query);
|
$rows = loadObjectList($db, $query);
|
||||||
@@ -1204,7 +1207,7 @@ function benutzerVeranstaltungIdsModerator(): array
|
|||||||
return array();
|
return array();
|
||||||
|
|
||||||
$user_id = Factory::getContainer()->get(SiteApplication::class)->getIdentity()->id;
|
$user_id = Factory::getContainer()->get(SiteApplication::class)->getIdentity()->id;
|
||||||
$query = "SELECT DISTINCT veranstaltung_id FROM #__sportsmanager_berechtigt_fuer_veranstaltung INNER JOIN #__sportsmanager_veranstaltung ON veranstaltung_id = berechtigt_veranstaltung_id WHERE berechtigt_user_id = $user_id AND DATEDIFF(letzter_tag, NOW()) >= -14";
|
$query = "SELECT DISTINCT veranstaltung_id FROM #__sportsmanager_berechtigt_fuer_veranstaltung INNER JOIN #__sportsmanager_veranstaltung ON veranstaltung_id = berechtigt_veranstaltung_id WHERE berechtigt_user_id = $user_id AND DATEDIFF(letzter_tag, NOW()) >= -21";
|
||||||
$rows = loadObjectList($db, $query);
|
$rows = loadObjectList($db, $query);
|
||||||
|
|
||||||
$ids = array();
|
$ids = array();
|
||||||
@@ -1222,7 +1225,7 @@ function benutzerTurnierModerator($turnier_id = NULL): bool
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
$user_id = Factory::getContainer()->get(SiteApplication::class)->getIdentity()->id;
|
$user_id = Factory::getContainer()->get(SiteApplication::class)->getIdentity()->id;
|
||||||
$query = "SELECT * FROM #__sportsmanager_berechtigt_fuer_turnier INNER JOIN #__sportsmanager_turnier ON turnier_id = berechtigt_turnier_id WHERE berechtigt_user_id = $user_id AND DATEDIFF(letzter_tag, NOW()) >= -14";
|
$query = "SELECT * FROM #__sportsmanager_berechtigt_fuer_turnier INNER JOIN #__sportsmanager_turnier ON turnier_id = berechtigt_turnier_id WHERE berechtigt_user_id = $user_id AND DATEDIFF(letzter_tag, NOW()) >= -21";
|
||||||
if ($turnier_id != NULL)
|
if ($turnier_id != NULL)
|
||||||
$query .= " AND berechtigt_turnier_id = $turnier_id";
|
$query .= " AND berechtigt_turnier_id = $turnier_id";
|
||||||
$rows = loadObjectList($db, $query);
|
$rows = loadObjectList($db, $query);
|
||||||
@@ -1385,6 +1388,7 @@ function aktuelleBegegnungen($pineingabe = FALSE): void
|
|||||||
HTML_sportsmanager::aktuelleBegegnungenHeader($params->get('titel'), $params->get('beschreibung'), $ticker_anzeigen, $pineingabe_anzeigen);
|
HTML_sportsmanager::aktuelleBegegnungenHeader($params->get('titel'), $params->get('beschreibung'), $ticker_anzeigen, $pineingabe_anzeigen);
|
||||||
|
|
||||||
if ($praesentation == 0) {
|
if ($praesentation == 0) {
|
||||||
|
begegnungenAnzeigen(NULL, NULL, NULL, 7, true, true, false, Text::_('COM_SPORTSMANAGER_RUNNING_MATCHES'), true, true);
|
||||||
begegnungenAnzeigen(NULL, NULL, NULL, 7, false, true, true, Text::_('COM_SPORTSMANAGER_MATCHES_THE_LAST_7_DAYS'), true, true);
|
begegnungenAnzeigen(NULL, NULL, NULL, 7, false, true, true, Text::_('COM_SPORTSMANAGER_MATCHES_THE_LAST_7_DAYS'), true, true);
|
||||||
begegnungenAnzeigen(NULL, NULL, NULL, 14, true, false, true, Text::_('COM_SPORTSMANAGER_MATCHES_THE_NEXT_14_DAYS'), false, true);
|
begegnungenAnzeigen(NULL, NULL, NULL, 14, true, false, true, Text::_('COM_SPORTSMANAGER_MATCHES_THE_NEXT_14_DAYS'), false, true);
|
||||||
administrationFooter();
|
administrationFooter();
|
||||||
@@ -2866,18 +2870,33 @@ function spieler(): void
|
|||||||
$query .= ", teamname";
|
$query .= ", teamname";
|
||||||
$query .= ", vereinsname, veranstalterbezeichnung"
|
$query .= ", vereinsname, veranstalterbezeichnung"
|
||||||
. "\n FROM #__sportsmanager_spieler";
|
. "\n FROM #__sportsmanager_spieler";
|
||||||
if (!empty($kategorieFilter) || !empty($veranstalterFilter))
|
if (!empty($kategorieFilter) || !empty($veranstalterFilter)){
|
||||||
$query .= "\n INNER JOIN (SELECT spieler_id FROM #__sportsmanager_mitglied_von_verein INNER JOIN #__sportsmanager_verein USING (verein_id) INNER JOIN #__sportsmanager_veranstalter USING (veranstalter_id) WHERE NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND NOT #__sportsmanager_verein.ausgetreten" . $veranstalterFilter . $kategorieFilter . "GROUP BY spieler_id ORDER BY spieler_id, verein_id) AS mitgliedschaft USING (spieler_id)";
|
$query .= "\n INNER JOIN (SELECT spieler_id FROM #__sportsmanager_mitglied_von_verein"
|
||||||
if ($veranstaltungid != 0)
|
. "\n INNER JOIN #__sportsmanager_verein USING (verein_id)"
|
||||||
$query .= "\n INNER JOIN (SELECT spieler_id, teamname FROM #__sportsmanager_veranstaltung INNER JOIN #__sportsmanager_team USING (veranstaltung_id) INNER JOIN #__sportsmanager_mitglied_von_team USING (team_id) WHERE status > 0 AND veranstaltung_id = $veranstaltungid AND NOT ausgetreten GROUP BY spieler_id ORDER BY YEAR(letzter_tag) DESC, reihenfolge, letzter_tag DESC, bezeichnung, teamname) AS mannschaftsmitglied USING (spieler_id)";
|
. "\n INNER JOIN #__sportsmanager_veranstalter USING (veranstalter_id)"
|
||||||
|
. "\n WHERE NOT #__sportsmanager_mitglied_von_verein.ausgetreten"
|
||||||
|
. "\n AND NOT #__sportsmanager_verein.ausgetreten" . $veranstalterFilter . $kategorieFilter
|
||||||
|
. "\n GROUP BY spieler_id ORDER BY spieler_id, verein_id) AS mitgliedschaft USING (spieler_id)";
|
||||||
|
}
|
||||||
|
if ($veranstaltungid != 0){
|
||||||
|
$query .= "\n INNER JOIN (SELECT spieler_id, teamname FROM #__sportsmanager_veranstaltung"
|
||||||
|
. "\n INNER JOIN #__sportsmanager_team USING (veranstaltung_id)"
|
||||||
|
. "\n INNER JOIN #__sportsmanager_mitglied_von_team USING (team_id)"
|
||||||
|
. "\n WHERE status > 0 AND veranstaltung_id = $veranstaltungid AND NOT ausgetreten"
|
||||||
|
. "\n GROUP BY spieler_id"
|
||||||
|
. "\n ORDER BY YEAR(letzter_tag) DESC, reihenfolge, letzter_tag DESC, bezeichnung, teamname) AS mannschaftsmitglied"
|
||||||
|
. "\n USING (spieler_id)";
|
||||||
|
}
|
||||||
$query .= "\n LEFT JOIN #__sportsmanager_verein ON aktueller_verein_id = verein_id"
|
$query .= "\n LEFT JOIN #__sportsmanager_verein ON aktueller_verein_id = verein_id"
|
||||||
. "\n LEFT JOIN #__sportsmanager_veranstalter USING (veranstalter_id)"
|
. "\n LEFT JOIN #__sportsmanager_veranstalter USING (veranstalter_id)"
|
||||||
. "\n WHERE NOT ISNULL(aktueller_verein_id)";
|
. "\n LEFT JOIN #__sportsmanager_mitglied_von_verein USING (spieler_id)"
|
||||||
|
. "\n WHERE NOT ISNULL(aktueller_verein_id) AND #__sportsmanager_mitglied_von_verein.mitgliedsstatus IN (1,2)";
|
||||||
if (!empty($search))
|
if (!empty($search))
|
||||||
$query .= "\n AND (CONCAT_WS(', ', nachname, vorname) LIKE '$searchEscapedWildcards' OR CONCAT_WS(' ', vorname, nachname) LIKE '$searchEscapedWildcards' OR spielernr = '$searchEscaped' OR lizenznr = '$searchEscaped')";
|
$query .= "\n AND (CONCAT_WS(', ', nachname, vorname) LIKE '$searchEscapedWildcards' OR CONCAT_WS(' ', vorname, nachname) LIKE '$searchEscapedWildcards' OR spielernr = '$searchEscaped' OR lizenznr = '$searchEscaped')";
|
||||||
if ($einstufungid != 0)
|
if ($einstufungid != 0)
|
||||||
$query .= "\n AND (einstufung_allgemein_id = $einstufungid OR einstufung_einzel_id = $einstufungid OR einstufung_doppel_id = $einstufungid)";
|
$query .= "\n AND (einstufung_allgemein_id = $einstufungid OR einstufung_einzel_id = $einstufungid OR einstufung_doppel_id = $einstufungid)";
|
||||||
if (!empty($kategorie))
|
$query .= "\n GROUP BY spieler_id";
|
||||||
|
if (!empty($kategorie))
|
||||||
$query .= "\n HAVING kategorie = '" . $db->escape($kategorie) . "'";
|
$query .= "\n HAVING kategorie = '" . $db->escape($kategorie) . "'";
|
||||||
$query .= "\n ORDER BY " . $sortierung_query
|
$query .= "\n ORDER BY " . $sortierung_query
|
||||||
. "\n LIMIT $beginn, 50";
|
. "\n LIMIT $beginn, 50";
|
||||||
@@ -2995,7 +3014,11 @@ function spielerDetails(): void
|
|||||||
$query = "SELECT vereinsname"
|
$query = "SELECT vereinsname"
|
||||||
. "\n FROM #__sportsmanager_mitglied_von_verein, #__sportsmanager_verein"
|
. "\n FROM #__sportsmanager_mitglied_von_verein, #__sportsmanager_verein"
|
||||||
. "\n LEFT JOIN #__sportsmanager_veranstalter USING (veranstalter_id)"
|
. "\n LEFT JOIN #__sportsmanager_veranstalter USING (veranstalter_id)"
|
||||||
. "\n WHERE #__sportsmanager_mitglied_von_verein.spieler_id = $id AND NOT #__sportsmanager_verein.ausgetreten AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND #__sportsmanager_verein.verein_id = #__sportsmanager_mitglied_von_verein.verein_id"
|
. "\n WHERE #__sportsmanager_mitglied_von_verein.spieler_id = $id "
|
||||||
|
. "\n AND NOT #__sportsmanager_verein.ausgetreten"
|
||||||
|
. "\n AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten"
|
||||||
|
. "\n AND #__sportsmanager_mitglied_von_verein.mitgliedsstatus IN (1,2)"
|
||||||
|
. "\n AND #__sportsmanager_verein.verein_id = #__sportsmanager_mitglied_von_verein.verein_id"
|
||||||
. "\n ORDER BY vereinsname";
|
. "\n ORDER BY vereinsname";
|
||||||
$vereine = loadObjectList($db, $query);
|
$vereine = loadObjectList($db, $query);
|
||||||
|
|
||||||
@@ -3003,7 +3026,12 @@ function spielerDetails(): void
|
|||||||
$query = "SELECT veranstalterbezeichnung"
|
$query = "SELECT veranstalterbezeichnung"
|
||||||
. "\n FROM #__sportsmanager_mitglied_von_verein, #__sportsmanager_verein"
|
. "\n FROM #__sportsmanager_mitglied_von_verein, #__sportsmanager_verein"
|
||||||
. "\n LEFT JOIN #__sportsmanager_veranstalter USING (veranstalter_id)"
|
. "\n LEFT JOIN #__sportsmanager_veranstalter USING (veranstalter_id)"
|
||||||
. "\n WHERE #__sportsmanager_mitglied_von_verein.spieler_id = $id AND NOT #__sportsmanager_verein.ausgetreten AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND #__sportsmanager_verein.verein_id = #__sportsmanager_mitglied_von_verein.verein_id"
|
. "\n WHERE #__sportsmanager_mitglied_von_verein.spieler_id = $id"
|
||||||
|
. "\n AND NOT #__sportsmanager_verein.ausgetreten"
|
||||||
|
. "\n AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten"
|
||||||
|
. "\n AND #__sportsmanager_mitglied_von_verein.mitgliedsstatus IN (1,2)"
|
||||||
|
. "\n AND #__sportsmanager_verein.verein_id = #__sportsmanager_mitglied_von_verein.verein_id"
|
||||||
|
. "\n GROUP BY veranstalterbezeichnung"
|
||||||
. "\n ORDER BY veranstalterbezeichnung";
|
. "\n ORDER BY veranstalterbezeichnung";
|
||||||
$veranstalter = loadObjectList($db, $query);
|
$veranstalter = loadObjectList($db, $query);
|
||||||
|
|
||||||
@@ -3787,13 +3815,14 @@ function vereine($sort): void
|
|||||||
$db = getDatabase();
|
$db = getDatabase();
|
||||||
global $params;
|
global $params;
|
||||||
$organisationAnzeigen = einstellungswert('verband_anzeigen');
|
$organisationAnzeigen = einstellungswert('verband_anzeigen');
|
||||||
|
$spalteMitgliederAnzeigen = einstellungswert('spalte_mitglieder_zeigen');
|
||||||
|
if (!$spalteMitgliederAnzeigen) $sort = "vereinsname";
|
||||||
$query = "SELECT t1.verein_id, t1.vereinsname, t1.vereinssitz,"
|
$query = "SELECT t1.verein_id, t1.vereinsname, t1.vereinssitz,"
|
||||||
. "\n t2.veranstalterbezeichnung, COUNT(*) As mitglieder"
|
. "\n t2.veranstalterbezeichnung, COUNT(*) As mitglieder"
|
||||||
. "\n FROM #__sportsmanager_verein AS t1"
|
. "\n FROM #__sportsmanager_verein AS t1"
|
||||||
. "\n LEFT JOIN #__sportsmanager_veranstalter AS t2 USING (veranstalter_id)"
|
. "\n LEFT JOIN #__sportsmanager_veranstalter AS t2 USING (veranstalter_id)"
|
||||||
. "\n LEFT JOIN #__sportsmanager_mitglied_von_verein AS t3 USING (verein_id)"
|
. "\n LEFT JOIN #__sportsmanager_mitglied_von_verein AS t3 USING (verein_id)"
|
||||||
. "\n WHERE t1.ausgetreten = 0 AND verstecken = 0"
|
. "\n WHERE t1.ausgetreten = 0 AND t1.verstecken = 0 AND t3.ausgetreten = 0"
|
||||||
. "\n GROUP BY t1.verein_id";
|
. "\n GROUP BY t1.verein_id";
|
||||||
if ($sort == "mitglieder"){
|
if ($sort == "mitglieder"){
|
||||||
$query .= "\n HAVING mitglieder >= " . einstellungswert('anzahl_mitglieder_zeigen');
|
$query .= "\n HAVING mitglieder >= " . einstellungswert('anzahl_mitglieder_zeigen');
|
||||||
@@ -3804,7 +3833,7 @@ function vereine($sort): void
|
|||||||
}
|
}
|
||||||
|
|
||||||
$vereine = loadObjectList($db, $query);
|
$vereine = loadObjectList($db, $query);
|
||||||
HTML_sportsmanager::vereine($params->get('titel'), $params->get('beschreibung'), $vereine, $organisationAnzeigen);
|
HTML_sportsmanager::vereine($params->get('titel'), $params->get('beschreibung'), $vereine, $organisationAnzeigen, $spalteMitgliederAnzeigen);
|
||||||
administrationFooter();
|
administrationFooter();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3903,10 +3932,11 @@ function vereinDetails(): void
|
|||||||
$fruehere_teams = loadObjectList($db, $query);
|
$fruehere_teams = loadObjectList($db, $query);
|
||||||
|
|
||||||
HTML_sportsmanager::vereinDetails($verein, $mitglieder, $vereinsansprechpartner, $aktuelle_teams, $vorheriger_verein_id, $naechster_verein_id, $vereins_moderator, $details_anzeigen, $ansprechpartner_anzeigen);
|
HTML_sportsmanager::vereinDetails($verein, $mitglieder, $vereinsansprechpartner, $aktuelle_teams, $vorheriger_verein_id, $naechster_verein_id, $vereins_moderator, $details_anzeigen, $ansprechpartner_anzeigen);
|
||||||
begegnungenAnzeigen(NULL, $id, NULL, 92, true, true, false, Text::_('COM_SPORTSMANAGER_RUNNING_MATCHES'), true, true);
|
// Links in Begegnungen sind fehlerhaft bei Aufruf aus vereinDetails (Jürgen Meyer, 10.10.2025)
|
||||||
begegnungenAnzeigen(NULL, $id, NULL, 62, true, false, true, "Begegnungen der kommenden zwei Monate", false, true);
|
// begegnungenAnzeigen(NULL, $id, NULL, 92, true, true, false, Text::_('COM_SPORTSMANAGER_RUNNING_MATCHES'), true, true);
|
||||||
begegnungenAnzeigen(NULL, $id, NULL, 366, false, true, true, "Begegnungen des vergangenen Jahres", true, true);
|
// begegnungenAnzeigen(NULL, $id, NULL, 62, true, false, true, "Begegnungen der kommenden zwei Monate", false, true);
|
||||||
HTML_sportsmanager::iCalBegegnungen(SportsManagerURL('&task=verein_begegnungen_ical&id=' . $verein->verein_id));
|
// begegnungenAnzeigen(NULL, $id, NULL, 366, false, true, true, "Begegnungen des vergangenen Jahres", true, true);
|
||||||
|
// HTML_sportsmanager::iCalBegegnungen(SportsManagerURL('&task=verein_begegnungen_ical&id=' . $verein->verein_id));
|
||||||
HTML_sportsmanager::vereinDetailsErgaenzung($mailverteiler, $fruehere_teams, $vereins_moderator);
|
HTML_sportsmanager::vereinDetailsErgaenzung($mailverteiler, $fruehere_teams, $vereins_moderator);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4809,7 +4839,6 @@ function teamstatistikAktualisieren($geaenderte_veranstaltung_id = 0, $geaendert
|
|||||||
function ranglisteAktualisieren($geaenderte_rangliste_id = 0, $geaenderte_turnierdisziplin_id = 0, $geaenderte_spieler_id = 0, $berechnungen_auswerten = FALSE): void
|
function ranglisteAktualisieren($geaenderte_rangliste_id = 0, $geaenderte_turnierdisziplin_id = 0, $geaenderte_spieler_id = 0, $berechnungen_auswerten = FALSE): void
|
||||||
{
|
{
|
||||||
$db = getDatabase();
|
$db = getDatabase();
|
||||||
|
|
||||||
if ($geaenderte_spieler_id != 0) {
|
if ($geaenderte_spieler_id != 0) {
|
||||||
$query = "SELECT DISTINCT #__sportsmanager_rangliste.*"
|
$query = "SELECT DISTINCT #__sportsmanager_rangliste.*"
|
||||||
. "\n FROM #__sportsmanager_turniermeldung_spieler"
|
. "\n FROM #__sportsmanager_turniermeldung_spieler"
|
||||||
@@ -4818,6 +4847,12 @@ function ranglisteAktualisieren($geaenderte_rangliste_id = 0, $geaenderte_turnie
|
|||||||
. "\n INNER JOIN #__sportsmanager_rangliste_turnierdisziplin USING (turnierdisziplin_id)"
|
. "\n INNER JOIN #__sportsmanager_rangliste_turnierdisziplin USING (turnierdisziplin_id)"
|
||||||
. "\n INNER JOIN #__sportsmanager_rangliste USING (rangliste_id)"
|
. "\n INNER JOIN #__sportsmanager_rangliste USING (rangliste_id)"
|
||||||
. "\n WHERE spieler_id = $geaenderte_spieler_id AND rundenstufe = 0";
|
. "\n WHERE spieler_id = $geaenderte_spieler_id AND rundenstufe = 0";
|
||||||
|
} else if ($berechnungen_auswerten) {
|
||||||
|
$session_id = redirectRequestGetSessionId();
|
||||||
|
$query = "SELECT DISTINCT #__sportsmanager_rangliste.*"
|
||||||
|
. "\n FROM #__sportsmanager_berechnung"
|
||||||
|
. "\n INNER JOIN #__sportsmanager_rangliste ON id = rangliste_id"
|
||||||
|
. "\n WHERE typ = 'rangliste' AND " . (empty($session_id) ? ("session_id < SUBTIME(NOW(), '00:10:00')") : ("session_id = '" . $session_id . "'"));
|
||||||
} else if ($geaenderte_rangliste_id != 0) {
|
} else if ($geaenderte_rangliste_id != 0) {
|
||||||
$query = "SELECT * FROM #__sportsmanager_rangliste"
|
$query = "SELECT * FROM #__sportsmanager_rangliste"
|
||||||
. "\n WHERE rangliste_id = $geaenderte_rangliste_id";
|
. "\n WHERE rangliste_id = $geaenderte_rangliste_id";
|
||||||
@@ -4919,6 +4954,8 @@ function ranglisteAktualisieren($geaenderte_rangliste_id = 0, $geaenderte_turnie
|
|||||||
|
|
||||||
$db->transactionStart();
|
$db->transactionStart();
|
||||||
$meldungen = array();
|
$meldungen = array();
|
||||||
|
$Anzahl = 0;
|
||||||
|
$query = "INSERT INTO #__sportsmanager_rangliste_turnierdisziplin_punkte (rangliste_id, spieler_id, turnierdisziplin_id, platz, punkte) VALUES ";
|
||||||
foreach ($turnierplatzierungen as $index => $turnierplatzierung) {
|
foreach ($turnierplatzierungen as $index => $turnierplatzierung) {
|
||||||
if (empty($turnierplatzierung->spieler_id))
|
if (empty($turnierplatzierung->spieler_id))
|
||||||
continue;
|
continue;
|
||||||
@@ -5010,12 +5047,17 @@ function ranglisteAktualisieren($geaenderte_rangliste_id = 0, $geaenderte_turnie
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
$punkte[$turnierplatzierung->spieler_id][] = $p;
|
$punkte[$turnierplatzierung->spieler_id][] = $p;
|
||||||
$query = "INSERT INTO #__sportsmanager_rangliste_turnierdisziplin_punkte (rangliste_id, spieler_id, turnierdisziplin_id, platz, punkte) VALUES ('$rangliste_id', '$turnierplatzierung->spieler_id', '$turnierdisziplin->turnierdisziplin_id', '$turnierplatzierung->platz', '$p') ON DUPLICATE KEY UPDATE punkte = punkte + VALUES(punkte);";
|
if ($Anzahl > 0) $query .= ",";
|
||||||
$db->setQuery($query);
|
$query .= "('$rangliste_id', '$turnierplatzierung->spieler_id', '$turnierdisziplin->turnierdisziplin_id', '$turnierplatzierung->platz', '$p')";
|
||||||
if (!$db->execute()) {
|
$Anzahl++;
|
||||||
die($db->stderr(true));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
$query .= " ON DUPLICATE KEY UPDATE punkte = punkte + VALUES(punkte);";
|
||||||
|
if ($Anzahl > 0){
|
||||||
|
$db->setQuery($query);
|
||||||
|
if (!$db->execute()) {
|
||||||
|
die($db->stderr(true));
|
||||||
|
}
|
||||||
|
}
|
||||||
$db->transactionCommit();
|
$db->transactionCommit();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5036,22 +5078,26 @@ function ranglisteAktualisieren($geaenderte_rangliste_id = 0, $geaenderte_turnie
|
|||||||
$platz = 1;
|
$platz = 1;
|
||||||
$tatsaechlicher_platz = 1;
|
$tatsaechlicher_platz = 1;
|
||||||
$spieler_punkte = 0;
|
$spieler_punkte = 0;
|
||||||
|
$Anzahl = 0;
|
||||||
$db->transactionStart();
|
$db->transactionStart();
|
||||||
|
$query = "INSERT INTO #__sportsmanager_rangliste_punkte(rangliste_id, spieler_id, punkte, teilnahmen, platz) VALUES ";
|
||||||
foreach ($punkte_summe as $spieler_id => $spieler_punkte_summe) {
|
foreach ($punkte_summe as $spieler_id => $spieler_punkte_summe) {
|
||||||
$spieler_teilnahmen = $teilnahmen[$spieler_id];
|
$spieler_teilnahmen = $teilnahmen[$spieler_id];
|
||||||
if ($platz == 1 || $spieler_punkte != $spieler_punkte_summe)
|
if ($platz == 1 || $spieler_punkte != $spieler_punkte_summe)
|
||||||
$tatsaechlicher_platz = $platz;
|
$tatsaechlicher_platz = $platz;
|
||||||
|
if ($Anzahl > 0) $query .= ",";
|
||||||
$query = "INSERT INTO #__sportsmanager_rangliste_punkte (rangliste_id, spieler_id, punkte, teilnahmen, platz) VALUES ('$rangliste_id', '$spieler_id', '$spieler_punkte_summe', '$spieler_teilnahmen', '$tatsaechlicher_platz') ON DUPLICATE KEY UPDATE punkte = VALUES(punkte), teilnahmen = VALUES(teilnahmen), platz = VALUES(platz);";
|
$query .= "('$rangliste_id', '$spieler_id', '$spieler_punkte_summe', '$spieler_teilnahmen', '$tatsaechlicher_platz') ";
|
||||||
$db->setQuery($query);
|
$Anzahl++;
|
||||||
if (!$db->execute()) {
|
|
||||||
die($db->stderr(true));
|
|
||||||
}
|
|
||||||
|
|
||||||
$spieler_punkte = $spieler_punkte_summe;
|
$spieler_punkte = $spieler_punkte_summe;
|
||||||
$platz++;
|
$platz++;
|
||||||
}
|
}
|
||||||
|
$query .= " ON DUPLICATE KEY UPDATE punkte = VALUES(punkte), teilnahmen = VALUES(teilnahmen), platz = VALUES(platz);";
|
||||||
|
if ($Anzahl > 0){
|
||||||
|
$db->setQuery($query);
|
||||||
|
if (!$db->execute()) {
|
||||||
|
die($db->stderr(true));
|
||||||
|
}
|
||||||
|
}
|
||||||
$db->transactionCommit();
|
$db->transactionCommit();
|
||||||
|
|
||||||
// Unabhängig von $berechnungen_auswerten ausführen, um ggf. vorhandene Inhalte zu entfernen
|
// Unabhängig von $berechnungen_auswerten ausführen, um ggf. vorhandene Inhalte zu entfernen
|
||||||
@@ -5553,8 +5599,14 @@ function aktuellerVereinAktualisieren($spieler_id = 0): void
|
|||||||
$db = getDatabase();
|
$db = getDatabase();
|
||||||
|
|
||||||
$query = "UPDATE #__sportsmanager_spieler"
|
$query = "UPDATE #__sportsmanager_spieler"
|
||||||
. "\n LEFT JOIN (SELECT spieler_id, verein_id FROM #__sportsmanager_mitglied_von_verein INNER JOIN #__sportsmanager_verein USING (verein_id) WHERE NOT #__sportsmanager_mitglied_von_verein.ausgetreten AND NOT #__sportsmanager_verein.ausgetreten GROUP BY spieler_id ORDER BY spieler_id, verein_id) AS mitgliedschaft USING (spieler_id)"
|
. "\n LEFT JOIN (SELECT spieler_id, verein_id FROM #__sportsmanager_mitglied_von_verein"
|
||||||
. "\n SET aktueller_verein_id = mitgliedschaft.verein_id";
|
. "\n INNER JOIN #__sportsmanager_verein USING (verein_id)"
|
||||||
|
. "\n WHERE NOT #__sportsmanager_mitglied_von_verein.ausgetreten"
|
||||||
|
. "\n AND #__sportsmanager_mitglied_von_verein.mitgliedsstatus IN (1,2)"
|
||||||
|
. "\n AND NOT #__sportsmanager_verein.ausgetreten"
|
||||||
|
. "\n GROUP BY spieler_id"
|
||||||
|
. "\n ORDER BY spieler_id, verein_id) AS mitgliedschaft USING (spieler_id)"
|
||||||
|
. "\n SET aktueller_verein_id = mitgliedschaft.verein_id";
|
||||||
if ($spieler_id != 0)
|
if ($spieler_id != 0)
|
||||||
$query .= "\n WHERE spieler_id = $spieler_id";
|
$query .= "\n WHERE spieler_id = $spieler_id";
|
||||||
$db->setQuery($query);
|
$db->setQuery($query);
|
||||||
|
|||||||
@@ -201,7 +201,7 @@ function kategorieFilter($prefix, $suffix = ""): string
|
|||||||
function turnierFilter($prefix): string
|
function turnierFilter($prefix): string
|
||||||
{
|
{
|
||||||
$user_id = isExternalDatabase() ? 0 : Factory::getContainer()->get(SiteApplication::class)->getIdentity()->id;
|
$user_id = isExternalDatabase() ? 0 : Factory::getContainer()->get(SiteApplication::class)->getIdentity()->id;
|
||||||
return " " . $prefix . " (SELECT berechtigt_turnier_id FROM #__sportsmanager_berechtigt_fuer_turnier WHERE berechtigt_user_id = $user_id AND DATEDIFF(letzter_tag, NOW()) >= -14) ";
|
return " " . $prefix . " (SELECT berechtigt_turnier_id FROM #__sportsmanager_berechtigt_fuer_turnier WHERE berechtigt_user_id = $user_id AND DATEDIFF(letzter_tag, NOW()) >= -21) ";
|
||||||
}
|
}
|
||||||
|
|
||||||
function vereinFilter($prefix): string
|
function vereinFilter($prefix): string
|
||||||
@@ -219,7 +219,7 @@ function veranstalterFilter($prefix): string
|
|||||||
function veranstaltungFilter($prefix): string
|
function veranstaltungFilter($prefix): string
|
||||||
{
|
{
|
||||||
$user_id = isExternalDatabase() ? 0 : Factory::getContainer()->get(SiteApplication::class)->getIdentity()->id;
|
$user_id = isExternalDatabase() ? 0 : Factory::getContainer()->get(SiteApplication::class)->getIdentity()->id;
|
||||||
return " " . $prefix . " (SELECT berechtigt_veranstaltung_id FROM #__sportsmanager_berechtigt_fuer_veranstaltung INNER JOIN #__sportsmanager_veranstaltung ON veranstaltung_id = berechtigt_veranstaltung_id WHERE berechtigt_user_id = $user_id AND DATEDIFF(letzter_tag, NOW()) >= -14) ";
|
return " " . $prefix . " (SELECT berechtigt_veranstaltung_id FROM #__sportsmanager_berechtigt_fuer_veranstaltung INNER JOIN #__sportsmanager_veranstaltung ON veranstaltung_id = berechtigt_veranstaltung_id WHERE berechtigt_user_id = $user_id AND DATEDIFF(letzter_tag, NOW()) >= -21) ";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Berechnet Datum zum Montag der ersten Kalenderwoche eines Jahres
|
// Berechnet Datum zum Montag der ersten Kalenderwoche eines Jahres
|
||||||
|
|||||||
@@ -0,0 +1,125 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Joomla\CMS\Factory;
|
||||||
|
use Joomla\CMS\Log\Log;
|
||||||
|
use Joomla\CMS\Mail\MailerFactoryInterface;
|
||||||
|
use Joomla\CMS\Application\SiteApplication;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @since 2.2
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
function sentEmailReminders(): void
|
||||||
|
{
|
||||||
|
$app = Factory::getContainer()->get(SiteApplication::class);
|
||||||
|
$db = getDatabase();
|
||||||
|
|
||||||
|
$query = $db->getQuery(true)
|
||||||
|
->select('wert')
|
||||||
|
->from('#__sportsmanager_einstellungen')
|
||||||
|
->where('name = ' . $db->quote('enable_email_reminders'));
|
||||||
|
$row = loadResult($db, $query);
|
||||||
|
|
||||||
|
if (!$row) {
|
||||||
|
return; // quit when email reminders are disabled
|
||||||
|
}
|
||||||
|
|
||||||
|
$query = $db->getQuery(true)
|
||||||
|
->select('tournament.turnier_id, tournament.turnierbezeichnung, tournament.letzter_tag, tournament.reminder_count, GROUP_CONCAT(user.email SEPARATOR ", ") as emails')
|
||||||
|
->from($db->quoteName('#__sportsmanager_turnier', 'tournament'))
|
||||||
|
->join('INNER', $db->quoteName('#__sportsmanager_berechtigt_fuer_turnier', 'entitled') . ' ON tournament.turnier_id = entitled.berechtigt_turnier_id')
|
||||||
|
->join('INNER', $db->quoteName('#__users', 'user') . ' ON entitled.berechtigt_user_id = user.id')
|
||||||
|
->where('tournament.reminder_count < 3')
|
||||||
|
->group('tournament.turnier_id, tournament.turnierbezeichnung');
|
||||||
|
$rows = loadObjectList($db, $query);
|
||||||
|
|
||||||
|
if(!empty($rows)) {
|
||||||
|
$mailFrom = $app->getCfg('mailfrom');
|
||||||
|
$fromName = $app->getCfg('fromname');
|
||||||
|
|
||||||
|
$mailer = Factory::getContainer()->get(MailerFactoryInterface::class)->createMailer();
|
||||||
|
$mailer->setSender($mailFrom, $fromName);
|
||||||
|
foreach ($rows as $row) {
|
||||||
|
$currentReminder = $row->reminder_count + 1;
|
||||||
|
|
||||||
|
if (hasResultsAlready($db, $row)) {
|
||||||
|
updateDBReminders($db, $row, 3); // do not sent any more reminders
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isset($row->emails) || $row->emails == "" || $row->emails == NULL) {
|
||||||
|
Log::add('can\'t sent ' . $currentReminder .'. email reminder for tournament ' . $row->turnierbezeichnung . ': no recipient set', Log::WARNING, 'com_sportsmanager');
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$now = new DateTime();
|
||||||
|
$last_day = new DateTime($row->letzter_tag);
|
||||||
|
$last_day->modify('+1 day'); // start to count at the end of the day, not at the beginning
|
||||||
|
$diff = $now->getTimestamp() - $last_day->getTimestamp();
|
||||||
|
|
||||||
|
$reminderDelays = [
|
||||||
|
1 => 24*60*60, // 24h
|
||||||
|
2 => 3*24*60*60, // 3d
|
||||||
|
3 => 13*24*60*60 // 13d
|
||||||
|
];
|
||||||
|
|
||||||
|
foreach ($reminderDelays as $count => $delay) {
|
||||||
|
if ($diff >= $delay && $row->reminder_count < $count) {
|
||||||
|
$subject = ($row->reminder_count == 2 ? "Letzte " : "") . "Erinnerung: " . $row->turnierbezeichnung . " Ergebnisse einreichen!";
|
||||||
|
$body = "Hi,"
|
||||||
|
. "\n\nDies ist die " . $currentReminder . ". " . ($row->reminder_count == 2 ? "*und damit letzte* " : "") . "Erinnerung die Turnierergebnisse einzureichen."
|
||||||
|
. "\n\nTurnier: " . $row->turnierbezeichnung
|
||||||
|
. "\nTurnierende: " . FormatiertesDatum($row->letzter_tag, false, false)
|
||||||
|
. "\n\nLaut Turnierordnung müssen die Ergebnisse spätestens 24 Stunden nach Turnierende eingetragen werden. Bitte reich die Ergebnisse umgehend nach."
|
||||||
|
. "\n\nDu erhältst diese Mail, weil du als Berechtigter für das Turnier eingetragen wurdest. Falls du nicht der Veranstalter bist, leite diese Email bitte entsprechend weiter."
|
||||||
|
. "\n\nHochladen der Ergebnisse über " . SportsManagerURL('&task=admin_turnierdisziplinen&turnierid=' . $row->turnier_id, -1) . ".";
|
||||||
|
|
||||||
|
$mailer->setSubject($subject);
|
||||||
|
$mailer->setBody($body);
|
||||||
|
|
||||||
|
$emailArray = explode(", ", $row->emails);
|
||||||
|
foreach ($emailArray as $email) {
|
||||||
|
$mailer->addBcc($email);
|
||||||
|
}
|
||||||
|
$mailer->send();
|
||||||
|
|
||||||
|
updateDBReminders($db, $currentReminder, $row->turnier_id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateDBReminders($db, $reminder, $tournamentId): void
|
||||||
|
{
|
||||||
|
$query = $db->getQuery(true)
|
||||||
|
->update($db->quoteName('#__sportsmanager_turnier'))
|
||||||
|
->set($db->quoteName('reminder_count') . ' = ' . $db->quote($reminder))
|
||||||
|
->where($db->quoteName('turnier_id') . ' = ' . $db->quote($tournamentId));
|
||||||
|
|
||||||
|
$db->setQuery($query);
|
||||||
|
$db->execute();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* checks if a tournament has at least one result entry for a discipline
|
||||||
|
* @param $db
|
||||||
|
* @param $row mixed tournament entry
|
||||||
|
* @return bool true if at least one result is given, else false
|
||||||
|
* @since 2.2
|
||||||
|
*/
|
||||||
|
function hasResultsAlready($db, mixed $row): bool
|
||||||
|
{
|
||||||
|
$subQuery = $db->getQuery(true)
|
||||||
|
->select($db->quoteName('turnierdisziplin_id'))
|
||||||
|
->from($db->quoteName('#__sportsmanager_turnierdisziplin'))
|
||||||
|
->where($db->quoteName('turnier_id') . ' = ' . $db->quote($row->turnier_id));
|
||||||
|
|
||||||
|
$query = $db->getQuery(true)
|
||||||
|
->select('COUNT(*) AS count')
|
||||||
|
->from($db->quoteName('#__sportsmanager_turniermeldung', 'tm'))
|
||||||
|
->where($db->quoteName('tm.turnierdisziplin_id') . ' IN (' . $subQuery . ')');
|
||||||
|
|
||||||
|
$result = loadResult($db, $query);
|
||||||
|
return $result && $result[0]->count > 0;
|
||||||
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -197,6 +197,7 @@ class JSON_sportsmanager
|
|||||||
|
|
||||||
#[NoReturn] static function spielerDetails($spieler, $vereine, $veranstalter, $spieler_elo_verlauf_einzel, $spieler_elo_verlauf_doppel, $spielerNamen, $teamNamen, $veranstaltungBezeichnungen, $turnierdisziplinBezeichnungen, $individualwettbewerbBezeichnungen, $ranglistenplatzierungen, $turnierplatzierungen, $teams, $elo_detailliert, $statistik, $einstufungen): void
|
#[NoReturn] static function spielerDetails($spieler, $vereine, $veranstalter, $spieler_elo_verlauf_einzel, $spieler_elo_verlauf_doppel, $spielerNamen, $teamNamen, $veranstaltungBezeichnungen, $turnierdisziplinBezeichnungen, $individualwettbewerbBezeichnungen, $ranglistenplatzierungen, $turnierplatzierungen, $teams, $elo_detailliert, $statistik, $einstufungen): void
|
||||||
{
|
{
|
||||||
|
if (count($vereine) == 0){die;}
|
||||||
$letzte_einzel = [];
|
$letzte_einzel = [];
|
||||||
$spieler->bild = playerImage($spieler->spieler_id, $spieler->geschlecht);
|
$spieler->bild = playerImage($spieler->spieler_id, $spieler->geschlecht);
|
||||||
for ($i = sizeof($spieler_elo_verlauf_einzel) - 1; $i >= max(sizeof($spieler_elo_verlauf_einzel) - 10, 0); $i--) {
|
for ($i = sizeof($spieler_elo_verlauf_einzel) - 1; $i >= max(sizeof($spieler_elo_verlauf_einzel) - 10, 0); $i--) {
|
||||||
|
|||||||
@@ -374,7 +374,16 @@ class HTML_sportsmanager_admin
|
|||||||
echo htmlentities_utf8($row->turnierbezeichnung);
|
echo htmlentities_utf8($row->turnierbezeichnung);
|
||||||
if (!empty($row->disziplinen)) {
|
if (!empty($row->disziplinen)) {
|
||||||
?>
|
?>
|
||||||
<br/><small><?php echo $row->disziplinen; ?></small>
|
<br/>
|
||||||
|
<small>
|
||||||
|
<?php
|
||||||
|
$parts = preg_split('/,(?![^()]*\))/m', $row->disziplinen);
|
||||||
|
$parts = array_map('trim', $parts); // remove extra spaces
|
||||||
|
foreach ($parts as $discipline) {
|
||||||
|
echo $discipline . "<br>";
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</small>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
@@ -723,18 +732,14 @@ class HTML_sportsmanager_admin
|
|||||||
<tr>
|
<tr>
|
||||||
<td nowrap style="width: 20%; text-align: right">
|
<td nowrap style="width: 20%; text-align: right">
|
||||||
<label
|
<label
|
||||||
for="show_member"><?php echo Text::_('COM_SPORTSMANAGER_VIEW_LEAST_MEMBER_COUNT'); ?>
|
for="show_member_count"><?php echo Text::_('COM_SPORTSMANAGER_VIEW_LEAST_MEMBER_COUNT'); ?>
|
||||||
:</label>
|
:</label>
|
||||||
</td>
|
</td>
|
||||||
<td nowrap>
|
<td nowrap>
|
||||||
<select class="uk-select uk-form-width-medium" name="anzahl_mitglieder_zeigen"
|
<input style='height: 34px;' class="uk-select uk-form-width-medium" type="text"
|
||||||
id="show_member" size="1">
|
id="show_member_count"
|
||||||
<?php
|
value= <?php echo $einstellungen["anzahl_mitglieder_zeigen"]; ?>
|
||||||
for ($wert = 0; $wert <= 99; $wert++) {
|
name="anzahl_mitglieder_zeigen" placeholder="Zahl eingeben">
|
||||||
echo "<option value=\"" . $wert . "\"" . (isset($einstellungen["anzahl_mitglieder_zeigen"]) && $einstellungen["anzahl_mitglieder_zeigen"] == $wert ? " selected" : "") . ">" . $wert . "</option>";
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
</select>
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
@@ -755,6 +760,24 @@ class HTML_sportsmanager_admin
|
|||||||
</select>
|
</select>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td nowrap style="width: 20%; text-align: right">
|
||||||
|
<label
|
||||||
|
for="show_count_members"><?php echo Text::_('COM_SPORTSMANAGER_SHOW_MEMBER_COUNT'); ?>
|
||||||
|
:</label>
|
||||||
|
</td>
|
||||||
|
<td nowrap>
|
||||||
|
<select class="uk-select uk-form-width-medium" name="spalte_mitglieder_zeigen"
|
||||||
|
id="show_count_members" size="1">
|
||||||
|
<?php
|
||||||
|
$spalte_mitglieder_zeigen = array(1 => Text::_('JYES'), 0 => Text::_('JNO'));
|
||||||
|
foreach ($spalte_mitglieder_zeigen as $wert => $bezeichnung) {
|
||||||
|
echo "<option value=\"" . $wert . "\"" . (isset($einstellungen["spalte_mitglieder_zeigen"]) && $einstellungen["spalte_mitglieder_zeigen"] == $wert ? " selected" : "") . ">" . htmlentities_utf8($bezeichnung) . "</option>";
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</select>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td nowrap style="width: 20%; text-align: right">
|
<td nowrap style="width: 20%; text-align: right">
|
||||||
<label
|
<label
|
||||||
@@ -854,6 +877,22 @@ class HTML_sportsmanager_admin
|
|||||||
</select>
|
</select>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td nowrap style="width: 20%; text-align: right">
|
||||||
|
<label
|
||||||
|
for="enable_email_reminders"><?php echo Text::_('COM_SPORTSMANAGER_USE_EMAIL_REMINDERS'); ?>
|
||||||
|
:</label>
|
||||||
|
</td>
|
||||||
|
<td nowrap>
|
||||||
|
<select class="uk-select uk-form-width-medium" name="enable_email_reminders"
|
||||||
|
id="enable_email_reminders" size="1">
|
||||||
|
<?php
|
||||||
|
echo "<option value='1'" . (isset($einstellungen['enable_email_reminders']) && $einstellungen['enable_email_reminders'] == 1 ? " selected" : "") . ">" . htmlentities_utf8(Text::_('JYES')) . "</option>";
|
||||||
|
echo "<option value='0'" . (isset($einstellungen['enable_email_reminders']) && $einstellungen['enable_email_reminders'] == 0 ? " selected" : "") . ">" . htmlentities_utf8(Text::_('JNO')) . "</option>";
|
||||||
|
?>
|
||||||
|
</select>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td nowrap colspan="2">
|
<td nowrap colspan="2">
|
||||||
|
|
||||||
@@ -905,6 +944,35 @@ class HTML_sportsmanager_admin
|
|||||||
class="button"/>
|
class="button"/>
|
||||||
<input type="hidden" name="task" value="admin_einstellungen_save"/>
|
<input type="hidden" name="task" value="admin_einstellungen_save"/>
|
||||||
</form>
|
</form>
|
||||||
|
<script>
|
||||||
|
// Eingabefelder nur für Zahlen
|
||||||
|
function enableNumberOnly(input) {
|
||||||
|
// Blockiere alles außer Ziffern
|
||||||
|
input.addEventListener("beforeinput", function (e) {
|
||||||
|
if (e.data && /[^0-9]/.test(e.data)) {
|
||||||
|
e.preventDefault();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Entferne führende Nullen
|
||||||
|
input.addEventListener("input", function () {
|
||||||
|
if (this.value.length > 1 && this.value.startsWith("0")) {
|
||||||
|
this.value = this.value.replace(/^0+/, "");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Validiere beim Absenden
|
||||||
|
input.form.addEventListener("submit", function (e) {
|
||||||
|
if (input.value.trim() === "") {
|
||||||
|
e.preventDefault();
|
||||||
|
alert("Bitte eine Zahl eingeben – das Feld darf nicht leer bleiben!");
|
||||||
|
input.focus();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
enableNumberOnly(document.getElementById("show_member_count"));
|
||||||
|
</script>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -8761,16 +8829,16 @@ class HTML_sportsmanager_admin
|
|||||||
<a href="<?php echo SportsManagerURL('&task=admin_uebersicht'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_BACK'); ?></a>
|
<a href="<?php echo SportsManagerURL('&task=admin_uebersicht'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_BACK'); ?></a>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<td nowrap>
|
|
||||||
<a href="<?php echo SportsManagerURL('&task=admin_begegnung_edit&veranstaltungid=' . $veranstaltung->veranstaltung_id); ?>"><?php echo Text::_('COM_SPORTSMANAGER_ADD_MEETING'); ?></a>
|
|
||||||
</td>
|
|
||||||
<?php $Spalte_Nr = self::checkZeilenumbruch($Spalte_Nr, $max_Spalten); ?>
|
|
||||||
<?php if ($veranstaltung->tabellenwertung == -3 || $veranstaltung->tabellenwertung == -4){ ?>
|
<?php if ($veranstaltung->tabellenwertung == -3 || $veranstaltung->tabellenwertung == -4){ ?>
|
||||||
<td nowrap>
|
<td nowrap>
|
||||||
<a href="<?php echo SportsManagerURL('&task=admin_begegnungen_pokalrunde_auslosen_form&veranstaltungid=' . $veranstaltung->veranstaltung_id); ?>"><?php echo Text::_('COM_SPORTSMANAGER_CUP_ROUND_GENERATION'); ?></a>
|
<a href="<?php echo SportsManagerURL('&task=admin_begegnungen_pokalrunde_auslosen_form&veranstaltungid=' . $veranstaltung->veranstaltung_id); ?>"><?php echo Text::_('COM_SPORTSMANAGER_CUP_ROUND_GENERATION'); ?></a>
|
||||||
</td>
|
</td>
|
||||||
<?php $Spalte_Nr = self::checkZeilenumbruch($Spalte_Nr, $max_Spalten); ?>
|
<?php $Spalte_Nr = self::checkZeilenumbruch($Spalte_Nr, $max_Spalten); ?>
|
||||||
<?php } else { ?>
|
<?php } else { ?>
|
||||||
|
<td nowrap>
|
||||||
|
<a href="<?php echo SportsManagerURL('&task=admin_begegnung_edit&veranstaltungid=' . $veranstaltung->veranstaltung_id); ?>"><?php echo Text::_('COM_SPORTSMANAGER_ADD_MEETING'); ?></a>
|
||||||
|
</td>
|
||||||
|
<?php $Spalte_Nr = self::checkZeilenumbruch($Spalte_Nr, $max_Spalten); ?>
|
||||||
<td nowrap>
|
<td nowrap>
|
||||||
<a href="<?php echo SportsManagerURL('&task=admin_begegnungen_runde_erzeugen_form&veranstaltungid=' . $veranstaltung->veranstaltung_id); ?>"><?php echo $veranstaltung->unterteilung == 0 ? Text::_('COM_SPORTSMANAGER_GAMEDAY_GENERATION') : Text::_('COM_SPORTSMANAGER_ROUND_GENERATION'); ?></a>
|
<a href="<?php echo SportsManagerURL('&task=admin_begegnungen_runde_erzeugen_form&veranstaltungid=' . $veranstaltung->veranstaltung_id); ?>"><?php echo $veranstaltung->unterteilung == 0 ? Text::_('COM_SPORTSMANAGER_GAMEDAY_GENERATION') : Text::_('COM_SPORTSMANAGER_ROUND_GENERATION'); ?></a>
|
||||||
</td>
|
</td>
|
||||||
@@ -8900,6 +8968,7 @@ class HTML_sportsmanager_admin
|
|||||||
{
|
{
|
||||||
global $params;
|
global $params;
|
||||||
?>
|
?>
|
||||||
|
<style>td{padding: 2px;}</style>
|
||||||
<div
|
<div
|
||||||
class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_ENCOUNTER_IN_COMPETITION'); ?>
|
class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_ENCOUNTER_IN_COMPETITION'); ?>
|
||||||
'<?php echo htmlentities_utf8($veranstaltung->bezeichnung); ?>
|
'<?php echo htmlentities_utf8($veranstaltung->bezeichnung); ?>
|
||||||
@@ -8909,11 +8978,11 @@ class HTML_sportsmanager_admin
|
|||||||
action="<?php echo SportsManagerURL(($row != null && !$neuer_eintrag) ? ('#id' . $row->begegnung_id) : ''); ?>"
|
action="<?php echo SportsManagerURL(($row != null && !$neuer_eintrag) ? ('#id' . $row->begegnung_id) : ''); ?>"
|
||||||
method="post" name="adminForm" id="adminForm">
|
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: 60%; vertical-align: top">
|
||||||
<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: 20%; text-align: right">
|
<td nowrap style="width: 20%; text-align: right">
|
||||||
<label
|
<label
|
||||||
@@ -10236,7 +10305,7 @@ class HTML_sportsmanager_admin
|
|||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
|
|
||||||
static function adminBegegnungenPokalrundeAuslosenForm($veranstaltung,$auswahl_rundentitel): void
|
static function adminBegegnungenPokalrundeAuslosenForm($veranstaltung,$auswahl_rundentitel,$spielorte): void
|
||||||
{
|
{
|
||||||
global $params;
|
global $params;
|
||||||
$sperren = false;
|
$sperren = false;
|
||||||
@@ -10358,6 +10427,33 @@ class HTML_sportsmanager_admin
|
|||||||
?>
|
?>
|
||||||
</select>
|
</select>
|
||||||
</td>
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td nowrap style="width: 20%; text-align: right">
|
||||||
|
<label for="venue"><?php echo Text::_('COM_SPORTSMANAGER_VENUE'); ?>
|
||||||
|
:</label>
|
||||||
|
</td>
|
||||||
|
<td nowrap>
|
||||||
|
<select class="uk-select uk-form-width-medium" name="spielort_id" id="venue"
|
||||||
|
size="1">
|
||||||
|
<option
|
||||||
|
value="0"><?php echo Text::_('COM_SPORTSMANAGER_HOME_TEAM2'); ?></option>
|
||||||
|
<?php
|
||||||
|
$ortsname = -1;
|
||||||
|
foreach ($spielorte as $spielort) {
|
||||||
|
if ($ortsname != $spielort->ortsname) {
|
||||||
|
if ($ortsname != -1)
|
||||||
|
echo "</optgroup>";
|
||||||
|
echo "<optgroup label=\"" . htmlentities_utf8(!empty($spielort->ortsname) ? $spielort->ortsname : Text::_('COM_SPORTSMANAGER_WITHOUT_PLACE')) . "\">";
|
||||||
|
$ortsname = $spielort->ortsname;
|
||||||
|
}
|
||||||
|
echo "<option value=\"" . $spielort->spielort_id . "\">" . htmlentities_utf8($spielort->name) . "</option>";
|
||||||
|
}
|
||||||
|
if ($ortsname != -1)
|
||||||
|
echo "</optgroup>";
|
||||||
|
?>
|
||||||
|
</select>
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td nowrap style="width: 20%; text-align: right">
|
<td nowrap style="width: 20%; text-align: right">
|
||||||
@@ -10385,8 +10481,26 @@ class HTML_sportsmanager_admin
|
|||||||
</datalist>
|
</datalist>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<?php if ($veranstaltung->tabellenwertung == -4){ ?>
|
||||||
|
<tr>
|
||||||
|
<td nowrap style="width: 20%; text-align: right">
|
||||||
|
<label for="heimrecht_losen"><?php echo Text::_('COM_SPORTSMANAGER_DRAW_FOR_HOME'); ?>
|
||||||
|
:</label>
|
||||||
|
</td>
|
||||||
|
<td nowrap>
|
||||||
|
<select class="uk-select uk-form-width-medium" name="heimrecht_losen" id="heimrecht_losen" size="1">
|
||||||
|
<?php
|
||||||
|
$heimrechtlosen = array(Text::_('COM_SPORTSMANAGER_NO'), Text::_('COM_SPORTSMANAGER_YES'));
|
||||||
|
for ($i = 0; $i <= 1; $i++) {
|
||||||
|
echo "<option value=\"" . $i . "\">" . htmlentities_utf8($heimrechtlosen[$i]) . "</option>";
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</select>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<?php } ?>
|
||||||
<?php if ($veranstaltung->letzteRunde == $veranstaltung->naechsteRunde) {$display = "";} else {$display = "none";} ?>
|
<?php if ($veranstaltung->letzteRunde == $veranstaltung->naechsteRunde) {$display = "";} else {$display = "none";} ?>
|
||||||
<tr style='display: <?php echo $display; ?>;'>
|
<tr style='display: <?php echo $display; ?>;'>
|
||||||
<td nowrap style="width: 20%; text-align: right">
|
<td nowrap style="width: 20%; text-align: right">
|
||||||
<label for="spielumplatz3"><?php echo Text::_('COM_SPORTSMANAGER_MATCH_PLACE3'); ?>
|
<label for="spielumplatz3"><?php echo Text::_('COM_SPORTSMANAGER_MATCH_PLACE3'); ?>
|
||||||
:</label>
|
:</label>
|
||||||
@@ -11272,20 +11386,6 @@ class HTML_sportsmanager_admin
|
|||||||
class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_TOURNAMENT'); ?>
|
class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_TOURNAMENT'); ?>
|
||||||
: <?php echo($row != null ? ($vorlage ? Text::_('COM_SPORTSMANAGER_ADD_VIA_TEMPLATE') : Text::_('COM_SPORTSMANAGER_CHANGING')) : Text::_('COM_SPORTSMANAGER_ADD')); ?></div>
|
: <?php echo($row != null ? ($vorlage ? Text::_('COM_SPORTSMANAGER_ADD_VIA_TEMPLATE') : Text::_('COM_SPORTSMANAGER_CHANGING')) : Text::_('COM_SPORTSMANAGER_ADD')); ?></div>
|
||||||
|
|
||||||
<script type="text/javascript">
|
|
||||||
function letzter_tag_anzeigen() {
|
|
||||||
if (document.getElementById("row_letzter_tag").style.display !== '') {
|
|
||||||
document.getElementById("row_letzter_tag").style.display = '';
|
|
||||||
document.getElementById("button_mehrtaegig").value = 'Eintägig'
|
|
||||||
document.adminForm.mehrtaegig.value = 1;
|
|
||||||
} else {
|
|
||||||
document.getElementById("row_letzter_tag").style.display = 'none';
|
|
||||||
document.getElementById("button_mehrtaegig").value = 'Mehrtägig'
|
|
||||||
document.adminForm.mehrtaegig.value = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<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 class="uk-table" style="width: 100%">
|
||||||
@@ -11468,8 +11568,8 @@ class HTML_sportsmanager_admin
|
|||||||
<td nowrap>
|
<td nowrap>
|
||||||
<select class="uk-select uk-form-width-medium"
|
<select class="uk-select uk-form-width-medium"
|
||||||
name="berechtigt_fuer_turnier_user_<?php echo $nummer; ?>_id"
|
name="berechtigt_fuer_turnier_user_<?php echo $nummer; ?>_id"
|
||||||
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_ELIGIBLE_USER'); ?>"
|
id="eligible_for_tournament_<?php echo $nummer; ?>_id"
|
||||||
size="1">
|
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_ELIGIBLE_USER'); ?>">
|
||||||
<option value="0"></option>
|
<option value="0"></option>
|
||||||
<?php
|
<?php
|
||||||
foreach ($users as $user)
|
foreach ($users as $user)
|
||||||
@@ -11482,6 +11582,7 @@ class HTML_sportsmanager_admin
|
|||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr id='eligible_for_tournament-error'></tr>
|
||||||
</table>
|
</table>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -11498,14 +11599,51 @@ class HTML_sportsmanager_admin
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<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'); ?>"
|
<input type="button" name="cancel" value="<?php echo Text::_('COM_SPORTSMANAGER_CANCEL'); ?>"
|
||||||
|
onclick="window.location.href='<?php echo SportsManagerURL(); ?>'"
|
||||||
class="button"/>
|
class="button"/>
|
||||||
<input type="hidden" name="task" value="admin_turnier_save"/>
|
<input type="hidden" name="task" value="admin_turnier_save"/>
|
||||||
<input type="hidden" name="id" value="<?php echo($row != null ? $row->turnier_id : "0"); ?>"/>
|
<input type="hidden" name="id" value="<?php echo($row != null ? $row->turnier_id : "0"); ?>"/>
|
||||||
<input type="hidden" name="vorlage" value="<?php echo $vorlage; ?>"/>
|
<input type="hidden" name="vorlage" value="<?php echo $vorlage; ?>"/>
|
||||||
<input type="hidden" name="mehrtaegig"
|
<input type="hidden" name="mehrtaegig"
|
||||||
value="<?php echo !empty($row) && $row->erster_tag != $row->letzter_tag ? "1" : "0"; ?>"/>
|
value="<?php echo !empty($row) && $row->erster_tag != $row->letzter_tag ? "1" : "0"; ?>"/>
|
||||||
|
<input type="hidden" name="reminder_count"
|
||||||
|
value="<?php echo !empty($row) ? $row->reminder_count : "0"; ?>"/>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
function letzter_tag_anzeigen() {
|
||||||
|
if (document.getElementById("row_letzter_tag").style.display !== '') {
|
||||||
|
document.getElementById("row_letzter_tag").style.display = '';
|
||||||
|
document.getElementById("button_mehrtaegig").value = 'Eintägig'
|
||||||
|
document.adminForm.mehrtaegig.value = 1;
|
||||||
|
} else {
|
||||||
|
document.getElementById("row_letzter_tag").style.display = 'none';
|
||||||
|
document.getElementById("button_mehrtaegig").value = 'Mehrtägig'
|
||||||
|
document.adminForm.mehrtaegig.value = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
document.getElementById('adminForm').addEventListener('submit', function(e) {
|
||||||
|
// Get all selects
|
||||||
|
const selects = this.querySelectorAll('[id^="eligible_for_tournament_"]');
|
||||||
|
let valid = false;
|
||||||
|
|
||||||
|
// Check if at least one has a value
|
||||||
|
selects.forEach(select => {
|
||||||
|
if (select.value !== '0') {
|
||||||
|
valid = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!valid) {
|
||||||
|
e.preventDefault(); // Stop form submission
|
||||||
|
document.getElementById('eligible_for_tournament-error').innerHTML = "<td colspan='2' style='color: red'>Please select at least one organizer.</td>";
|
||||||
|
} else {
|
||||||
|
document.getElementById('eligible_for_tournament-error').innerHTML = ""; // Clear error
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ COM_SPORTSMANAGER_ORGANISATION="Organisation"
|
|||||||
COM_SPORTSMANAGER_TEAM_MEMBERS="Mannschaftsmitglieder"
|
COM_SPORTSMANAGER_TEAM_MEMBERS="Mannschaftsmitglieder"
|
||||||
COM_SPORTSMANAGER_TEAM_MEMBERS2=Vereinsmitglieder
|
COM_SPORTSMANAGER_TEAM_MEMBERS2=Vereinsmitglieder
|
||||||
COM_SPORTSMANAGER_MEMBERS="Mitglieder"
|
COM_SPORTSMANAGER_MEMBERS="Mitglieder"
|
||||||
|
COM_SPORTSMANAGER_ACTIVE_MEMBERS="Aktive Mitglieder"
|
||||||
COM_SPORTSMANAGER_TEAMS="Mannschaften"
|
COM_SPORTSMANAGER_TEAMS="Mannschaften"
|
||||||
COM_SPORTSMANAGER_CURRENT_TEAMS="Aktuelle Mannschaften"
|
COM_SPORTSMANAGER_CURRENT_TEAMS="Aktuelle Mannschaften"
|
||||||
COM_SPORTSMANAGER_PREVIOUS_TEAMS="Frühere Mannschaften"
|
COM_SPORTSMANAGER_PREVIOUS_TEAMS="Frühere Mannschaften"
|
||||||
@@ -315,8 +316,9 @@ COM_SPORTSMANAGER_FOR_OTHER_CONTACT="Für andere Ansprechpartner"
|
|||||||
COM_SPORTSMANAGER_DATES_REGISTERED_USERS="Termine beantragten durch angemeldete Benutzer"
|
COM_SPORTSMANAGER_DATES_REGISTERED_USERS="Termine beantragten durch angemeldete Benutzer"
|
||||||
COM_SPORTSMANAGER_VIEW_ELO_RATING="Elo-Wertung anzeigen"
|
COM_SPORTSMANAGER_VIEW_ELO_RATING="Elo-Wertung anzeigen"
|
||||||
COM_SPORTSMANAGER_VIEW_SPORTSMANAGER_LIZENZ="Lizenz anzeigen"
|
COM_SPORTSMANAGER_VIEW_SPORTSMANAGER_LIZENZ="Lizenz anzeigen"
|
||||||
COM_SPORTSMANAGER_VIEW_LEAST_MEMBER_COUNT="Mindest Mitgliederzahl zeigen"
|
COM_SPORTSMANAGER_VIEW_LEAST_MEMBER_COUNT="Mindest Mitgliederzahl zeigen (Vereine)"
|
||||||
COM_SPORTSMANAGER_SHOW_ORGANISATION="Verband zeigen"
|
COM_SPORTSMANAGER_SHOW_ORGANISATION="Spalte Verband zeigen (Vereine)"
|
||||||
|
COM_SPORTSMANAGER_SHOW_MEMBER_COUNT="Spalte Mitglieder Zeigen (Vereine)"
|
||||||
COM_SPORTSMANAGER_SHOW_TOURNAMENT_BRACKET="Turnierbaum anzeigen"
|
COM_SPORTSMANAGER_SHOW_TOURNAMENT_BRACKET="Turnierbaum anzeigen"
|
||||||
COM_SPORTSMANAGER_PLAYER_DETAILS="Spielerdetails"
|
COM_SPORTSMANAGER_PLAYER_DETAILS="Spielerdetails"
|
||||||
COM_SPORTSMANAGER_PLAYER_LIST_DETAILS="Spielerliste/-details"
|
COM_SPORTSMANAGER_PLAYER_LIST_DETAILS="Spielerliste/-details"
|
||||||
@@ -646,6 +648,7 @@ COM_SPORTSMANAGER_GAMEDAYS="Spieltage"
|
|||||||
COM_SPORTSMANAGER_ROUND="Runde"
|
COM_SPORTSMANAGER_ROUND="Runde"
|
||||||
COM_SPORTSMANAGER_ROUNDS="Runden"
|
COM_SPORTSMANAGER_ROUNDS="Runden"
|
||||||
COM_SPORTSMANAGER_ROUND_TITLE="Runde Bezeichnung"
|
COM_SPORTSMANAGER_ROUND_TITLE="Runde Bezeichnung"
|
||||||
|
COM_SPORTSMANAGER_DRAW_FOR_HOME="Heimrecht auslosen"
|
||||||
COM_SPORTSMANAGER_MATCH_PLACE3="Spiel um Platz 3"
|
COM_SPORTSMANAGER_MATCH_PLACE3="Spiel um Platz 3"
|
||||||
COM_SPORTSMANAGER_MONTH="Monat"
|
COM_SPORTSMANAGER_MONTH="Monat"
|
||||||
COM_SPORTSMANAGER_MONTHS="Monate"
|
COM_SPORTSMANAGER_MONTHS="Monate"
|
||||||
@@ -1011,3 +1014,4 @@ COM_SPORTSMANAGER_ARIA_LABEL_CLUB="Verein"
|
|||||||
COM_SPORTSMANAGER_NUM_REQUESTED_SHIFTS="Verschiebungen"
|
COM_SPORTSMANAGER_NUM_REQUESTED_SHIFTS="Verschiebungen"
|
||||||
COM_SPORTSMANAGER_NUM_REQUESTED_SHFITS_TOOLTIP="Spielverschiebungen durch diese Mannschaft"
|
COM_SPORTSMANAGER_NUM_REQUESTED_SHFITS_TOOLTIP="Spielverschiebungen durch diese Mannschaft"
|
||||||
COM_SPORTSMANAGER_GAME_RESULT_DELAYS="Verzögerung"
|
COM_SPORTSMANAGER_GAME_RESULT_DELAYS="Verzögerung"
|
||||||
|
COM_SPORTSMANAGER_USE_EMAIL_REMINDERS="Verwende Email Erinnerungen"
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ COM_SPORTSMANAGER_ORGANISATION="Organisation"
|
|||||||
COM_SPORTSMANAGER_TEAM_MEMBERS="Team members"
|
COM_SPORTSMANAGER_TEAM_MEMBERS="Team members"
|
||||||
COM_SPORTSMANAGER_TEAM_MEMBERS2="Club members"
|
COM_SPORTSMANAGER_TEAM_MEMBERS2="Club members"
|
||||||
COM_SPORTSMANAGER_MEMBERS="Members"
|
COM_SPORTSMANAGER_MEMBERS="Members"
|
||||||
|
COM_SPORTSMANAGER_ACTIVE_MEMBERS="Active members"
|
||||||
COM_SPORTSMANAGER_TEAMS="Teams"
|
COM_SPORTSMANAGER_TEAMS="Teams"
|
||||||
COM_SPORTSMANAGER_CURRENT_TEAMS="Current teams"
|
COM_SPORTSMANAGER_CURRENT_TEAMS="Current teams"
|
||||||
COM_SPORTSMANAGER_PREVIOUS_TEAMS="Previous teams"
|
COM_SPORTSMANAGER_PREVIOUS_TEAMS="Previous teams"
|
||||||
@@ -315,8 +316,9 @@ COM_SPORTSMANAGER_FOR_OTHER_CONTACT="For other contact"
|
|||||||
COM_SPORTSMANAGER_DATES_REGISTERED_USERS="Apply dates by registered users"
|
COM_SPORTSMANAGER_DATES_REGISTERED_USERS="Apply dates by registered users"
|
||||||
COM_SPORTSMANAGER_VIEW_ELO_RATING="View Elo rating"
|
COM_SPORTSMANAGER_VIEW_ELO_RATING="View Elo rating"
|
||||||
COM_SPORTSMANAGER_VIEW_SPORTSMANAGER_LIZENZ="Show License"
|
COM_SPORTSMANAGER_VIEW_SPORTSMANAGER_LIZENZ="Show License"
|
||||||
COM_SPORTSMANAGER_VIEW_LEAST_MEMBER_COUNT="Show least member count"
|
COM_SPORTSMANAGER_VIEW_LEAST_MEMBER_COUNT="Show least member count (teams)"
|
||||||
COM_SPORTSMANAGER_SHOW_ORGANISATION="Show organisation"
|
COM_SPORTSMANAGER_SHOW_ORGANISATION="Show organisation (teams)"
|
||||||
|
COM_SPORTSMANAGER_SHOW_MEMBER_COUNT="Show member column (teams)"
|
||||||
COM_SPORTSMANAGER_SHOW_TOURNAMENT_BRACKET="Show Tournament Bracket"
|
COM_SPORTSMANAGER_SHOW_TOURNAMENT_BRACKET="Show Tournament Bracket"
|
||||||
COM_SPORTSMANAGER_PLAYER_DETAILS="Player details"
|
COM_SPORTSMANAGER_PLAYER_DETAILS="Player details"
|
||||||
COM_SPORTSMANAGER_PLAYER_LIST_DETAILS="Player list details"
|
COM_SPORTSMANAGER_PLAYER_LIST_DETAILS="Player list details"
|
||||||
@@ -646,6 +648,7 @@ COM_SPORTSMANAGER_GAMEDAYS="Gamedays"
|
|||||||
COM_SPORTSMANAGER_ROUND="Round"
|
COM_SPORTSMANAGER_ROUND="Round"
|
||||||
COM_SPORTSMANAGER_ROUNDS="Rounds"
|
COM_SPORTSMANAGER_ROUNDS="Rounds"
|
||||||
COM_SPORTSMANAGER_ROUND_TITLE="Round Title"
|
COM_SPORTSMANAGER_ROUND_TITLE="Round Title"
|
||||||
|
COM_SPORTSMANAGER_DRAW_FOR_HOME="Draw for home"
|
||||||
COM_SPORTSMANAGER_MATCH_PLACE3="Match for place 3"
|
COM_SPORTSMANAGER_MATCH_PLACE3="Match for place 3"
|
||||||
COM_SPORTSMANAGER_MONTH="Month"
|
COM_SPORTSMANAGER_MONTH="Month"
|
||||||
COM_SPORTSMANAGER_MONTHS="Months"
|
COM_SPORTSMANAGER_MONTHS="Months"
|
||||||
@@ -1009,3 +1012,4 @@ COM_SPORTSMANAGER_ARIA_LABEL_CLUB="Club"
|
|||||||
COM_SPORTSMANAGER_NUM_REQUESTED_SHIFTS="Shifts"
|
COM_SPORTSMANAGER_NUM_REQUESTED_SHIFTS="Shifts"
|
||||||
COM_SPORTSMANAGER_NUM_REQUESTED_SHFITS_TOOLTIP="Game shifts caused by this team"
|
COM_SPORTSMANAGER_NUM_REQUESTED_SHFITS_TOOLTIP="Game shifts caused by this team"
|
||||||
COM_SPORTSMANAGER_GAME_RESULT_DELAYS="Delay"
|
COM_SPORTSMANAGER_GAME_RESULT_DELAYS="Delay"
|
||||||
|
COM_SPORTSMANAGER_USE_EMAIL_REMINDERS="Use email reminders"
|
||||||
|
|||||||
@@ -905,6 +905,7 @@ return new class () implements InstallerScriptInterface
|
|||||||
. "\n `erster_tag` date NOT NULL DEFAULT '0000-00-00',"
|
. "\n `erster_tag` date NOT NULL DEFAULT '0000-00-00',"
|
||||||
. "\n `letzter_tag` date DEFAULT NULL,"
|
. "\n `letzter_tag` date DEFAULT NULL,"
|
||||||
. "\n `kategorie` tinyint(4) DEFAULT '1',"
|
. "\n `kategorie` tinyint(4) DEFAULT '1',"
|
||||||
|
. "\n `reminder_count` tinyint DEFAULT '0',"
|
||||||
. "\n PRIMARY KEY (`turnier_id`),"
|
. "\n PRIMARY KEY (`turnier_id`),"
|
||||||
. "\n KEY `saison_id` (`saison_id`),"
|
. "\n KEY `saison_id` (`saison_id`),"
|
||||||
. "\n KEY `veranstalter_id` (`veranstalter_id`)"
|
. "\n KEY `veranstalter_id` (`veranstalter_id`)"
|
||||||
@@ -1005,7 +1006,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 = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_unbestaetigtes_ergebnis` ("
|
$query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_unbestaetigtes_ergebnis` ("
|
||||||
. "\n `unbestaetigtes_ergebnis_id` int(11) NOT NULL AUTO_INCREMENT,"
|
. "\n `unbestaetigtes_ergebnis_id` int(11) NOT NULL AUTO_INCREMENT,"
|
||||||
. "\n `begegnung_id` int(11) NOT NULL DEFAULT '0',"
|
. "\n `begegnung_id` int(11) NOT NULL DEFAULT '0',"
|
||||||
. "\n `vorschlagendes_team_id` int(11) NOT NULL DEFAULT '0',"
|
. "\n `vorschlagendes_team_id` int(11) NOT NULL DEFAULT '0',"
|
||||||
@@ -1013,7 +1014,7 @@ return new class () implements InstallerScriptInterface
|
|||||||
. "\n `kommentar` varchar(255) DEFAULT NULL,"
|
. "\n `kommentar` varchar(255) DEFAULT NULL,"
|
||||||
. "\n `vorgeschlagen` datetime DEFAULT NULL,"
|
. "\n `vorgeschlagen` datetime DEFAULT NULL,"
|
||||||
. "\n PRIMARY KEY (`unbestaetigtes_ergebnis_id`),"
|
. "\n PRIMARY KEY (`unbestaetigtes_ergebnis_id`),"
|
||||||
. "\n KEY `begegnung_id` (`begegnung_id`),"
|
. "\n UNIQUE KEY `begegnung_id` (`begegnung_id`),"
|
||||||
. "\n KEY `vorschlagendes_team_id` (`vorschlagendes_team_id`)"
|
. "\n KEY `vorschlagendes_team_id` (`vorschlagendes_team_id`)"
|
||||||
. "\n) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
|
. "\n) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
|
||||||
$db->setQuery( $query );
|
$db->setQuery( $query );
|
||||||
@@ -1117,7 +1118,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 = '106';";
|
$query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'datenbank_version', wert = '108';";
|
||||||
$db->setQuery( $query );
|
$db->setQuery( $query );
|
||||||
if (!$db->execute()) { die($db->stderr(true)); }
|
if (!$db->execute()) { die($db->stderr(true)); }
|
||||||
|
|
||||||
@@ -1125,11 +1126,11 @@ 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 = 'spielerliste_elo', wert = '0';";
|
$query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'spielerliste_elo', wert = '0';";
|
||||||
$db->setQuery( $query );
|
$db->setQuery( $query );
|
||||||
if (!$db->execute()) { die($db->stderr(true)); }
|
if (!$db->execute()) { die($db->stderr(true)); }
|
||||||
|
|
||||||
$query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'ansprechpartner_ausblenden', wert = '0';";
|
$query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'ansprechpartner_ausblenden', wert = '0';";
|
||||||
$db->setQuery( $query );
|
$db->setQuery( $query );
|
||||||
if (!$db->execute()) { die($db->stderr(true)); }
|
if (!$db->execute()) { die($db->stderr(true)); }
|
||||||
|
|
||||||
@@ -1137,6 +1138,26 @@ 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 = 'anzahl_mitglieder_zeigen', wert = '0';";
|
||||||
|
$db->setQuery( $query );
|
||||||
|
if (!$db->execute()) { die($db->stderr(true)); }
|
||||||
|
|
||||||
|
$query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'verband_anzeigen', wert = '1';";
|
||||||
|
$db->setQuery( $query );
|
||||||
|
if (!$db->execute()) { die($db->stderr(true)); }
|
||||||
|
|
||||||
|
$query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'turnierbaum_zeigen', wert = '0';";
|
||||||
|
$db->setQuery( $query );
|
||||||
|
if (!$db->execute()) { die($db->stderr(true)); }
|
||||||
|
|
||||||
|
$query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'spalte_mitglieder_zeigen', wert = '1';";
|
||||||
|
$db->setQuery( $query );
|
||||||
|
if (!$db->execute()) { die($db->stderr(true)); }
|
||||||
|
|
||||||
|
$query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'enable_email_reminders', wert = '0';";
|
||||||
|
$db->setQuery( $query );
|
||||||
|
if (!$db->execute()) { die($db->stderr(true)); }
|
||||||
|
|
||||||
$query = "INSERT INTO #__sportsmanager_verschieberegel (bezeichnung, initial_ohne_termin, keine_gegenvorschlaege, vorlaufzeit_tage, termine_minimal, termine_maximal, ablehnen)"
|
$query = "INSERT INTO #__sportsmanager_verschieberegel (bezeichnung, initial_ohne_termin, keine_gegenvorschlaege, vorlaufzeit_tage, termine_minimal, termine_maximal, ablehnen)"
|
||||||
. "\n VALUES ('Beliebig', '0', '0', '0', '1', '3', '0');";
|
. "\n VALUES ('Beliebig', '0', '0', '0', '1', '3', '0');";
|
||||||
$db->setQuery($query);
|
$db->setQuery($query);
|
||||||
|
|||||||
Reference in New Issue
Block a user