Compare commits

..

37 Commits

Author SHA1 Message Date
MarvinF ba50b0d6a4 Merge pull request #264 from Deutscher-Tischfussballbund/sportsmanager2-stage
stage to prod
2026-03-07 01:12:47 +01:00
MarvinF e4c4694dcb Merge branch 'sportsmanager2-prod' into sportsmanager2-stage 2026-03-07 01:12:18 +01:00
MarvinF e5de0030f2 Merge pull request #263 from Deutscher-Tischfussballbund/sportsmanager2-dev
dev to stage
2026-03-07 01:10:38 +01:00
MarvinF 8d364e0bfd Merge branch 'sportsmanager2-stage' into sportsmanager2-dev 2026-03-07 01:10:17 +01:00
jmeyer26 8780229435 Merge pull request #260 from Deutscher-Tischfussballbund/sportsmanager2-250
Hall of Fame hinzugefügt
2026-03-02 19:51:09 +01:00
Jürgen Meyer a856a979aa Hall of Fame hinzugefügt 2026-03-02 19:49:22 +01:00
Jürgen Meyer 578fb76ead Klammer in update.php fehlte nach resolve conflicts 2026-02-25 11:00:02 +01:00
jmeyer26 b199b73d6f Merge pull request #258 from Deutscher-Tischfussballbund/sportsmanager2-issue070
Sportsmanager2 issue070
2026-02-25 09:42:22 +01:00
jmeyer26 0d61e9a823 Merge branch 'sportsmanager2-dev' into sportsmanager2-issue070 2026-02-25 09:40:39 +01:00
jmeyer26 299b0bef4e Merge pull request #257 from Deutscher-Tischfussballbund/sportsmanager2-explicit-penalties
Explicit penalties for league teams
2026-02-25 09:30:49 +01:00
Jürgen Meyer 57c158a770 Kleine Korrekturen 2026-02-24 18:49:29 +01:00
Wieland Hagen 84d07aecb1 Explicit penalties for league teams (3): add moderator_user_id 2026-02-23 16:18:35 +01:00
Wieland Hagen 5bd0735708 Explicit penalties for league teams (2): resolved issues in PR 2026-02-23 15:43:29 +01:00
Jürgen Meyer 69e2032916 Letzte Änderung 2026-02-13 11:00:11 +01:00
jmeyer26 e5aede7cac Update src/structure/components/com_sportsmanager/admin.php
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-13 10:35:07 +01:00
jmeyer26 7f8f842796 Update src/structure/components/com_sportsmanager/admin.php
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-13 08:53:21 +01:00
jmeyer26 112511aa12 Update src/structure/components/com_sportsmanager/sportsmanager.php
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-13 08:49:51 +01:00
jmeyer26 eacb0dc165 Update src/structure/components/com_sportsmanager/views/sportsmanager/view.html.php
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-13 08:47:22 +01:00
Jürgen Meyer 67f5f38d1a Vorschläge des Copiloten umgesetzt 2026-02-13 08:10:35 +01:00
jmeyer26 f65ec6be88 Update src/structure/components/com_sportsmanager/database/update.php
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-13 06:54:41 +01:00
jmeyer26 427bd545af Update src/structure/script.php
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-13 06:54:20 +01:00
jmeyer26 986cd6d99e Update src/structure/components/com_sportsmanager/admin.php
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-13 06:42:58 +01:00
Jürgen Meyer 66baeb0f77 update.php und script.php erweitert 2026-02-12 17:04:26 +01:00
Jürgen Meyer 46474c6c40 Verteilerliste erweitert 2026-02-12 15:58:23 +01:00
Jürgen Meyer a583131162 Exportfunktion und ein paar Korrekturen 2026-02-12 15:06:38 +01:00
Jürgen Meyer cb8b6ebe06 Einige Optimierungen 2026-02-12 11:33:29 +01:00
Jürgen Meyer d41376494f Bilder hinzugefügt und ein paar Optimierungen 2026-02-11 17:03:02 +01:00
Jürgen Meyer d462137424 Frontend für Verbandsorgane erstellt. 2026-02-11 13:58:12 +01:00
Jürgen Meyer 3cb3fa2b28 Formulare für Mitglieder Verbandsorgane erstellt. 2026-02-10 16:23:57 +01:00
Jürgen Meyer 10807c7ea8 Organisation hinzugefügt und kleine Korrekturen. 2026-02-10 10:00:46 +01:00
Jürgen Meyer e469e70b97 Formulare für Tabelle Verbandsorgane erstellt 2026-02-09 17:20:45 +01:00
Wieland Hagen 522369bb14 Explicit penalties for league teams 2026-02-09 11:09:02 +01:00
MarvinF 91caf76a71 Merge pull request #256 from Deutscher-Tischfussballbund/sportsmanager2-stage
stage to prod
2026-02-03 19:27:41 +01:00
MarvinF 12037f9bac Merge branch 'sportsmanager2-prod' into sportsmanager2-stage 2026-02-03 19:27:10 +01:00
MarvinF b1af98df54 Merge pull request #255 from Deutscher-Tischfussballbund/sportsmanager2-dev
dev to stage
2026-02-03 19:25:43 +01:00
MarvinF fe885160d9 Merge branch 'sportsmanager2-stage' into sportsmanager2-dev 2026-02-03 19:25:22 +01:00
MarvinF 308bbd4d76 Update build_release.yml
remove teams notification
2026-02-03 19:23:19 +01:00
12 changed files with 2793 additions and 176 deletions
-21
View File
@@ -98,24 +98,3 @@ 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 }}
@@ -22,6 +22,8 @@ COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_CLUBS="Vereine"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_VENUES="Spielorte" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_VENUES="Spielorte"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_APPOINTMENTS="Termine" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_APPOINTMENTS="Termine"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_MATCH_RESCHEDULING="Spielverlegungen" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_MATCH_RESCHEDULING="Spielverlegungen"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_ASSOCIATION_BODIES="Verbandsorgane"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_HALL_OF_FAME="Hall Of Fame"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_TITLE="Titel" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_TITLE="Titel"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_TITLE_DESC="Titel, der im Fenster oben angezeigt wird" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_TITLE_DESC="Titel, der im Fenster oben angezeigt wird"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_DESCRIPTION="Beschreibung" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_DESCRIPTION="Beschreibung"
@@ -22,6 +22,8 @@ COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_CLUBS="Clubs"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_VENUES="Venues" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_VENUES="Venues"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_APPOINTMENTS="Appointments" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_APPOINTMENTS="Appointments"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_MATCH_RESCHEDULING="Match reschedulings" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_MATCH_RESCHEDULING="Match reschedulings"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_ASSOCIATION_BODIES="Association bodies"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_HALL_OF_FAME="Hall of fame"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_TITLE="Title" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_TITLE="Title"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_TITLE_DESC="Title which will be shows on top" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_TITLE_DESC="Title which will be shows on top"
COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_DESCRIPTION="Description" COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_DESCRIPTION="Description"
@@ -340,6 +340,27 @@ function adminVerteiler(): void
} }
} }
$query = "SELECT *"
. "\n FROM #__sportsmanager_verbandsorgane AS t1"
. "\n ORDER BY reihenfolge, kategorie";
$verbandsorgane = loadObjectList($db, $query);
$verbandsorgane_mailverteiler = array();
foreach ($verbandsorgane as $verbandsorgan) {
$query = "SELECT vorname, nachname, email"
. "\n FROM #__sportsmanager_mitglied_von_verbandsorgan"
. "\n WHERE verbandsorgane_id = " . $verbandsorgan->verbandsorgane_id
. "\n ORDER BY reihenfolge, nachname, vorname, email";
$rows = loadObjectList($db, $query);
$verbandsorgane_mailverteiler[$verbandsorgan->verbandsorgane_id] = "";
$verbandsorgane_mailverteiler[$verbandsorgan->verbandsorgane_id . "p"] = "";
foreach ($rows as $row) {
if (!empty($row->email)){
$verbandsorgane_mailverteiler[$verbandsorgan->verbandsorgane_id] .= (!empty($verbandsorgane_mailverteiler[$verbandsorgan->verbandsorgane_id]) ? "; " : "") . $row->email;
$verbandsorgane_mailverteiler[$verbandsorgan->verbandsorgane_id . "p"] .= (!empty($verbandsorgane_mailverteiler[$verbandsorgan->verbandsorgane_id . "p"]) ? "; " : "") . "\"" . $row->vorname . " " . $row->nachname . "\" <" . $row->email . ">";
}
}
}
$query = "SELECT t1.*, veranstalterbezeichnung" $query = "SELECT t1.*, veranstalterbezeichnung"
. "\n FROM #__sportsmanager_veranstaltung AS t1" . "\n FROM #__sportsmanager_veranstaltung AS t1"
. "\n LEFT JOIN #__sportsmanager_veranstalter USING (veranstalter_id)" . "\n LEFT JOIN #__sportsmanager_veranstalter USING (veranstalter_id)"
@@ -361,7 +382,7 @@ function adminVerteiler(): void
} }
} }
HTML_sportsmanager_admin::adminVerteiler($verteiler, $organisationen, $organisationen_mailverteiler, $veranstaltungen, $veranstaltungen_mailverteiler, $saisons, $filter_saison_id, benutzerZugriff("verteiler_aendern")); HTML_sportsmanager_admin::adminVerteiler($verteiler, $organisationen, $organisationen_mailverteiler, $verbandsorgane, $verbandsorgane_mailverteiler, $veranstaltungen, $veranstaltungen_mailverteiler, $saisons, $filter_saison_id, benutzerZugriff("verteiler_aendern"));
} }
function adminEditVerteiler(): void function adminEditVerteiler(): void
@@ -5393,6 +5414,7 @@ function adminKategorien(): void
$kategorien[5] = array(); $kategorien[5] = array();
$kategorien[6] = array(); $kategorien[6] = array();
$kategorien[7] = array(); $kategorien[7] = array();
$kategorien[8] = array();
foreach ($rows as $row) foreach ($rows as $row)
$kategorien[$row->typ][$row->nummer] = $row->bezeichnung; $kategorien[$row->typ][$row->nummer] = $row->bezeichnung;
@@ -5422,13 +5444,14 @@ function adminKategorien(): void
$kategorien[5] = array(); $kategorien[5] = array();
$kategorien[6] = array(); $kategorien[6] = array();
$kategorien[7] = array(); $kategorien[7] = array();
$kategorien[8] = array();
$anzahl = array(0,50,100,50,50,100,50,50); $anzahl = array(0,50,100,50,50,100,50,50,100);
foreach ($rows as $row) foreach ($rows as $row)
$kategorien[$row->typ][$row->nummer] = $row->bezeichnung; $kategorien[$row->typ][$row->nummer] = $row->bezeichnung;
for ($typ = 1; $typ <= 7; $typ++) { for ($typ = 1; $typ <= 8; $typ++) {
for ($nummer = 1; $nummer <= $anzahl[$typ]; $nummer++) { for ($nummer = 1; $nummer <= $anzahl[$typ]; $nummer++) {
$bezeichnung = $db->escape($jInput->get('bezeichnung_' . $typ . '_' . $nummer, '', 'RAW')); $bezeichnung = $db->escape($jInput->get('bezeichnung_' . $typ . '_' . $nummer, '', 'RAW'));
if (empty($bezeichnung)) { if (empty($bezeichnung)) {
@@ -7296,44 +7319,712 @@ function adminEditOrdnungsstrafe(): void
$query .= "\n ORDER BY ordnungsstrafen_id"; $query .= "\n ORDER BY ordnungsstrafen_id";
$rows = loadObjectList($db, $query); $rows = loadObjectList($db, $query);
$dateiname = "Ordnungsstrafen.csv"; exportCSV($rows, "Ordnungsstrafen.csv");
$dateiname = bereinigterDateiname($dateiname);
ob_end_clean(); // Wegen UTF-8-Zeichen, die in der ausgabe vorhanden sind
Header("Content-Type: text/x-csv");
Header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
Header('Content-Disposition: attachment; filename="' . $dateiname . '"');
Header("Pragma: no-cache");
$data = "";
$trennzeichen = ";";
$spalte = 0;
$header = "";
foreach ($rows[0] as $field => $value) {
if ($spalte != 0) {
$header .= $trennzeichen;
}
$header .= $field;
$spalte++;
}
foreach ($rows as $row) {
$line = '';
$spalte = 0;
foreach ($row as $value) {
if ($spalte != 0) {
$line .= $trennzeichen;
}
$line .= $value;
$spalte++;
}
$data .= trim($line) . "\n";
}
echo $header . "\n" . utf8_decode($data);
die(); die();
} }
function adminVerbandsorgane(): void
{
$db = getDatabase();
if (!benutzerZugriff("organisationen_aendern"))
keinZugriff(true);
$query = "SELECT t1.*, COUNT(t2.verbandsorgane_id) AS anzahl"
. "\n FROM #__sportsmanager_verbandsorgane t1"
. "\n LEFT JOIN #__sportsmanager_mitglied_von_verbandsorgan t2 ON t2.verbandsorgane_id = t1.verbandsorgane_id"
. "\n GROUP BY t1.verbandsorgane_id"
. "\n ORDER BY t1.reihenfolge;";
$rows = loadObjectList($db, $query);
HTML_sportsmanager_admin::adminVerbandsorgane($rows);
}
function adminEditVerbandsorgan(): void
{
$db = getDatabase();
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
if (!benutzerZugriff("organisationen_aendern"))
keinZugriff(true);
$id = $jInput->get('id', 0, 'INT');
if ($id == 0)
$row = null;
else {
$query = "SELECT * FROM #__sportsmanager_verbandsorgane WHERE verbandsorgane_id = $id";
$rows = loadObjectList($db, $query);
if (count($rows) < 1) die("Wrong id!");
$row = $rows[0];
}
$query = "SELECT *"
. "\n FROM #__sportsmanager_veranstalter"
. "\n ORDER BY veranstalterbezeichnung";
$veranstalter = loadObjectList($db, $query);
$query = "SELECT nummer, bezeichnung FROM #__sportsmanager_kategorie WHERE typ = 7 ORDER BY nummer";
$rows_kategorien = loadObjectList($db, $query);
$kategorien = array();
foreach ($rows_kategorien as $kategorie)
$kategorien[$kategorie->nummer] = $kategorie->bezeichnung;
HTML_sportsmanager_admin::adminEditVerbandsorgan($row,$veranstalter,$kategorien);
}
#[NoReturn] function adminSaveVerbandsorgan(): void
{
$db = getDatabase();
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
if (!benutzerZugriff("organisationen_aendern"))
keinZugriff();
if ($jInput->get('cancel', false, 'BOOL')) {
redirectSportsManagerURL('&task=admin_verbandsorgane');
}
$id = $jInput->get('id', 0, 'INT');
$verbandsorgan = $db->escape(trim($jInput->get('verbandsorgan', '', 'RAW')));
$veranstalter_id = $jInput->get('veranstalter_id', 0, 'INT');
$kategorie = $jInput->get('kategorie', 0, 'INT');
$reihenfolge = $jInput->get('reihenfolge', 0, 'INT');
$email = $db->escape(trim($jInput->get('email', '', 'RAW')));
$beschreibung = $db->escape(trim($jInput->get('beschreibung', '', 'RAW')));
if (strlen($verbandsorgan) < 3) {
redirectSportsManagerURL('&task=admin_verbandsorgane',Text::_('COM_SPORTSMANAGER_INVALID_ASSOCIATION_BODY_NAME'));
}
if ($id == 0)
$query = "INSERT INTO #__sportsmanager_verbandsorgane"
. "\n (verbandsorgan,veranstalter_id,kategorie,reihenfolge,email,beschreibung) VALUES"
. "\n ('$verbandsorgan'," . ($veranstalter_id != 0 ? "'$veranstalter_id'" : "NULL") . ",$kategorie,$reihenfolge,'$email','$beschreibung');";
else {
$query = "UPDATE #__sportsmanager_verbandsorgane"
. "\n SET verbandsorgan = '$verbandsorgan',"
. "\n veranstalter_id = " . ($veranstalter_id != 0 ? "'$veranstalter_id'" : "NULL") . ","
. "\n kategorie = $kategorie,"
. "\n reihenfolge = $reihenfolge,"
. "\n email = '$email',"
. "\n beschreibung = '$beschreibung'"
. "\n WHERE verbandsorgane_id = $id";
}
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
redirectSportsManagerURL('&task=admin_verbandsorgane');
}
#[NoReturn] function adminRemoveVerbandsorgan(): void
{
$db = getDatabase();
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
if (!benutzerZugriff("organisationen_aendern"))
keinZugriff(true);
$id = $jInput->get('id', 0, 'INT');
$query = "DELETE FROM #__sportsmanager_verbandsorgane WHERE verbandsorgane_id = $id;";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
//Alle Mitglieder löschen
$query = "DELETE FROM #__sportsmanager_mitglied_von_verbandsorgan WHERE verbandsorgane_id = $id;";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
redirectSportsManagerURL('&task=admin_verbandsorgane');
}
#[NoReturn] function adminExportVerbandsorgane(): void
{
$db = getDatabase();
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
if (!benutzerZugriff("organisationen_aendern"))
keinZugriff(true);
$query = "SELECT t1.verbandsorgan AS Verbandsorgan, t2.funktion As Funktion, t2.zusatzinfo As Zusatzinfo, t3.spielernr AS Passnummer,"
. "\n t2.nachname AS Nachname, t2.vorname AS Vorname, t2.email AS 'E-Mail', t2.telefon AS Telefon, t2.mobil AS Mobil"
. "\n FROM #__sportsmanager_verbandsorgane t1"
. "\n LEFT JOIN #__sportsmanager_mitglied_von_verbandsorgan t2 ON t2.verbandsorgane_id = t1.verbandsorgane_id"
. "\n LEFT JOIN #__sportsmanager_spieler t3 ON t3.spieler_id = t2.spieler_id"
. "\n ORDER BY t1.reihenfolge, t2.reihenfolge, t2.nachname, t2.vorname;";
$rows = loadObjectList($db, $query);
exportCSV($rows, "Verbandsorgane.csv");
die();
}
function adminVerbandsorganMitglieder(): void
{
$db = getDatabase();
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
if (!benutzerZugriff("organisationen_aendern"))
keinZugriff(true);
$id = $jInput->get('id', 0, 'INT');
$query = "SELECT * FROM #__sportsmanager_verbandsorgane WHERE verbandsorgane_id = $id";
$verbandsorgane = loadObjectList($db, $query);
if (count($verbandsorgane) < 1) {
abortWithError("Wrong id!");
}
$verbandsorgan = $verbandsorgane[0];
$query = "SELECT t2.*, t1.verbandsorgan"
. "\n FROM #__sportsmanager_verbandsorgane t1"
. "\n LEFT JOIN #__sportsmanager_mitglied_von_verbandsorgan t2 ON t2.verbandsorgane_id = t1.verbandsorgane_id"
. "\n WHERE t2.verbandsorgane_id = $id"
. "\n ORDER BY t2.reihenfolge, t2.nachname, t2.vorname;";
$rows = loadObjectList($db, $query);
HTML_sportsmanager_admin::adminVerbandsorganMitglieder($rows,$verbandsorgan);
}
function adminEditVerbandsorganMitglied(): void
{
$db = getDatabase();
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
if (!benutzerZugriff("organisationen_aendern"))
keinZugriff(true);
$id = $jInput->get('id', 0, 'INT');
$verbandsorgane_id = $jInput->get('verbandsorgane_id', 0, 'INT');
if ($id == 0)
$row = null;
else {
$query = "SELECT * FROM #__sportsmanager_mitglied_von_verbandsorgan WHERE mitglied_von_verbandsorgan_id = $id";
$rows = loadObjectList($db, $query);
if (count($rows) < 1) {
abortWithError("Wrong id!");
}
$row = $rows[0];
}
$query = "SELECT * FROM #__sportsmanager_verbandsorgane WHERE verbandsorgane_id = $verbandsorgane_id";
$rows = loadObjectList($db, $query);
if (count($rows) < 1) {
abortWithError("Wrong id!");
}
$verbandsorgan = $rows[0];
$query = "SELECT spieler_id, CONCAT(nachname, ', ', vorname, ' (', spielernr, ')') AS spieler"
. "\n FROM #__sportsmanager_spieler"
. "\n ORDER BY nachname, vorname, spielernr";
$spieler = loadObjectList($db, $query);
HTML_sportsmanager_admin::adminEditVerbandsorganMitglied($row,$verbandsorgan,$spieler);
}
#[NoReturn] function adminSaveVerbandsorganMitglied(): void
{
$db = getDatabase();
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
if (!benutzerZugriff("organisationen_aendern"))
keinZugriff();
$id = $jInput->get('id', 0, 'INT');
$verbandsorgane_id = $jInput->get('verbandsorgane_id', 0, 'INT');
$spieler_id = $jInput->get('spieler_id', 0, 'INT');
$nachname = $db->escape(trim($jInput->get('nachname', '', 'RAW')));
$vorname = $db->escape(trim($jInput->get('vorname', '', 'RAW')));
$funktion = $db->escape(trim($jInput->get('funktion', '', 'RAW')));
$zusatzinfo = $db->escape(trim($jInput->get('zusatzinfo', '', 'RAW')));
$email = $db->escape(trim($jInput->get('email', '', 'RAW')));
$telefon = $db->escape(trim($jInput->get('telefon', '', 'RAW')));
$mobil = $db->escape(trim($jInput->get('mobil', '', 'RAW')));
$reihenfolge = $jInput->get('reihenfolge', 0, 'INT');
$beschreibung = $db->escape(trim($jInput->get('beschreibung', '', 'RAW')));
if ($jInput->get('cancel', false, 'BOOL')) {
redirectSportsManagerURL('&task=admin_verbandsorgan_mitglieder&id=' . $verbandsorgane_id);
}
if ($spieler_id != 0){
$query = "SELECT * FROM #__sportsmanager_spieler WHERE spieler_id = $spieler_id";
$spieler = loadObjectList($db, $query);
if (!empty($spieler)) {
if (empty($nachname)) $nachname = $spieler[0]->nachname;
if (empty($vorname)) $vorname = $spieler[0]->vorname;
if (empty($telefon) && !empty($spieler[0]->telefon)) $telefon = $spieler[0]->telefon;
if (empty($mobil) && !empty($spieler[0]->mobil)) $mobil = $spieler[0]->mobil;
if (empty($email) && !empty($spieler[0]->email)) $email = $spieler[0]->email;
}
}
if (empty($nachname)) {
redirectSportsManagerURL('&task=admin_verbandsorgan_mitglieder&id=' . $verbandsorgane_id,Text::_('COM_SPORTSMANAGER_NAME_NOT_COMPLETE'));
}
if ($id == 0)
$query = "INSERT INTO #__sportsmanager_mitglied_von_verbandsorgan"
. "\n (verbandsorgane_id,spieler_id,reihenfolge,nachname,vorname,funktion,zusatzinfo,email,telefon,mobil) VALUES"
. "\n ($verbandsorgane_id," . ($spieler_id != 0 ? "'$spieler_id'" : "NULL") . ",$reihenfolge,'$nachname','$vorname','$funktion','$zusatzinfo','$email','$telefon','$mobil');";
else {
$query = "UPDATE #__sportsmanager_mitglied_von_verbandsorgan"
. "\n SET verbandsorgane_id = '$verbandsorgane_id',"
. "\n spieler_id = " . ($spieler_id != 0 ? "'$spieler_id'" : "NULL") . ","
. "\n reihenfolge = $reihenfolge,"
. "\n nachname = '$nachname',"
. "\n vorname = '$vorname',"
. "\n funktion = '$funktion',"
. "\n zusatzinfo = '$zusatzinfo',"
. "\n email = '$email',"
. "\n telefon = '$telefon',"
. "\n mobil = '$mobil'"
. "\n WHERE mitglied_von_verbandsorgan_id = $id";
}
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
redirectSportsManagerURL('&task=admin_verbandsorgan_mitglieder&id=' . $verbandsorgane_id);
}
#[NoReturn] function adminRemoveVerbandsorganMitglied(): void
{
$db = getDatabase();
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
if (!benutzerZugriff("organisationen_aendern"))
keinZugriff(true);
$id = $jInput->get('id', 0, 'INT');
$verbandsorgane_id = $jInput->get('verbandsorgane_id', 0, 'INT');
$query = "DELETE FROM #__sportsmanager_mitglied_von_verbandsorgan WHERE mitglied_von_verbandsorgan_id = $id;";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
redirectSportsManagerURL('&task=admin_verbandsorgan_mitglieder&id=' . $verbandsorgane_id);
}
function adminHalloffame(): void
{
$db = getDatabase();
if (!benutzerZugriff("organisationen_aendern"))
keinZugriff(true);
$query = "SELECT t1.*, COUNT(DISTINCT t2.jahr) AS anzahl,"
. "\n IF (COUNT(DISTINCT t2.jahr) > 0, CONCAT(min(t2.jahr), ' - ', max(t2.jahr)), " . $db->quote(Text::_('COM_SPORTSMANAGER_NO_ENTRY')) . ") AS zeitspanne"
. "\n FROM #__sportsmanager_halloffame t1"
. "\n LEFT JOIN #__sportsmanager_mitglied_von_halloffame t2 ON t2.halloffame_id = t1.halloffame_id"
. "\n GROUP BY t1.halloffame_id"
. "\n ORDER BY t1.reihenfolge;";
$rows = loadObjectList($db, $query);
HTML_sportsmanager_admin::adminHalloffame($rows);
}
function adminEditHalloffame(): void
{
$db = getDatabase();
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
if (!benutzerZugriff("organisationen_aendern"))
keinZugriff(true);
$id = $jInput->get('id', 0, 'INT');
$anzahl_eintraege = 0;
if ($id == 0)
$row = null;
else {
$query = "SELECT * FROM #__sportsmanager_halloffame WHERE halloffame_id = $id";
$rows = loadObjectList($db, $query);
if (count($rows) < 1) die("Wrong id!");
$row = $rows[0];
$query = "SELECT * FROM #__sportsmanager_mitglied_von_halloffame WHERE halloffame_id = $id";
$rows = loadObjectList($db, $query);
$anzahl_eintraege = count($rows);
}
$query = "SELECT *"
. "\n FROM #__sportsmanager_veranstalter"
. "\n ORDER BY veranstalterbezeichnung";
$veranstalter = loadObjectList($db, $query);
$query = "SELECT nummer, bezeichnung FROM #__sportsmanager_kategorie WHERE typ = 8 ORDER BY nummer";
$rows_kategorien = loadObjectList($db, $query);
$kategorien = array();
foreach ($rows_kategorien as $kategorie)
$kategorien[$kategorie->nummer] = $kategorie->bezeichnung;
$spielform_array = [1 => Text::_('COM_SPORTSMANAGER_TEAMS'),
2 => Text::_('COM_SPORTSMANAGER_DOUBLES'),
3 => Text::_('COM_SPORTSMANAGER_SINGLES')];
if ($anzahl_eintraege == 0)
$spielformen = $spielform_array;
else
$spielformen[$row->spielform] = $spielform_array[$row->spielform];
HTML_sportsmanager_admin::adminEditHalloffame($row,$veranstalter,$kategorien,$spielformen);
}
#[NoReturn] function adminSaveHalloffame(): void
{
$db = getDatabase();
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
if (!benutzerZugriff("organisationen_aendern"))
keinZugriff();
if ($jInput->get('cancel', false, 'BOOL')) {
redirectSportsManagerURL('&task=admin_halloffame');
}
$id = $jInput->get('id', 0, 'INT');
$halloffame = $db->escape(trim($jInput->get('halloffame', '', 'RAW')));
$veranstalter_id = $jInput->get('veranstalter_id', 0, 'INT');
$kategorie = $jInput->get('kategorie', 0, 'INT');
$spielform = $jInput->get('spielform', 0, 'INT');
$reihenfolge = $jInput->get('reihenfolge', 0, 'INT');
if (strlen($halloffame) < 3) {
redirectSportsManagerURL('&task=admin_halloffame',Text::_('COM_SPORTSMANAGER_INVALID_HALL_OF_FAME_NAME'));
}
if ($id == 0)
$query = "INSERT INTO #__sportsmanager_halloffame"
. "\n (halloffame,veranstalter_id,kategorie,spielform,reihenfolge) VALUES"
. "\n ('$halloffame'," . ($veranstalter_id != 0 ? "'$veranstalter_id'" : "NULL") . ",$kategorie,$spielform,$reihenfolge);";
else {
$query = "UPDATE #__sportsmanager_halloffame"
. "\n SET halloffame = '$halloffame',"
. "\n veranstalter_id = " . ($veranstalter_id != 0 ? "'$veranstalter_id'" : "NULL") . ","
. "\n kategorie = $kategorie,"
. "\n spielform = $spielform,"
. "\n reihenfolge = $reihenfolge"
. "\n WHERE halloffame_id = $id";
}
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
redirectSportsManagerURL('&task=admin_halloffame');
}
#[NoReturn] function adminRemoveHalloffame(): void
{
$db = getDatabase();
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
if (!benutzerZugriff("organisationen_aendern"))
keinZugriff(true);
$id = $jInput->get('id', 0, 'INT');
$query = "DELETE FROM #__sportsmanager_halloffame WHERE halloffame_id = $id;";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
//Alle Mitglieder löschen
$query = "DELETE FROM #__sportsmanager_mitglied_von_halloffame WHERE halloffame_id = $id;";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
redirectSportsManagerURL('&task=admin_halloffame');
}
function adminHalloffameMitglieder(): void
{
$db = getDatabase();
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
if (!benutzerZugriff("organisationen_aendern"))
keinZugriff(true);
$id = $jInput->get('id', 0, 'INT');
$mitglieder = null;
$query = "SELECT * FROM #__sportsmanager_halloffame WHERE halloffame_id = $id";
$rows = loadObjectList($db, $query);
if (count($rows) < 1) {
abortWithError("Wrong id!");
}
$halloffame = $rows[0];
$halloffame->platz2_zeigen = 0;
$halloffame->platz3_zeigen = 0;
$query = "SELECT t2.*, t1.halloffame"
. "\n FROM #__sportsmanager_halloffame t1"
. "\n LEFT JOIN #__sportsmanager_mitglied_von_halloffame t2 ON t2.halloffame_id = t1.halloffame_id"
. "\n WHERE t2.halloffame_id = $id"
. "\n ORDER BY t2.jahr DESC, platz ASC;";
$rows = loadObjectList($db, $query);
if (count($rows) > 0){
$mitglieder = [];
if ($halloffame->spielform == 1){
foreach ($rows as $row) {
$index_vereinid = "verein_id_" . $row->platz;
$index_team = "teamname_" . $row->platz;
if (!isset($mitglieder[$row->jahr])) {
$mitglieder[$row->jahr] = new stdClass();
}
$mitglieder[$row->jahr]->jahr = $row->jahr;
$mitglieder[$row->jahr]->$index_vereinid = $row->verein_id;
$mitglieder[$row->jahr]->$index_team = $row->teamname;
if ($row->platz == 2 && !empty($row->teamname))
$halloffame->platz2_zeigen = 1;
if ($row->platz == 3 && !empty($row->teamname))
$halloffame->platz3_zeigen = 1;
}
}
if ($halloffame->spielform == 2 || $halloffame->spielform == 3){
foreach ($rows as $row) {
$index_spieler1id = "spieler1_id_" . $row->platz;
$index_spieler1 = "spieler1_" . $row->platz;
$index_spieler2id = "spieler2_id_" . $row->platz;
$index_spieler2 = "spieler2_" . $row->platz;
if (!isset($mitglieder[$row->jahr])) {
$mitglieder[$row->jahr] = new stdClass();
}
$mitglieder[$row->jahr]->jahr = $row->jahr;
$mitglieder[$row->jahr]->$index_spieler1id = $row->spieler1_id;
$mitglieder[$row->jahr]->$index_spieler1 = $row->spieler1;
$mitglieder[$row->jahr]->$index_spieler2id = $row->spieler2_id;
$mitglieder[$row->jahr]->$index_spieler2 = $row->spieler2;
if ($row->platz == 2 && (!empty($row->spieler1) || !empty($row->spieler2)))
$halloffame->platz2_zeigen = 1;
if ($row->platz == 3 && (!empty($row->spieler1) || !empty($row->spieler2)))
$halloffame->platz3_zeigen = 1;
}
}
}
HTML_sportsmanager_admin::adminHalloffameMitglieder($mitglieder,$halloffame);
}
function adminEditHalloffameMitglied(): void
{
$db = getDatabase();
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
if (!benutzerZugriff("organisationen_aendern"))
keinZugriff(true);
$halloffame_id = $jInput->get('halloffame_id', 0, 'INT');
$jahr = $jInput->get('jahr', 0, 'INT');
$mitglieder = null;
$query = "SELECT * FROM #__sportsmanager_halloffame WHERE halloffame_id = $halloffame_id";
$rows = loadObjectList($db, $query);
if (count($rows) < 1) {
abortWithError("Wrong id!");
}
$halloffame = $rows[0];
$query = "SELECT verein_id, vereinsname As verein"
. "\n FROM #__sportsmanager_verein"
. "\n ORDER BY vereinsname";
$vereine = loadObjectList($db, $query);
$query = "SELECT spieler_id, CONCAT(nachname, ', ', vorname, ' (', spielernr, ')') AS spieler"
. "\n FROM #__sportsmanager_spieler"
. "\n ORDER BY nachname, vorname, spielernr";
$spieler = loadObjectList($db, $query);
$query = "SELECT t2.*, t1.halloffame"
. "\n FROM #__sportsmanager_halloffame t1"
. "\n LEFT JOIN #__sportsmanager_mitglied_von_halloffame t2 ON t2.halloffame_id = t1.halloffame_id"
. "\n WHERE t2.halloffame_id = $halloffame_id"
. "\n AND t2.jahr = $jahr"
. "\n ORDER BY platz ASC;";
$rows = loadObjectList($db, $query);
if (count($rows) > 0){
if ($halloffame->spielform == 1){
$mitglieder = new stdClass();
foreach ($rows as $row) {
$index_vereinid = "verein_id_" . $row->platz;
$index_team = "teamname_" . $row->platz;
$mitglieder->jahr = $row->jahr;
$mitglieder->$index_vereinid = $row->verein_id;
$mitglieder->$index_team = $row->teamname;
}
}
if ($halloffame->spielform == 2 || $halloffame->spielform == 3){
$mitglieder = new stdClass();
foreach ($rows as $row) {
$index_spieler1id = "spieler1_id_" . $row->platz;
$index_spieler1 = "spieler1_" . $row->platz;
$index_spieler2id = "spieler2_id_" . $row->platz;
$index_spieler2 = "spieler2_" . $row->platz;
$mitglieder->jahr = $row->jahr;
$mitglieder->$index_spieler1id = $row->spieler1_id;
$mitglieder->$index_spieler1 = $row->spieler1;
$mitglieder->$index_spieler2id = $row->spieler2_id;
$mitglieder->$index_spieler2 = $row->spieler2;
}
}
}
if ($jahr != 0){
$jahre = array((int) $jahr);
} else {
// Generate list of years in PHP instead of using WITH RECURSIVE (for MySQL < 8 compatibility)
$startYear = 1965;
$currentYear = (int) date('Y');
$jahre = array();
for ($y = $startYear; $y <= $currentYear; $y++) {
$jahre[] = $y;
}
// Load years already used for this hall of fame
$query = "SELECT jahr FROM #__sportsmanager_mitglied_von_halloffame WHERE halloffame_id = " . (int) $halloffame_id;
$db->setQuery($query);
$usedYears = $db->loadColumn();
if (!is_array($usedYears)) {
$usedYears = array();
}
$usedYears = array_map('intval', $usedYears);
// Remove already used years and sort remaining years descending
$jahre = array_values(array_diff($jahre, $usedYears));
rsort($jahre, SORT_NUMERIC);
}
HTML_sportsmanager_admin::adminEditHalloffameMitglied($mitglieder,$halloffame,$vereine,$spieler,$jahre);
}
#[NoReturn] function adminSaveHalloffameMitglied(): void
{
$db = getDatabase();
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
if (!benutzerZugriff("organisationen_aendern"))
keinZugriff();
$halloffame_id = $jInput->get('halloffame_id', 0, 'INT');
$spielform = $jInput->get('spielform', 0, 'INT');
$jahr = $jInput->get('jahr', 0, 'INT');
if ($jInput->get('cancel', false, 'BOOL'))
redirectSportsManagerURL('&task=admin_halloffame_mitglieder&id=' . $halloffame_id);
if ($spielform == 1){
for ($p = 1; $p <= 3; $p++){
$verein_id[$p] = $jInput->get('verein_id_' . $p, 0, 'INT');
$teamname[$p] = $db->escape(trim($jInput->get('teamname_' . $p, '', 'RAW')));
if (empty($teamname[$p]) && !empty($verein_id[$p])){
$query = "SELECT vereinsname FROM #__sportsmanager_verein WHERE verein_id = '" . $verein_id[$p] . "';";
$verein = loadObjectList($db, $query);
$teamname[$p] = $verein[0]->vereinsname;
}
if (!empty($teamname[$p])){
$query = "INSERT INTO #__sportsmanager_mitglied_von_halloffame"
. "\n (halloffame_id,jahr,platz,verein_id,teamname) VALUES"
. "\n ($halloffame_id,$jahr,$p," . (($verein_id[$p] != 0) ? $verein_id[$p] : 'NULL') . ",'" . $teamname[$p] . "')"
. "\n ON DUPLICATE KEY UPDATE verein_id = " . (($verein_id[$p] != 0) ? $verein_id[$p] : 'NULL') . ","
. "\n teamname = '" . $teamname[$p] . "';";
} else {
$query = "DELETE FROM #__sportsmanager_mitglied_von_halloffame"
. "\n WHERE halloffame_id = $halloffame_id"
. "\n AND jahr = $jahr"
. "\n AND platz = $p";
}
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
}
}
if ($spielform == 2 || $spielform == 3){
for ($p = 1; $p <= 3; $p++){
$spieler1_id[$p] = $jInput->get('spieler1_id_' . $p, 0, 'INT');
$spieler2_id[$p] = $jInput->get('spieler2_id_' . $p, 0, 'INT');
$spieler1[$p] = $db->escape(trim($jInput->get('spieler1_' . $p, '', 'RAW')));
$spieler2[$p] = $db->escape(trim($jInput->get('spieler2_' . $p, '', 'RAW')));
if (!empty($spieler1_id[$p])){
$query = "SELECT CONCAT(nachname,', ', vorname) AS name"
. "\n FROM #__sportsmanager_spieler"
. "\n WHERE spieler_id = '" . $spieler1_id[$p] . "';";
$spieler = loadObjectList($db, $query);
$spieler1[$p] = $spieler[0]->name;
}
if (!empty($spieler2_id[$p])){
$query = "SELECT CONCAT(nachname,', ', vorname) AS name"
. "\n FROM #__sportsmanager_spieler"
. "\n WHERE spieler_id = '" . $spieler2_id[$p] . "';";
$spieler = loadObjectList($db, $query);
$spieler2[$p] = $spieler[0]->name;
}
if (!empty($spieler1[$p])){
$query = "INSERT INTO #__sportsmanager_mitglied_von_halloffame"
. "\n (halloffame_id,jahr,platz,spieler1_id,spieler1,spieler2_id,spieler2) VALUES"
. "\n ($halloffame_id,$jahr,$p," . (($spieler1_id[$p] != 0) ? $spieler1_id[$p] : 'NULL') . ",'" . $spieler1[$p] . "'," . (($spieler2_id[$p] != 0) ? $spieler2_id[$p] : 'NULL') . ",'" . $spieler2[$p] . "')"
. "\n ON DUPLICATE KEY UPDATE"
. "\n spieler1_id = " . (($spieler1_id[$p] != 0) ? $spieler1_id[$p] : 'NULL') . ","
. "\n spieler1 = '" . $spieler1[$p] . "',"
. "\n spieler2_id = " . (($spieler2_id[$p] != 0) ? $spieler2_id[$p] : 'NULL') . ","
. "\n spieler2 = '" . $spieler2[$p] . "';";
} else {
$query = "DELETE FROM #__sportsmanager_mitglied_von_halloffame"
. "\n WHERE halloffame_id = $halloffame_id"
. "\n AND jahr = $jahr"
. "\n AND platz = $p";
}
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
}
}
redirectSportsManagerURL('&task=admin_halloffame_mitglieder&id=' . $halloffame_id);
}
#[NoReturn] function adminRemoveHalloffameMitglied(): void
{
$db = getDatabase();
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
if (!benutzerZugriff("organisationen_aendern"))
keinZugriff(true);
$halloffame_id = $jInput->get('halloffame_id', 0, 'INT');
$jahr = $jInput->get('jahr', 0, 'INT');
$query = "DELETE FROM #__sportsmanager_mitglied_von_halloffame"
. "\n WHERE halloffame_id = $halloffame_id"
. "\n AND jahr = $jahr;";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
redirectSportsManagerURL('&task=admin_halloffame_mitglieder&id=' . $halloffame_id);
}
function adminRegelwerke(): void function adminRegelwerke(): void
{ {
$db = getDatabase(); $db = getDatabase();
@@ -7687,6 +8378,7 @@ function adminEditVeranstaltung(): void
$unterteilung = $jInput->get('unterteilung', 0, 'INT'); $unterteilung = $jInput->get('unterteilung', 0, 'INT');
$spieltag_titel_zeigen = $jInput->get('spieltag_titel_zeigen', 0, 'INT'); $spieltag_titel_zeigen = $jInput->get('spieltag_titel_zeigen', 0, 'INT');
$elo_wertung = $jInput->get('elo_wertung', 0, 'INT'); $elo_wertung = $jInput->get('elo_wertung', 0, 'INT');
$explizite_strafen = $jInput->get('explizite_strafen', 0, 'INT');
$logo_url = $db->escape(trim($jInput->get('logo_url', '', 'RAW'))); $logo_url = $db->escape(trim($jInput->get('logo_url', '', 'RAW')));
$ticker_logo_url = $db->escape(trim($jInput->get('ticker_logo_url', '', 'RAW'))); $ticker_logo_url = $db->escape(trim($jInput->get('ticker_logo_url', '', 'RAW')));
$status = $jInput->get('status', 0, 'INT'); $status = $jInput->get('status', 0, 'INT');
@@ -7704,8 +8396,8 @@ function adminEditVeranstaltung(): void
$elo_aktualisieren = false; $elo_aktualisieren = false;
$spielerstatistik_aktualisieren = false; $spielerstatistik_aktualisieren = false;
if ($id == 0) { if ($id == 0) {
$query = "INSERT INTO #__sportsmanager_veranstaltung (veranstalter_id, saison_id, bezeichnung, erster_tag " . ($letzter_tag != null ? ", letzter_tag" : "") . ", regelwerke_id, modus_id, verschieberegel_id, tabellenwertung, direktervergleich, unterteilung, spieltag_titel_zeigen, elo_wertung, logo_url, ticker_logo_url, status, reihenfolge, kategorie) VALUES $query = "INSERT INTO #__sportsmanager_veranstaltung (veranstalter_id, saison_id, bezeichnung, erster_tag " . ($letzter_tag != null ? ", letzter_tag" : "") . ", regelwerke_id, modus_id, verschieberegel_id, tabellenwertung, direktervergleich, unterteilung, spieltag_titel_zeigen, elo_wertung, explizite_strafen, logo_url, ticker_logo_url, status, reihenfolge, kategorie) VALUES
('$veranstalterId', '$saison_id', '$bezeichnung', '$erster_tag', " . ($letzter_tag != null ? "'$letzter_tag', " : "") . "'$regelwerke_id', '$modus_id', '$verschieberegel_id', '$tabellenwertung', '$direktervergleich', '$unterteilung', '$spieltag_titel_zeigen', '$elo_wertung', '$logo_url', '$ticker_logo_url', '$status', '$reihenfolge', '$kategorie');"; ('$veranstalterId', '$saison_id', '$bezeichnung', '$erster_tag', " . ($letzter_tag != null ? "'$letzter_tag', " : "") . "'$regelwerke_id', '$modus_id', '$verschieberegel_id', '$tabellenwertung', '$direktervergleich', '$unterteilung', '$spieltag_titel_zeigen', '$elo_wertung', '$explizite_strafen', '$logo_url', '$ticker_logo_url', '$status', '$reihenfolge', '$kategorie');";
$db->setQuery($query); $db->setQuery($query);
if (!$db->execute()) { if (!$db->execute()) {
die($db->stderr(true)); die($db->stderr(true));
@@ -7733,6 +8425,7 @@ function adminEditVeranstaltung(): void
. "\n unterteilung = '$unterteilung'," . "\n unterteilung = '$unterteilung',"
. "\n spieltag_titel_zeigen = '$spieltag_titel_zeigen'," . "\n spieltag_titel_zeigen = '$spieltag_titel_zeigen',"
. "\n elo_wertung = '$elo_wertung'," . "\n elo_wertung = '$elo_wertung',"
. "\n explizite_strafen = '$explizite_strafen',"
. "\n logo_url = '$logo_url'," . "\n logo_url = '$logo_url',"
. "\n ticker_logo_url = '$ticker_logo_url'," . "\n ticker_logo_url = '$ticker_logo_url',"
. "\n status = '$status'," . "\n status = '$status',"
@@ -8213,6 +8906,61 @@ function adminEditMannschaft(): void
redirectSportsManagerURL('&task=admin_teams&veranstaltungid=' . $veranstaltungId); redirectSportsManagerURL('&task=admin_teams&veranstaltungid=' . $veranstaltungId);
} }
function veranstaltungid_for_teamid( $db, $teamid )
{
$query = "SELECT veranstaltung_id FROM #__sportsmanager_team WHERE team_id = $teamid";
$veranstaltungid = loadResult($db, $query);
if ($veranstaltungid == 0) { die("invalid team id"); }
return $veranstaltungid;
}
function adminMannschaftStrafen()
{
$db = getDatabase();
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
$teamid = $jInput->get('teamid', 0, 'INT');
if ($teamid == 0) die("Missing id!");
$veranstaltungid = veranstaltungid_for_teamid($db, $teamid);
$query = "SELECT teamname FROM #__sportsmanager_team WHERE team_id = $teamid";
$teamname = loadResult($db, $query);
if (!benutzerZugriff("mannschaftswettbewerb_aendern") && !benutzerVeranstaltungModerator($veranstaltungid))
keinZugriff();
$query = "SELECT strafen.zeitpunkt, strafen.strafe, strafen.beschreibung, users.name AS moderator_name"
. "\n FROM #__sportsmanager_team_strafen as strafen"
. "\n LEFT JOIN #__users as users ON users.id = strafen.moderator_user_id"
. "\n WHERE strafen.team_id = $teamid";
$rows = loadObjectList($db, $query);
HTML_sportsmanager_admin::adminMannschaftStrafen($teamid, $veranstaltungid, $teamname, $rows);
}
function adminMannschaftAddStrafe()
{
$db = getDatabase();
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
$teamid = $jInput->get('teamid', 0, 'INT');
if ($teamid == 0) die("Missing id!");
$veranstaltungid = veranstaltungid_for_teamid($db, $teamid);
if (!benutzerZugriff("mannschaftswettbewerb_aendern") && !benutzerVeranstaltungModerator($veranstaltungid))
keinZugriff();
if ($jInput->get('cancel', false, 'BOOL')) {
redirectSportsManagerURL("&task=admin_team_edit&veranstaltungid=$veranstaltungid&id=$teamid");
} else if ($jInput->get('add', false, 'BOOL')) {
$user_id = Factory::getContainer()->get(SiteApplication::class)->getIdentity()->id;
$strafe = $jInput->get('strafe', 0, 'FLOAT');
$beschreibung = $jInput->get('beschreibung', 0, 'RAW');
neueTeamStrafe($teamid, $veranstaltungid, $strafe, $user_id, $beschreibung);
redirectSportsManagerURL('&task=admin_team_strafen&teamid=' . $teamid);
} else {
redirectSportsManagerURL('&task=admin_teams&veranstaltungid=' . $veranstaltungid);
}
}
function mannschaftsgruppe_hinzufuegen($quelle_team_id, $ziel_veranstaltung_id) function mannschaftsgruppe_hinzufuegen($quelle_team_id, $ziel_veranstaltung_id)
{ {
$db = getDatabase(); $db = getDatabase();
@@ -12112,30 +12860,42 @@ function adminBegegnungenExportForm(): void
$Bestaetigt = []; $Bestaetigt = [];
$Bestaetigt = []; $Bestaetigt = [];
$Moderator = []; $Moderator = [];
$value->vorgeschlagen_um = "";
$value->vorgeschlagen_von = "";
$value->bestaetigt_um = "";
$value->bestaetigt_von = "";
$value->moderator_um = "";
$value->moderator_von = "";
// Endergebnis vorgeschlagen // Endergebnis vorgeschlagen
$query = " $query = "
SELECT t1.eingetragen AS gespeichert_um, t2.name AS gespeichert_von SELECT t1.eingetragen AS gespeichert_um,
t2.name AS gespeichert_von_user,
t3.teamname AS gespeichert_von_team
FROM #__sportsmanager_begegnung_historie AS t1 FROM #__sportsmanager_begegnung_historie AS t1
LEFT JOIN #__users AS t2 ON t1.user_id = t2.id LEFT JOIN #__users AS t2 ON t1.user_id = t2.id
LEFT JOIN #__sportsmanager_team AS t3 ON t1.team_id = t3.team_id
WHERE begegnung_id = " . $value->ID . " WHERE begegnung_id = " . $value->ID . "
AND aktion IN (6) AND aktion IN (6)
ORDER BY eingetragen DESC LIMIT 1; ORDER BY eingetragen DESC LIMIT 1;
"; ";
$Bestaetigt = loadObjectList($db, $query); $Vorgeschlagen = loadObjectList($db, $query);
if (!empty($Bestaetigt)) { if (!empty($Vorgeschlagen)) {
$value->vorgeschlagen_um = $Bestaetigt[0]->gespeichert_um; $value->vorgeschlagen_um = $Vorgeschlagen[0]->gespeichert_um;
$value->vorgeschlagen_von = $Bestaetigt[0]->gespeichert_von; if (!empty($Vorgeschlagen[0]->gespeichert_von_user))
} else { $value->vorgeschlagen_von = $Vorgeschlagen[0]->gespeichert_von_user;
$value->vorgeschlagen_um = $Bestaetigt[0]->gespeichert_um; if (!empty($Vorgeschlagen[0]->gespeichert_von_team))
$value->vorgeschlagen_von = $Bestaetigt[0]->gespeichert_von; $value->vorgeschlagen_von = $Vorgeschlagen[0]->gespeichert_von_team;
} }
// Endergebnis bestätigen Gegner // Endergebnis bestätigen Gegner
$query = " $query = "
SELECT t1.eingetragen AS gespeichert_um, t2.name AS gespeichert_von SELECT t1.eingetragen AS gespeichert_um,
t2.name AS gespeichert_von_user,
t3.teamname AS gespeichert_von_team
FROM #__sportsmanager_begegnung_historie AS t1 FROM #__sportsmanager_begegnung_historie AS t1
LEFT JOIN #__users AS t2 ON t1.user_id = t2.id LEFT JOIN #__users AS t2 ON t1.user_id = t2.id
LEFT JOIN #__sportsmanager_team AS t3 ON t1.team_id = t3.team_id
WHERE begegnung_id = " . $value->ID . " WHERE begegnung_id = " . $value->ID . "
AND aktion IN (7) AND aktion IN (7)
ORDER BY eingetragen DESC LIMIT 1; ORDER BY eingetragen DESC LIMIT 1;
@@ -12143,17 +12903,20 @@ function adminBegegnungenExportForm(): void
$Bestaetigt = loadObjectList($db, $query); $Bestaetigt = loadObjectList($db, $query);
if (!empty($Bestaetigt)) { if (!empty($Bestaetigt)) {
$value->bestaetigt_um = $Bestaetigt[0]->gespeichert_um; $value->bestaetigt_um = $Bestaetigt[0]->gespeichert_um;
$value->bestaetigt_von = $Bestaetigt[0]->gespeichert_von; if (!empty($Bestaetigt[0]->gespeichert_von_user))
} else { $value->bestaetigt_von = $Bestaetigt[0]->gespeichert_von_user;
$value->bestaetigt_um = $Bestaetigt[0]->gespeichert_um; if (!empty($Bestaetigt[0]->gespeichert_von_team))
$value->bestaetigt_von = $Bestaetigt[0]->gespeichert_von; $value->bestaetigt_von = $Bestaetigt[0]->gespeichert_von_team;
} }
// Endergebnis bestätigen Moderator // Endergebnis bestätigen Moderator
$query = " $query = "
SELECT t1.eingetragen AS gespeichert_um, t2.name AS gespeichert_von SELECT t1.eingetragen AS gespeichert_um,
t2.name AS gespeichert_von_user,
t3.teamname AS gespeichert_von_team
FROM #__sportsmanager_begegnung_historie AS t1 FROM #__sportsmanager_begegnung_historie AS t1
LEFT JOIN #__users AS t2 ON t1.user_id = t2.id LEFT JOIN #__users AS t2 ON t1.user_id = t2.id
LEFT JOIN #__sportsmanager_team AS t3 ON t1.team_id = t3.team_id
WHERE begegnung_id = " . $value->ID . " WHERE begegnung_id = " . $value->ID . "
AND aktion IN (8) AND aktion IN (8)
ORDER BY eingetragen DESC LIMIT 1; ORDER BY eingetragen DESC LIMIT 1;
@@ -12161,10 +12924,10 @@ function adminBegegnungenExportForm(): void
$Moderator = loadObjectList($db, $query); $Moderator = loadObjectList($db, $query);
if (!empty($Moderator)) { if (!empty($Moderator)) {
$value->moderator_um = $Moderator[0]->gespeichert_um; $value->moderator_um = $Moderator[0]->gespeichert_um;
$value->moderator_von = $Moderator[0]->gespeichert_von; if (!empty($Moderator[0]->gespeichert_von_user))
} else { $value->moderator_von = $Moderator[0]->gespeichert_von_user;
$value->moderator_um = $Moderator[0]->gespeichert_um; if (!empty($Moderator[0]->gespeichert_von_team))
$value->moderator_von = $Moderator[0]->gespeichert_von; $value->moderator_von = $Moderator[0]->gespeichert_von_team;
} }
// Spielbericht // Spielbericht
@@ -5568,6 +5568,126 @@ function updateDatabase(): void
} }
} }
if ($datenbank_version < 117) {
$query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_team_strafen` ("
. "\n `team_strafen_id` int(11) NOT NULL AUTO_INCREMENT,"
. "\n `zeitpunkt` datetime NOT NULL,"
. "\n `moderator_user_id` int(11) DEFAULT NULL,"
. "\n `team_id` int(11) NOT NULL DEFAULT '0',"
. "\n `strafe` float(6,2) NOT NULL DEFAULT '0',"
. "\n `beschreibung` text NOT NULL,"
. "\n PRIMARY KEY (`team_strafen_id`)"
. "\n) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "ALTER TABLE #__sportsmanager_veranstaltung"
. "\n ADD IF NOT EXISTS explizite_strafen tinyint(4) DEFAULT '0' AFTER elo_wertung";
$db->setQuery($query);
if (!$db->execute()) { die($db->stderr(true)); }
$query = "UPDATE #__sportsmanager_einstellungen SET wert = '117' WHERE name = 'datenbank_version'";
$db->setQuery($query);
if (!$db->execute()) { die($db->stderr(true)); }
}
if ($datenbank_version < 118) {
$query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_verbandsorgane` ("
. "\n `verbandsorgane_id` int(11) NOT NULL AUTO_INCREMENT,"
. "\n `veranstalter_id` int(11) DEFAULT NULL,"
. "\n `verbandsorgan` varchar(32) DEFAULT NULL,"
. "\n `kategorie` int(4) DEFAULT NULL,"
. "\n `reihenfolge` int(4) DEFAULT NULL,"
. "\n `email` varchar(64) DEFAULT NULL,"
. "\n `beschreibung` text NOT NULL,"
. "\n PRIMARY KEY (`verbandsorgane_id`),"
. "\n KEY (`veranstalter_id`)"
. "\n ) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_mitglied_von_verbandsorgan` ("
. "\n `mitglied_von_verbandsorgan_id` int(11) NOT NULL AUTO_INCREMENT,"
. "\n `verbandsorgane_id` int(11) DEFAULT NULL,"
. "\n `funktion` varchar(32) DEFAULT NULL,"
. "\n `zusatzinfo` varchar(64) DEFAULT NULL,"
. "\n `spieler_id` int(11) DEFAULT NULL,"
. "\n `nachname` varchar(32) DEFAULT NULL,"
. "\n `vorname` varchar(32) DEFAULT NULL,"
. "\n `email` varchar(64) DEFAULT NULL,"
. "\n `telefon` varchar(32) DEFAULT NULL,"
. "\n `mobil` varchar(32) DEFAULT NULL,"
. "\n `reihenfolge` int(11) DEFAULT NULL,"
. "\n PRIMARY KEY (`mitglied_von_verbandsorgan_id`),"
. "\n KEY (`verbandsorgane_id`),"
. "\n KEY (`spieler_id`)"
. "\n ) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$query = "UPDATE #__sportsmanager_einstellungen"
. "\n SET wert = '118'"
. "\n WHERE name = 'datenbank_version'";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
}
if ($datenbank_version < 119) {
$query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_halloffame` ("
. "\n `halloffame_id` int(11) NOT NULL AUTO_INCREMENT,"
. "\n `veranstalter_id` int(11) DEFAULT NULL,"
. "\n `halloffame` varchar(64) DEFAULT NULL,"
. "\n `kategorie` int(4) DEFAULT NULL,"
. "\n `spielform` int(11) DEFAULT NULL,"
. "\n `reihenfolge` int(4) DEFAULT NULL,"
. "\n PRIMARY KEY (`halloffame_id`),"
. "\n KEY `veranstalter_id` (`veranstalter_id`)"
. "\n ) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_mitglied_von_halloffame` ("
. "\n `mitglied_halloffame_id` int(11) NOT NULL AUTO_INCREMENT,"
. "\n `halloffame_id` int(11) NOT NULL,"
. "\n `jahr` int(4) DEFAULT NULL,"
. "\n `platz` int(11) DEFAULT NULL,"
. "\n `verein_id` int(11) DEFAULT NULL,"
. "\n `teamname` varchar(64) DEFAULT NULL,"
. "\n `spieler1_id` int(11) DEFAULT NULL,"
. "\n `spieler1` varchar(64) DEFAULT NULL,"
. "\n `spieler2_id` int(11) DEFAULT NULL,"
. "\n `spieler2` varchar(64) DEFAULT NULL,"
. "\n PRIMARY KEY (`mitglied_halloffame_id`),"
. "\n UNIQUE KEY `halloffame_jahr_platz` (`halloffame_id`,`jahr`,`platz`),"
. "\n KEY `halloffame_id` (`halloffame_id`),"
. "\n KEY `verein_id` (`verein_id`),"
. "\n KEY `spieler1_id` (`spieler1_id`),"
. "\n KEY `spieler2_id` (`spieler2_id`)"
. "\n ) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$query = "UPDATE #__sportsmanager_einstellungen"
. "\n SET wert = '119'"
. "\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";
@@ -371,6 +371,57 @@ if ($task == "spielerbild") {
case 'admin_joomla_mail_senden': case 'admin_joomla_mail_senden':
sendJoomlaMail(); sendJoomlaMail();
break; break;
case 'admin_verbandsorgane':
adminVerbandsorgane();
break;
case 'admin_verbandsorgan_edit':
adminEditVerbandsorgan();
break;
case 'admin_verbandsorgan_save':
adminSaveVerbandsorgan();
break;
case 'admin_verbandsorgan_remove':
adminRemoveVerbandsorgan();
break;
case 'admin_verbandsorgane_export':
adminExportVerbandsorgane();
break;
case 'admin_verbandsorgan_mitglieder':
adminVerbandsorganMitglieder();
break;
case 'admin_verbandsorgan_mitglied_edit':
adminEditVerbandsorganMitglied();
break;
case 'admin_verbandsorgan_mitglied_save':
adminSaveVerbandsorganMitglied();
break;
case 'admin_verbandsorgan_mitglied_remove':
adminRemoveVerbandsorganMitglied();
break;
case 'admin_halloffame':
adminHalloffame();
break;
case 'admin_halloffame_edit':
adminEditHalloffame();
break;
case 'admin_halloffame_save':
adminSaveHalloffame();
break;
case 'admin_halloffame_remove':
adminRemoveHalloffame();
break;
case 'admin_halloffame_mitglieder':
adminHalloffameMitglieder();
break;
case 'admin_halloffame_mitglied_edit':
adminEditHalloffameMitglied();
break;
case 'admin_halloffame_mitglied_save':
adminSaveHalloffameMitglied();
break;
case 'admin_halloffame_mitglied_remove':
adminRemoveHalloffameMitglied();
break;
case 'admin_regelwerke': case 'admin_regelwerke':
adminRegelwerke(); adminRegelwerke();
break; break;
@@ -461,6 +512,12 @@ if ($task == "spielerbild") {
case 'admin_team_edit': case 'admin_team_edit':
adminEditMannschaft(); adminEditMannschaft();
break; break;
case 'admin_team_strafen':
adminMannschaftStrafen();
break;
case 'admin_team_add_strafe':
adminMannschaftAddStrafe();
break;
case 'admin_team_save': case 'admin_team_save':
adminSaveMannschaft(); adminSaveMannschaft();
break; break;
@@ -1061,6 +1118,24 @@ if ($task == "spielerbild") {
} }
} else if ($content == 'spielverlegungen') { } else if ($content == 'spielverlegungen') {
spielverlegungen(); spielverlegungen();
} else if ($content == 'verbandsorgane') {
switch ($task) {
case 'verbandsorgane_details':
verbandsorganeDetails();
break;
default:
verbandsorgane();
break;
}
} else if ($content == 'hall_of_fame') {
switch ($task) {
case 'hall_of_fame_details':
halloffameDetails();
break;
default:
halloffame();
break;
}
} else if ($content == 'login') { } else if ($content == 'login') {
userAuth(); userAuth();
} else if ($content == 'login_refresh') { } else if ($content == 'login_refresh') {
@@ -4218,6 +4293,195 @@ function spielverlegungen(): void
} }
} }
function verbandsorgane(): void
{
$db = getDatabase();
global $params;
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
$query = "SELECT t1.*, COUNT(t2.verbandsorgane_id) AS anzahl, t3.veranstalterbezeichnung AS organisation"
. "\n FROM #__sportsmanager_verbandsorgane t1"
. "\n LEFT JOIN #__sportsmanager_mitglied_von_verbandsorgan t2 ON t2.verbandsorgane_id = t1.verbandsorgane_id"
. "\n LEFT JOIN #__sportsmanager_veranstalter t3 ON t3.veranstalter_id = t1.veranstalter_id"
. "\n GROUP BY t1.verbandsorgane_id"
. kategorieFilter("HAVING t1.kategorie IN")
. "\n ORDER BY t1.reihenfolge;";
$verbandsorgane = loadObjectList($db, $query);
$query = "SELECT COUNT(veranstalter_id) AS anzahl"
. "\n FROM #__sportsmanager_verbandsorgane"
. "\n GROUP BY veranstalter_id"
. kategorieFilter("WHERE kategorie IN");
$organisationen = loadObjectList($db, $query);
if (count($organisationen) > 1)
$organisation_zeigen = true;
else
$organisation_zeigen = false;
if (count($verbandsorgane) == 1){
verbandsorganeDetails($verbandsorgane[0]->verbandsorgane_id);
} else {
if (isJson()) {
echo json_encode($verbandsorgane);
} else {
HTML_sportsmanager::verbandsorgane($params->get('titel'), $params->get('beschreibung'), $verbandsorgane, $organisation_zeigen);
}
}
}
function verbandsorganeDetails($uebergabe_id = 0): void
{
$db = getDatabase();
$app = Factory::getContainer()->get(SiteApplication::class);
$jInput = $app->input;
global $params;
$user_id = isExternalDatabase() ? 0 : (isJson() ? getUserID() : $app->getIdentity()->id);
if ($user_id > 0)
$erweiterte_anzeige = true;
else
$erweiterte_anzeige = false;
if ($uebergabe_id == 0)
$id = $jInput->get('id', 0, 'INT');
else
$id = $uebergabe_id;
$query = "SELECT * FROM #__sportsmanager_verbandsorgane WHERE verbandsorgane_id = $id";
$rows = loadObjectList($db, $query);
if (count($rows) < 1) {
abortWithError("Wrong id!");
}
$verbandsorgan = $rows[0];
$query = "SELECT * FROM #__sportsmanager_mitglied_von_verbandsorgan"
. "\n WHERE verbandsorgane_id = $id"
. "\n ORDER BY reihenfolge, nachname, vorname";
$mitglieder = loadObjectList($db, $query);
$query = "SELECT zusatzinfo FROM #__sportsmanager_mitglied_von_verbandsorgan"
. "\n WHERE verbandsorgane_id = $id"
. "\n AND zusatzinfo IS NOT NULL AND TRIM(zusatzinfo) <> ''"
. "\n ORDER BY reihenfolge, nachname, vorname";
$zusatzinfos = loadObjectList($db, $query);
if (count($zusatzinfos) > 0)
$zusatzinfos_vorhanden = true;
else
$zusatzinfos_vorhanden = false;
if (isJson()) {
echo json_encode($mitglieder);
} else {
HTML_sportsmanager::verbandsorganeDetails($params->get('titel'), $params->get('beschreibung'), $verbandsorgan, $mitglieder, $erweiterte_anzeige, $zusatzinfos_vorhanden);
}
}
function halloffame(): void
{
$db = getDatabase();
global $params;
$query = "SELECT t1.*, COUNT(DISTINCT t2.jahr) AS anzahl,"
. "\n IF (COUNT(DISTINCT t2.jahr) > 0, CONCAT(min(t2.jahr), ' - ', max(t2.jahr)), '" . Text::_('COM_SPORTSMANAGER_NO_ENTRY') . "') AS zeitspanne"
. "\n FROM #__sportsmanager_halloffame t1"
. "\n LEFT JOIN #__sportsmanager_mitglied_von_halloffame t2 ON t2.halloffame_id = t1.halloffame_id"
. "\n GROUP BY t1.halloffame_id"
. kategorieFilter("HAVING t1.kategorie IN")
. "\n ORDER BY t1.reihenfolge;";
$halloffame = loadObjectList($db, $query);
if (count($halloffame) == 1){
halloffameDetails($halloffame[0]->halloffame_id);
} else {
if (isJson()) {
echo json_encode($halloffame);
} else {
HTML_sportsmanager::halloffame($params->get('titel'), $params->get('beschreibung'), $halloffame);
}
}
}
function halloffameDetails($uebergabe_id = 0): void
{
$db = getDatabase();
$app = Factory::getContainer()->get(SiteApplication::class);
$jInput = $app->input;
global $params;
if ($uebergabe_id == 0)
$id = $jInput->get('id', 0, 'INT');
else
$id = $uebergabe_id;
$mitglieder = null;
$query = "SELECT * FROM #__sportsmanager_halloffame WHERE halloffame_id = $id";
$rows = loadObjectList($db, $query);
if (count($rows) < 1) {
abortWithError("Wrong id!");
}
$halloffame = $rows[0];
$halloffame->platz2_zeigen = 0;
$halloffame->platz3_zeigen = 0;
$query = "SELECT t2.*, t1.halloffame"
. "\n FROM #__sportsmanager_halloffame t1"
. "\n LEFT JOIN #__sportsmanager_mitglied_von_halloffame t2 ON t2.halloffame_id = t1.halloffame_id"
. "\n WHERE t2.halloffame_id = $id"
. "\n ORDER BY t2.jahr DESC, platz ASC;";
$rows = loadObjectList($db, $query);
if (count($rows) > 0){
$mitglieder = [];
if ($halloffame->spielform == 1){
foreach ($rows as $row) {
$index_vereinid = "verein_id_" . $row->platz;
$index_team = "teamname_" . $row->platz;
if (!isset($mitglieder[$row->jahr])) {
$mitglieder[$row->jahr] = new stdClass();
}
$mitglieder[$row->jahr]->jahr = $row->jahr;
$mitglieder[$row->jahr]->$index_vereinid = $row->verein_id;
$mitglieder[$row->jahr]->$index_team = $row->teamname;
if ($row->platz == 2 && !empty($row->teamname))
$halloffame->platz2_zeigen = 1;
if ($row->platz == 3 && !empty($row->teamname))
$halloffame->platz3_zeigen = 1;
}
}
if ($halloffame->spielform == 2 || $halloffame->spielform == 3){
foreach ($rows as $row) {
$index_spieler1id = "spieler1_id_" . $row->platz;
$index_spieler1 = "spieler1_" . $row->platz;
$index_spieler2id = "spieler2_id_" . $row->platz;
$index_spieler2 = "spieler2_" . $row->platz;
if (!isset($mitglieder[$row->jahr])) {
$mitglieder[$row->jahr] = new stdClass();
}
$mitglieder[$row->jahr]->jahr = $row->jahr;
$mitglieder[$row->jahr]->$index_spieler1id = $row->spieler1_id;
$mitglieder[$row->jahr]->$index_spieler1 = $row->spieler1;
$mitglieder[$row->jahr]->$index_spieler2id = $row->spieler2_id;
$mitglieder[$row->jahr]->$index_spieler2 = $row->spieler2;
if ($row->platz == 2 && (!empty($row->spieler1) || !empty($row->spieler2)))
$halloffame->platz2_zeigen = 1;
if ($row->platz == 3 && (!empty($row->spieler1) || !empty($row->spieler2)))
$halloffame->platz3_zeigen = 1;
}
}
}
if (isJson()) {
echo json_encode($mitglieder);
} else {
HTML_sportsmanager::halloffameDetails($params->get('titel'), $params->get('beschreibung'), $mitglieder, $halloffame);
}
}
function begegnungSpielplan($teamansicht = false): void function begegnungSpielplan($teamansicht = false): void
{ {
$db = getDatabase(); $db = getDatabase();
@@ -4776,6 +5040,54 @@ function begegnungVerlegen(): void
} }
} }
function neueTeamStrafe($teamid, $veranstaltungid, $strafe, $moderator_user_id, $beschreibung) {
$app = Factory::getContainer()->get(SiteApplication::class);
$db = getDatabase();
$zeitpunkt = date('Y-m-d H:i:s');
$query = "INSERT INTO #__sportsmanager_team_strafen"
. "\n (team_id, zeitpunkt, moderator_user_id, strafe, beschreibung)"
. "\n VALUES ($teamid, '$zeitpunkt', $moderator_user_id, $strafe, '$beschreibung')";
$db->setQuery($query);
if (!$result = $db->execute()) { die($db->stderr(true)); }
$query = "UPDATE #__sportsmanager_team"
. "\n SET zusatzpunkte = ("
. "\n SELECT SUM(#__sportsmanager_team_strafen.strafe)"
. "\n FROM #__sportsmanager_team_strafen"
. "\n WHERE #__sportsmanager_team_strafen.team_id = $teamid"
. "\n ) WHERE #__sportsmanager_team.team_id = $teamid";
$db->setQuery($query);
if (!$result = $db->execute()) { die($db->stderr(true)); }
teamstatistikAktualisieren($veranstaltungid);
$query = "SELECT teamname FROM #__sportsmanager_team WHERE team_id = $teamid";
$teamname = loadResult($db, $query);
$mailfrom = $app->getCfg('mailfrom');
$fromname = $app->getCfg('fromname');
$penaltycc = $app->getCfg('penaltycc');
$subject = JText::sprintf('COM_SPORTSMANAGER_EXPLICIT_PENALTIES_EMAIL_SUBJECT', $teamname);
$body = JText::sprintf('COM_SPORTSMANAGER_EXPLICIT_PENALTIES_EMAIL_BODY', $teamname, $strafe, $beschreibung);
$query = "SELECT t1.email FROM #__users AS t1, #__sportsmanager_berechtigt_fuer_team AS t2 WHERE t1.id = t2.berechtigt_user_id AND t2.berechtigt_team_id = $teamid";
$rows = loadObjectList($db, $query);
if(!empty($rows)) {
$mailer = Factory::getContainer()->get(MailerFactoryInterface::class)->createMailer();
$mailer->setSender($mailfrom, $fromname);
if (!empty($penaltycc)) {
$mailer->addCc($penaltycc);
}
$mailer->setSubject($subject);
$mailer->setBody($body);
foreach ($rows as $row) {
$mailer->addBcc($row->email);
}
$mailer->send();
}
}
function teamstatistikAktualisieren($geaenderte_veranstaltung_id = 0, $geaenderter_teamspiel_modus_id = 0): void function teamstatistikAktualisieren($geaenderte_veranstaltung_id = 0, $geaenderter_teamspiel_modus_id = 0): void
{ {
$db = getDatabase(); $db = getDatabase();
@@ -25,6 +25,8 @@
<option value="spielorte"><![CDATA[COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_VENUES]]></option> <option value="spielorte"><![CDATA[COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_VENUES]]></option>
<option value="termine"><![CDATA[COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_APPOINTMENTS]]></option> <option value="termine"><![CDATA[COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_APPOINTMENTS]]></option>
<option value="spielverlegungen"><![CDATA[COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_MATCH_RESCHEDULING]]></option> <option value="spielverlegungen"><![CDATA[COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_MATCH_RESCHEDULING]]></option>
<option value="verbandsorgane"><![CDATA[COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_ASSOCIATION_BODIES]]></option>
<option value="hall_of_fame"><![CDATA[COM_SPORTSMANAGER_LAYOUT_GENERAL_CONTENT_OPTION_HALL_OF_FAME]]></option>
</field> </field>
<field name="titel" <field name="titel"
type="text" type="text"
@@ -3951,13 +3951,14 @@ static function spielverlegungen($titel, $beschreibung, $rows): void
} }
?> ?>
<div class="uk-overflow-auto"> <div class="uk-overflow-auto">
<table class="uk-table-shrink contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>" style='width: 1000px;'> <table style='border-collapse: collapse;'
class="uk-table-hover uk-table-divider uk-table-middle dtfl-table-medium contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr class="sectiontableheader<?php echo $params->get('pageclass_sfx'); ?>"> <tr class="sectiontableheader<?php echo $params->get('pageclass_sfx'); ?>">
<th nowrap style='text-align: center; width: 180px;'><STRONG><?php echo Text::_('COM_SPORTSMANAGER_COMPETITION'); ?></STRONG></th> <th nowrap style='text-align: center; width: 200px;'><STRONG><?php echo Text::_('COM_SPORTSMANAGER_COMPETITION'); ?></STRONG></th>
<th nowrap style='text-align: center; width: 200px;'><STRONG><?php echo Text::_('COM_SPORTSMANAGER_MATCH'); ?></STRONG></th> <th nowrap style='text-align: center; width: 300px;'><STRONG><?php echo Text::_('COM_SPORTSMANAGER_MATCH'); ?></STRONG></th>
<th nowrap style='text-align: center; width: 150px;'><STRONG><?php echo Text::_('COM_SPORTSMANAGER_OLD_DATE'); ?></STRONG></th> <th nowrap style='text-align: center; width: 160px;'><STRONG><?php echo Text::_('COM_SPORTSMANAGER_OLD_DATE'); ?></STRONG></th>
<th nowrap style='text-align: center; width: 150px;'><STRONG><?php echo Text::_('COM_SPORTSMANAGER_NEW_DATE'); ?></STRONG></th> <th nowrap style='text-align: center; width: 160px;'><STRONG><?php echo Text::_('COM_SPORTSMANAGER_NEW_DATE'); ?></STRONG></th>
<th nowrap style='text-align: left; width: 280px;'><STRONG><?php echo Text::_('COM_SPORTSMANAGER_COMMENT'); ?></STRONG></th> <th nowrap style='text-align: left; width: 300px;'><STRONG><?php echo Text::_('COM_SPORTSMANAGER_COMMENT'); ?></STRONG></th>
</tr> </tr>
<?php <?php
if (count($rows) > 0) { if (count($rows) > 0) {
@@ -3983,10 +3984,10 @@ static function spielverlegungen($titel, $beschreibung, $rows): void
?> ?>
</td> </td>
<td nowrap style='text-align: center;'> <td nowrap style='text-align: center;'>
<?php echo str_replace(" ", "<br>", date('d.m.Y h:i', strtotime($row->Termin_alt))); ?> <?php echo str_replace(" ", "<br>", date('d.m.Y H:i', strtotime($row->Termin_alt))); ?>
</td> </td>
<td nowrap style='text-align: center;'> <td nowrap style='text-align: center;'>
<?php echo $row->Termin_neu == "" ? "" : str_replace(" ", "<br>", date('d.m.Y h:i', strtotime($row->Termin_neu))); ?> <?php echo $row->Termin_neu == "" ? "" : str_replace(" ", "<br>", date('d.m.Y H:i', strtotime($row->Termin_neu))); ?>
</td> </td>
<td nowrap style='text-align: left;'> <td nowrap style='text-align: left;'>
<?php echo htmlentities_utf8($row->Begruendung_beantragt); ?> <?php echo htmlentities_utf8($row->Begruendung_beantragt); ?>
@@ -4001,6 +4002,328 @@ static function spielverlegungen($titel, $beschreibung, $rows): void
<?php <?php
} }
static function verbandsorgane($titel, $beschreibung, $rows, $organisation_zeigen): void
{
global $params;
if (!empty($titel)) { ?>
<style>td{padding: 3px;}</style>
<div
class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"><?php echo htmlentities_utf8($titel); ?></div><?php }
if (!empty($beschreibung)) {
?>
<div class="uk-overflow-auto">
<table class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr>
<td><?php echo str_contains($beschreibung, ">") ? $beschreibung : htmlentities_utf8($beschreibung); ?></td>
</tr>
</table>
</div>
<?php
}
if (count($rows) > 0) {
?>
<table style='border-collapse: collapse;'
class="uk-table-hover uk-table-divider uk-table-middle dtfl-table-medium contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr class="sectiontableheader<?php echo $params->get('pageclass_sfx'); ?>">
<th style='text-align: left; width: 250px;' nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_ASSOCIATION_BODIES'); ?></strong></th>
<th style='text-align: left; width: 100px;' nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_MEMBERS'); ?></strong></th>
<th style='text-align: left; width: 250px;' nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_EMAIL'); ?></strong></th>
<?PHP if ($organisation_zeigen){ ?>
<th style='text-align: left; width: 150px;' nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_ORGANISATION'); ?></strong></th>
<?PHP } ?>
</tr>
<?php
$k = 0;
foreach ($rows as $row) {
?>
<tr class="sectiontableentry<?php echo $k + 1;
$k = ($k + 1) % 2; ?><?php echo $params->get('pageclass_sfx'); ?>">
<td nowrap>
<a href="<?php echo SportsManagerURL('&task=verbandsorgane_details&id=' . $row->verbandsorgane_id); ?>">
<?php echo htmlentities_utf8(NichtLeererString($row->verbandsorgan)); ?>
</a>
</td>
<td nowrap>
<?php echo $row->anzahl; ?>
</td>
<td nowrap>
<?php echo $row->email; ?>
</td>
<?PHP if ($organisation_zeigen){ ?>
<td nowrap>
<?php echo $row->organisation; ?>
</td>
<?PHP } ?>
</tr>
<?php
}
?>
</table>
<?php
}
?>
<span class="article_seperator<?php echo $params->get('pageclass_sfx'); ?>">&nbsp;</span>
<?php
}
static function verbandsorganeDetails($titel, $beschreibung, $verbandsorgan, $rows, $erweiterte_anzeige, $zusatzinfos_vorhanden): void
{
global $params;
if (!empty($titel)) { ?>
<style>td{padding: 3px;}</style>
<div
class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"><?php echo htmlentities_utf8($titel); ?></div><?php }
if (!empty($beschreibung)) {
?>
<div class="uk-overflow-auto">
<table class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr>
<td><?php echo str_contains($beschreibung, ">") ? $beschreibung : htmlentities_utf8($beschreibung); ?></td>
</tr>
</table>
</div>
<?php
}
echo "<H1>" . $verbandsorgan->verbandsorgan . "</H1>";
echo $verbandsorgan->beschreibung;
if (count($rows) > 0) {
?>
<h2><?php echo Text::_('COM_SPORTSMANAGER_MEMBERS'); ?></h2>
<table style='border-collapse: collapse;'
class="uk-table-hover uk-table-divider uk-table-middle dtfl-table-medium contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<?php
$k = 0;
foreach ($rows as $row) {
?>
<tr class="sectiontableentry<?php echo $k + 1;
$k = ($k + 1) % 2; ?><?php echo $params->get('pageclass_sfx'); ?>">
<td style='width: 80px;' nowrap>
<?PHP echo bildHTML("spieler", $row->spieler_id, 45, 60, 0, 0, 'border="1"'); ?>
</td>
<td style='width: 200px;' nowrap>
<?php echo htmlentities_utf8($row->nachname . ", " . $row->vorname); ?>
</td>
<?PHP if ($erweiterte_anzeige){ ?>
<td style='width: 300px;' nowrap>
<?php echo htmlentities_utf8($row->email); ?>
</td>
<td style='width: 300px;' nowrap>
<?php echo htmlentities_utf8($row->telefon); ?>
<?PHP if ($row->telefon && $row->mobil){ echo "<br>"; }?>
<?php echo htmlentities_utf8($row->mobil); ?>
</td>
<?PHP } ?>
<td style='width: 200px;' nowrap>
<?php echo htmlentities_utf8($row->funktion); ?>
</td>
<?PHP if ($zusatzinfos_vorhanden){ ?>
<td style='width: 200px;' nowrap>
<?php echo htmlentities_utf8($row->zusatzinfo); ?>
</td>
<?PHP } ?>
</tr>
<?php
}
?>
</table>
<?php
}
?>
<span class="article_seperator<?php echo $params->get('pageclass_sfx'); ?>">&nbsp;</span>
<?php
}
static function halloffame($titel, $beschreibung, $rows): void
{
global $params;
if (!empty($titel)) { ?>
<style>td{padding: 3px;}</style>
<div
class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"><?php echo htmlentities_utf8($titel); ?></div><?php }
if (!empty($beschreibung)) {
?>
<div class="uk-overflow-auto">
<table class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr>
<td><?php echo str_contains($beschreibung, ">") ? $beschreibung : htmlentities_utf8($beschreibung); ?></td>
</tr>
</table>
</div>
<?php
}
if (count($rows) > 0) {
?>
<table style='border-collapse: collapse;'
class="uk-table-hover uk-table-divider uk-table-middle dtfl-table-medium contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr class="sectiontableheader<?php echo $params->get('pageclass_sfx'); ?>">
<th style='text-align: left; width: 400px;' nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_HALL_OF_FAME'); ?></strong></th>
<th style='text-align: center; width: 200px;' nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_YEARS'); ?></strong></th>
</tr>
<?php
$k = 0;
foreach ($rows as $row) {
?>
<tr class="sectiontableentry<?php echo $k + 1;
$k = ($k + 1) % 2; ?><?php echo $params->get('pageclass_sfx'); ?>">
<td nowrap>
<a href="<?php echo SportsManagerURL('&task=hall_of_fame_details&id=' . $row->halloffame_id); ?>">
<?php echo htmlentities_utf8(NichtLeererString($row->halloffame)); ?>
</a>
</td>
<td style='text-align: center;' nowrap>
<?php echo $row->zeitspanne; ?>
</td>
</tr>
<?php
}
?>
</table>
<?php
}
?>
<span class="article_seperator<?php echo $params->get('pageclass_sfx'); ?>">&nbsp;</span>
<?php
}
static function halloffameDetails($titel, $beschreibung, $rows, $halloffame): void
{
global $params;
if (!empty($titel)) { ?>
<style>td{padding: 3px;}</style>
<div
class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"><?php echo htmlentities_utf8($titel); ?></div><?php }
if (!empty($beschreibung)) {
?>
<div class="uk-overflow-auto">
<table class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr>
<td><?php echo str_contains($beschreibung, ">") ? $beschreibung : htmlentities_utf8($beschreibung); ?></td>
</tr>
</table>
</div>
<?php
}
echo "<H3>" . htmlentities_utf8($halloffame->halloffame) . "</H3>";
if ($rows != null) {
?>
<table style='border-collapse: collapse;'
class="uk-table-hover uk-table-divider uk-table-middle dtfl-table-medium contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr class="sectiontableheader<?php echo $params->get('pageclass_sfx'); ?>">
<th style="text-align:center; width:100px;" nowrap>
<strong><?php echo Text::_('COM_SPORTSMANAGER_YEAR'); ?></strong>
</th>
<?php
for ($i = 1; $i <= 3; $i++) {
if ($i == 2 && !$halloffame->platz2_zeigen) continue;
if ($i == 3 && !$halloffame->platz3_zeigen) continue;
?>
<th style="text-align:center;" colspan="2" nowrap>
<strong><?php echo Text::_('COM_SPORTSMANAGER_PLACE') . " " . $i; ?></strong>
</th>
<?php } ?>
</tr>
<?php
$k = 0;
foreach ($rows as $row) {
$rowclass = "sectiontableentry" . ($k + 1) . $params->get('pageclass_sfx');
$k = ($k + 1) % 2;
if ($halloffame->spielform == 2) {
?>
<!-- Erste Zeile -->
<tr class="<?php echo $rowclass; ?>">
<td rowspan="2" nowrap style="text-align:center;">
<?php echo $row->jahr; ?>
</td>
<?php for ($i = 1; $i <= 3; $i++) {
if ($i == 2 && !$halloffame->platz2_zeigen) continue;
if ($i == 3 && !$halloffame->platz3_zeigen) continue;
$spieler1_id = "spieler1_id_" . $i;
$spieler1 = "spieler1_" . $i;
?>
<td nowrap style="text-align:center; width:70px;">
<?php echo bildHTML("spieler", $row->$spieler1_id, 45, 60, 0, 0, 'border="0"'); ?>
</td>
<td nowrap style="text-align:left; width:300px;">
<?php echo htmlentities_utf8($row->$spieler1); ?>
</td>
<?php } ?>
</tr>
<!-- Zweite Zeile -->
<tr class="<?php echo $rowclass; ?>">
<?php for ($i = 1; $i <= 3; $i++) {
if ($i == 2 && !$halloffame->platz2_zeigen) continue;
if ($i == 3 && !$halloffame->platz3_zeigen) continue;
$spieler2_id = "spieler2_id_" . $i;
$spieler2 = "spieler2_" . $i;
?>
<td nowrap style="text-align:center; width:70px;">
<?php echo bildHTML("spieler", $row->$spieler2_id, 45, 60, 0, 0, 'border="0"'); ?>
</td>
<td nowrap style="text-align:left; width:300px;">
<?php echo htmlentities_utf8($row->$spieler2); ?>
</td>
<?php } ?>
</tr>
<?php
} else {
?>
<tr class="<?php echo $rowclass; ?>">
<td nowrap style="text-align:center;">
<?php echo $row->jahr; ?>
</td>
<?php for ($i = 1; $i <= 3; $i++) {
if ($i == 2 && !$halloffame->platz2_zeigen) continue;
if ($i == 3 && !$halloffame->platz3_zeigen) continue;
if ($halloffame->spielform == 1) {
$id = "verein_id_" . $i;
$txt = "teamname_" . $i;
$type = "vereine";
} else {
$id = "spieler1_id_" . $i;
$txt = "spieler1_" . $i;
$type = "spieler";
}
?>
<td nowrap style="text-align:center; width:70px;">
<?php echo bildHTML($type, $row->$id, 45, 60, 0, 0, 'border="0"'); ?>
</td>
<td nowrap style="text-align:left; width:300px;">
<?php echo htmlentities_utf8($row->$txt); ?>
</td>
<?php } ?>
</tr>
<?php
}
}
?>
</table>
<?php
}
?>
<span class="article_seperator<?php echo $params->get('pageclass_sfx'); ?>">&nbsp;</span>
<?php
}
static function spieler($beschreibung, $rows, $sortierung, $statistik, $beginn, $kategorie, $filter, $veranstaltungid, $einstufungid, $veranstaltungen, $veranstalterid, $veranstalter, $einstufungen, $details_anzeigen): void static function spieler($beschreibung, $rows, $sortierung, $statistik, $beginn, $kategorie, $filter, $veranstaltungid, $einstufungid, $veranstaltungen, $veranstalterid, $veranstalter, $einstufungen, $details_anzeigen): void
{ {
global $params; global $params;
File diff suppressed because it is too large Load Diff
@@ -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_MEMBER="Mitglied"
COM_SPORTSMANAGER_ACTIVE_MEMBERS="Aktive 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"
@@ -72,7 +73,6 @@ COM_SPORTSMANAGER_CONFIRM_REMOVE_RANKING="Willst du die Rangliste wirklich entfe
COM_SPORTSMANAGER_ADD_INDIVIDUAL_COMPETITION="Individualwettbewerb hinzuf&uuml;gen" COM_SPORTSMANAGER_ADD_INDIVIDUAL_COMPETITION="Individualwettbewerb hinzuf&uuml;gen"
COM_SPORTSMANAGER_INDIVIDUAL_COMPETITION="Individualwettbewerb" COM_SPORTSMANAGER_INDIVIDUAL_COMPETITION="Individualwettbewerb"
COM_SPORTSMANAGER_INDIVIDUAL_COMPETITIONS="Individualwettbewerbe" COM_SPORTSMANAGER_INDIVIDUAL_COMPETITIONS="Individualwettbewerbe"
COM_SPORTSMANAGER_ASSOCIATION_BODIES="Verbandsorgane"
COM_SPORTSMANAGER_GAME="Spiel" COM_SPORTSMANAGER_GAME="Spiel"
COM_SPORTSMANAGER_GAMES="Spiele" COM_SPORTSMANAGER_GAMES="Spiele"
COM_SPORTSMANAGER_GAMES_SHORTCUT="S" COM_SPORTSMANAGER_GAMES_SHORTCUT="S"
@@ -900,6 +900,9 @@ COM_SPORTSMANAGER_RESULT_ONLY="Nur Ergebnis"
COM_SPORTSMANAGER_GAME_NUMBER="Spiel %d" COM_SPORTSMANAGER_GAME_NUMBER="Spiel %d"
COM_SPORTSMANAGER_LABEL_GAME_NUMBER="Spiel Nr" COM_SPORTSMANAGER_LABEL_GAME_NUMBER="Spiel Nr"
COM_SPORTSMANAGER_LABEL_GAME_TITLE="Spieltag Titel" COM_SPORTSMANAGER_LABEL_GAME_TITLE="Spieltag Titel"
COM_SPORTSMANAGER_EXPLICIT_PENALTIES="Explizite Strafen"
COM_SPORTSMANAGER_EXPLICIT_PENALTIES_EMAIL_SUBJECT="%s: Strafpunkte erhalten"
COM_SPORTSMANAGER_EXPLICIT_PENALTIES_EMAIL_BODY="%s wurden %f Strafpunkte zugeteilt mit der Begründung: %s"
COM_SPORTSMANAGER_EMAIL_SHIFT_GAME_APPOINTMENT_SUBJECT="%s vs %s: Spieltermin verlegen" COM_SPORTSMANAGER_EMAIL_SHIFT_GAME_APPOINTMENT_SUBJECT="%s vs %s: Spieltermin verlegen"
COM_SPORTSMANAGER_EMAIL_SHIFT_GAME_APPOINTMENT_BODY="Zur Begegnung %s gegen %s am %s in %s wird von %s der Spieltermin verschoben.\n\nAlternative Termine:\n\n" COM_SPORTSMANAGER_EMAIL_SHIFT_GAME_APPOINTMENT_BODY="Zur Begegnung %s gegen %s am %s in %s wird von %s der Spieltermin verschoben.\n\nAlternative Termine:\n\n"
COM_SPORTSMANAGER_EMAIL_SHIFT_GAME_APPOINTMENT_REQUESTED_BODY="Zur Begegnung %s gegen %s am %s in %s wird von %s der Spieltermin verschoben.\n\nBitte alternative Termine vorschlagen unter %s" COM_SPORTSMANAGER_EMAIL_SHIFT_GAME_APPOINTMENT_REQUESTED_BODY="Zur Begegnung %s gegen %s am %s in %s wird von %s der Spieltermin verschoben.\n\nBitte alternative Termine vorschlagen unter %s"
@@ -1071,3 +1074,22 @@ COM_SPORTSMANAGER_REALLY_MATCH_RESCHEDULING="Willst Du diesen Spielverlegung wir
COM_SPORTSMANAGER_REST_DAYS="Ruhetage" COM_SPORTSMANAGER_REST_DAYS="Ruhetage"
COM_SPORTSMANAGER_TRAINING_DAYS="Trainingstage" COM_SPORTSMANAGER_TRAINING_DAYS="Trainingstage"
COM_SPORTSMANAGER_NOT_ACTUALIZED_DATA="Nicht aktualisierte Daten" COM_SPORTSMANAGER_NOT_ACTUALIZED_DATA="Nicht aktualisierte Daten"
COM_SPORTSMANAGER_ASSOCIATION_BODIES="Verbandsorgane"
COM_SPORTSMANAGER_ASSOCIATION_BODY="Verbandsorgan"
COM_SPORTSMANAGER_ADD_ASSOCIATION_BODY="Verbandsorgan hinzuf&uuml;gen"
COM_SPORTSMANAGER_REALLY_REMOVE_ASSOCIATION_BODY="Willst Du dieses Verbandsorgan wirklich entfernen?"
COM_SPORTSMANAGER_INVALID_ASSOCIATION_BODY_NAME="Ung&uuml;ltiger Name f&uuml;r Verbandsorgan!"
COM_SPORTSMANAGER_NAME_NOT_COMPLETE="Der Name ist nicht komplett ausgef&uuml;llt"
COM_SPORTSMANAGER_ADDITIONAL_INFO="Zusatzinfo"
COM_SPORTSMANAGER_USE_HTML="Hier sollte HTML-formatierter Text verwendet werden"
COM_SPORTSMANAGER_REALLY_REMOVE_ASSOCIATION_BODY_MEMBER="M&ouml;chtest du dieses Mitglied des Verbandsorgans wirklich entfernen?"
COM_SPORTSMANAGER_HELP_EDIT_ASSOCIATION_BODY_MEMBER="Wird ein Name aus der Spielerliste ausgew&auml;hlt, werden Nachname und Vorname &uuml;bernommen.<br>Telefon, Mobil, E-Mail werden aus der Spielerliste &uuml;bernommen, wenn sie hier nicht ausgef&uuml;llt sind."
COM_SPORTSMANAGER_HALL_OF_FAME="Hall of Fame"
COM_SPORTSMANAGER_ADD_HALL_OF_FAME="Hall of Fame hinzuf&uuml;gen"
COM_SPORTSMANAGER_INVALID_HALL_OF_FAME_NAME="Invalider Name f&uuml;r Hall of Fame"
COM_SPORTSMANAGER_REALLY_REMOVE_HALL_OF_FAME="Willst Du wirklich diese Hall of Fame mit allen Mitgliedern l&ouml;schen?"
COM_SPORTSMANAGER_MATCH_TYPE="Spielform"
COM_SPORTSMANAGER_REALLY_REMOVE_HALL_OF_FAME_YEAR="Willst Du wirklich dieses Hall of Fame Jahr l&ouml;schen?"
COM_SPORTSMANAGER_YEARS="Jahre"
COM_SPORTSMANAGER_ADD_HALL_OF_FAME_YEAR="Hall of Fame Jahr hinzuf&uuml;gen"
COM_SPORTSMANAGER_NO_ENTRY="kein Eintrag"
@@ -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_MEMBER="Member"
COM_SPORTSMANAGER_ACTIVE_MEMBERS="Active 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"
@@ -72,7 +73,6 @@ COM_SPORTSMANAGER_CONFIRM_REMOVE_RANKING="Do you really want to remove the ranki
COM_SPORTSMANAGER_ADD_INDIVIDUAL_COMPETITION="Add individual competition" COM_SPORTSMANAGER_ADD_INDIVIDUAL_COMPETITION="Add individual competition"
COM_SPORTSMANAGER_INDIVIDUAL_COMPETITION="Individual competition" COM_SPORTSMANAGER_INDIVIDUAL_COMPETITION="Individual competition"
COM_SPORTSMANAGER_INDIVIDUAL_COMPETITIONS="Individual competitions" COM_SPORTSMANAGER_INDIVIDUAL_COMPETITIONS="Individual competitions"
COM_SPORTSMANAGER_ASSOCIATION_BODIES="Association bodies"
COM_SPORTSMANAGER_GAME="Game" COM_SPORTSMANAGER_GAME="Game"
COM_SPORTSMANAGER_GAMES="Games" COM_SPORTSMANAGER_GAMES="Games"
COM_SPORTSMANAGER_GAMES_SHORTCUT="G" COM_SPORTSMANAGER_GAMES_SHORTCUT="G"
@@ -900,6 +900,9 @@ COM_SPORTSMANAGER_RESULT_ONLY="Result only"
COM_SPORTSMANAGER_GAME_NUMBER="Game %d" COM_SPORTSMANAGER_GAME_NUMBER="Game %d"
COM_SPORTSMANAGER_LABEL_GAME_NUMBER="Game nr" COM_SPORTSMANAGER_LABEL_GAME_NUMBER="Game nr"
COM_SPORTSMANAGER_LABEL_GAME_TITLE="Gameday title" COM_SPORTSMANAGER_LABEL_GAME_TITLE="Gameday title"
COM_SPORTSMANAGER_EXPLICIT_PENALTIES="Explicit Penalties"
COM_SPORTSMANAGER_EXPLICIT_PENALTIES_EMAIL_SUBJECT="%s: received penalty"
COM_SPORTSMANAGER_EXPLICIT_PENALTIES_EMAIL_BODY="%s received a penalty of %f points based on the following justification: %s"
COM_SPORTSMANAGER_EMAIL_SHIFT_GAME_APPOINTMENT_SUBJECT="%s vs %s: Shift game appointment" COM_SPORTSMANAGER_EMAIL_SHIFT_GAME_APPOINTMENT_SUBJECT="%s vs %s: Shift game appointment"
COM_SPORTSMANAGER_EMAIL_SHIFT_GAME_APPOINTMENT_BODY="For match %s versus %s on %s in %s the game appointment is shifted by %s.\n\nAlternative appointments:\n\n" COM_SPORTSMANAGER_EMAIL_SHIFT_GAME_APPOINTMENT_BODY="For match %s versus %s on %s in %s the game appointment is shifted by %s.\n\nAlternative appointments:\n\n"
COM_SPORTSMANAGER_EMAIL_SHIFT_GAME_APPOINTMENT_REQUESTED_BODY="For match %s on %s in %s the game appointment is shifted by %s.\n\nPlease propose alternative appointments under %s" COM_SPORTSMANAGER_EMAIL_SHIFT_GAME_APPOINTMENT_REQUESTED_BODY="For match %s on %s in %s the game appointment is shifted by %s.\n\nPlease propose alternative appointments under %s"
@@ -1071,3 +1074,22 @@ COM_SPORTSMANAGER_REALLY_MATCH_RESCHEDULING="Do you really want to remove this m
COM_SPORTSMANAGER_REST_DAYS="Rest days" COM_SPORTSMANAGER_REST_DAYS="Rest days"
COM_SPORTSMANAGER_TRAINING_DAYS="Training days" COM_SPORTSMANAGER_TRAINING_DAYS="Training days"
COM_SPORTSMANAGER_NOT_ACTUALIZED_DATA="Data not updated" COM_SPORTSMANAGER_NOT_ACTUALIZED_DATA="Data not updated"
COM_SPORTSMANAGER_ASSOCIATION_BODIES="Association bodies"
COM_SPORTSMANAGER_ASSOCIATION_BODY="Association body"
COM_SPORTSMANAGER_ADD_ASSOCIATION_BODY="Add association body"
COM_SPORTSMANAGER_REALLY_REMOVE_ASSOCIATION_BODY="Do you really want to remove this association body?"
COM_SPORTSMANAGER_INVALID_ASSOCIATION_BODY_NAME="Invalid association body name"
COM_SPORTSMANAGER_NAME_NOT_COMPLETE="The name is not completely filled in"
COM_SPORTSMANAGER_ADDITIONAL_INFO="Additional information"
COM_SPORTSMANAGER_USE_HTML="HTML-formatted text should be used here."
COM_SPORTSMANAGER_REALLY_REMOVE_ASSOCIATION_BODY_MEMBER="Do you really want to remove this association body member?"
COM_SPORTSMANAGER_HELP_EDIT_ASSOCIATION_BODY_MEMBER="Selecting a name from the player list will fill in the first and last name.<br>Phone, mobile, and email are filled from the player list if left blank here."
COM_SPORTSMANAGER_HALL_OF_FAME="Hall of Fame"
COM_SPORTSMANAGER_ADD_HALL_OF_FAME="Add Hall of Fame"
COM_SPORTSMANAGER_INVALID_HALL_OF_FAME_NAME="Invalid Hall of Fame name"
COM_SPORTSMANAGER_REALLY_REMOVE_HALL_OF_FAME="Are you sure you want to delete this Hall of Fame including all its members?"
COM_SPORTSMANAGER_MATCH_TYPE="Game Type"
COM_SPORTSMANAGER_REALLY_REMOVE_HALL_OF_FAME_YEAR="Are you sure you want to delete this Hall of Fame year?"
COM_SPORTSMANAGER_YEARS="Years"
COM_SPORTSMANAGER_ADD_HALL_OF_FAME_YEAR="Add Hall of Fame Year"
COM_SPORTSMANAGER_NO_ENTRY="no entry"
+105 -1
View File
@@ -722,6 +722,18 @@ 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_team_strafen` ("
. "\n `team_strafen_id` int(11) NOT NULL AUTO_INCREMENT,"
. "\n `zeitpunkt` datetime NOT NULL,"
. "\n `moderator_user_id` int(11) DEFAULT NULL,"
. "\n `team_id` int(11) NOT NULL DEFAULT '0',"
. "\n `strafe` float(6,2) NOT NULL DEFAULT '0',"
. "\n `beschreibung` text NOT NULL,"
. "\n PRIMARY KEY (`team_strafen_id`)"
. "\n) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_teamansprechpartner` (" $query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_teamansprechpartner` ("
. "\n `kontaktperson_id` int(11) NOT NULL AUTO_INCREMENT," . "\n `kontaktperson_id` int(11) NOT NULL AUTO_INCREMENT,"
. "\n `team_id` int(11) NOT NULL DEFAULT '0'," . "\n `team_id` int(11) NOT NULL DEFAULT '0',"
@@ -1049,6 +1061,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 `elo_wertung` tinyint(4) DEFAULT NULL," . "\n `elo_wertung` tinyint(4) DEFAULT NULL,"
. "\n `explizite_strafen` tinyint(4) DEFAULT '0',"
. "\n `logo_url` TINYTEXT NOT NULL," . "\n `logo_url` TINYTEXT NOT NULL,"
. "\n `ticker_logo_url` TINYTEXT NOT NULL," . "\n `ticker_logo_url` TINYTEXT NOT NULL,"
. "\n `status` tinyint(4) NOT NULL DEFAULT '0'," . "\n `status` tinyint(4) NOT NULL DEFAULT '0',"
@@ -1184,11 +1197,82 @@ 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_verbandsorgane` ("
. "\n `verbandsorgane_id` int(11) NOT NULL AUTO_INCREMENT,"
. "\n `veranstalter_id` int(11) DEFAULT NULL,"
. "\n `verbandsorgan` varchar(32) DEFAULT NULL,"
. "\n `kategorie` int(4) DEFAULT NULL,"
. "\n `reihenfolge` int(4) DEFAULT NULL,"
. "\n `email` varchar(64) DEFAULT NULL,"
. "\n `beschreibung` text NOT NULL,"
. "\n PRIMARY KEY (`verbandsorgane_id`),"
. "\n KEY (`veranstalter_id`)"
. "\n ) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_mitglied_von_verbandsorgan` ("
. "\n `mitglied_von_verbandsorgan_id` int(11) NOT NULL AUTO_INCREMENT,"
. "\n `verbandsorgane_id` int(11) DEFAULT NULL,"
. "\n `funktion` varchar(32) DEFAULT NULL,"
. "\n `zusatzinfo` varchar(64) DEFAULT NULL,"
. "\n `spieler_id` int(11) DEFAULT NULL,"
. "\n `nachname` varchar(32) DEFAULT NULL,"
. "\n `vorname` varchar(32) DEFAULT NULL,"
. "\n `email` varchar(64) DEFAULT NULL,"
. "\n `telefon` varchar(32) DEFAULT NULL,"
. "\n `mobil` varchar(32) DEFAULT NULL,"
. "\n `reihenfolge` int(11) DEFAULT NULL,"
. "\n PRIMARY KEY (`mitglied_von_verbandsorgan_id`),"
. "\n KEY (`verbandsorgane_id`),"
. "\n KEY (`spieler_id`)"
. "\n ) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_halloffame` ("
. "\n `halloffame_id` int(11) NOT NULL AUTO_INCREMENT,"
. "\n `veranstalter_id` int(11) DEFAULT NULL,"
. "\n `halloffame` varchar(64) DEFAULT NULL,"
. "\n `kategorie` int(4) DEFAULT NULL,"
. "\n `spielform` int(11) DEFAULT NULL,"
. "\n `reihenfolge` int(4) DEFAULT NULL,"
. "\n PRIMARY KEY (`halloffame_id`),"
. "\n KEY `veranstalter_id` (`veranstalter_id`)"
. "\n ) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_mitglied_von_halloffame` ("
. "\n `mitglied_halloffame_id` int(11) NOT NULL AUTO_INCREMENT,"
. "\n `halloffame_id` int(11) NOT NULL,"
. "\n `jahr` int(4) DEFAULT NULL,"
. "\n `platz` int(11) DEFAULT NULL,"
. "\n `verein_id` int(11) DEFAULT NULL,"
. "\n `teamname` varchar(64) DEFAULT NULL,"
. "\n `spieler1_id` int(11) DEFAULT NULL,"
. "\n `spieler1` varchar(64) DEFAULT NULL,"
. "\n `spieler2_id` int(11) DEFAULT NULL,"
. "\n `spieler2` varchar(64) DEFAULT NULL,"
. "\n PRIMARY KEY (`mitglied_halloffame_id`),"
. "\n UNIQUE KEY `halloffame_jahr_platz` (`halloffame_id`,`jahr`,`platz`),"
. "\n KEY `halloffame_id` (`halloffame_id`),"
. "\n KEY `verein_id` (`verein_id`),"
. "\n KEY `spieler1_id` (`spieler1_id`),"
. "\n KEY `spieler2_id` (`spieler2_id`)"
. "\n ) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
$db->setQuery($query);
if (!$db->execute()) {
die($db->stderr(true));
}
$query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'verbands_kuerzel', wert = 'tbe.';"; $query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'verbands_kuerzel', wert = 'tbe.';";
$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 = '116';"; $query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'datenbank_version', wert = '119';";
$db->setQuery( $query ); $db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); } if (!$db->execute()) { die($db->stderr(true)); }
@@ -1677,6 +1761,10 @@ return new class () implements InstallerScriptInterface
$db->setQuery( $query ); $db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); } if (!$db->execute()) { die($db->stderr(true)); }
$query = "DROP TABLE IF EXISTS `#__sportsmanager_team_strafen`;";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "DROP TABLE IF EXISTS `#__sportsmanager_turnier`;"; $query = "DROP TABLE IF EXISTS `#__sportsmanager_turnier`;";
$db->setQuery( $query ); $db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); } if (!$db->execute()) { die($db->stderr(true)); }
@@ -1748,5 +1836,21 @@ return new class () implements InstallerScriptInterface
$query = "DROP TABLE IF EXISTS `#__sportsmanager_email_vorlagen`;"; $query = "DROP TABLE IF EXISTS `#__sportsmanager_email_vorlagen`;";
$db->setQuery( $query ); $db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); } if (!$db->execute()) { die($db->stderr(true)); }
$query = "DROP TABLE IF EXISTS `#__sportsmanager_verbandsorgane`;";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "DROP TABLE IF EXISTS `#__sportsmanager_mitglied_von_verbandsorgan`;";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "DROP TABLE IF EXISTS `#__sportsmanager_halloffame`;";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "DROP TABLE IF EXISTS `#__sportsmanager_mitglied_von_halloffame`;";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
} }
}; };