Merge pull request #302 from Deutscher-Tischfussballbund/sportsmanager2-issue301

Export von kompletten Ligen im json-Format
This commit is contained in:
svennickel
2026-08-30 15:16:26 +02:00
committed by GitHub
2 changed files with 326 additions and 273 deletions
@@ -166,6 +166,34 @@ function exportCSV(array $rows, string $dateiname): void
exit; exit;
} }
function exportJSON(array $rows, string $dateiname): void
{
if (empty($rows)) {
// Keine Daten → Request hier beenden, damit der Aufrufer nicht in
// nachfolgenden Code (z. B. einen CSV-Export mit undefiniertem $rows) durchläuft
http_response_code(204);
exit;
}
// Dateiname absichern
$dateiname = bereinigterDateiname($dateiname);
// Output Buffer nur beenden, wenn aktiv
if (ob_get_level() > 0) {
ob_end_clean();
}
// JSON-Header für Browser
header('Content-Type: application/json; charset=UTF-8');
header('Content-Disposition: attachment; filename="' . $dateiname . '"; filename*=UTF-8\'\'' . rawurlencode($dateiname));
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Pragma: no-cache');
header('Expires: 0');
echo json_encode($rows, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
exit;
}
function adminUebersicht(): void function adminUebersicht(): void
{ {
$db = getDatabase(); $db = getDatabase();
@@ -12969,243 +12997,8 @@ function adminBegegnungenExportForm(): void
HTML_sportsmanager_admin::adminBegegnungenExport($veranstaltung,$saison); HTML_sportsmanager_admin::adminBegegnungenExport($veranstaltung,$saison);
} }
#[NoReturn] function adminBegegnungenExport(): void function sportsmanagerExportErmittleTeams($db, int $veranstaltungId): array
{ {
$db = getDatabase();
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
$veranstaltungId = $jInput->get('veranstaltungId', 0, 'INT');
$export = $jInput->get('export', '', 'RAW');
if ($veranstaltungId == 0) die("Missing id!");
if (!benutzerZugriff("mannschaftswettbewerb_aendern") && !benutzerVeranstaltungModerator($veranstaltungId))
keinZugriff();
// Veranstaltung ermitteln
$query = "SELECT * FROM #__sportsmanager_veranstaltung WHERE veranstaltung_id = $veranstaltungId";
$rows = loadObjectList($db, $query);
if (count($rows) < 1) die("Wrong id!");
$veranstaltung = $rows[0];
if ($jInput->get('cancel', false, 'BOOL')) {
redirectSportsManagerURL('&task=admin_begegnungen&veranstaltungid=' . $veranstaltungId);
}
unset($rows);
$dateiname = "";
if ($export == "spieler") {
$query = "
SELECT t5.bezeichnung AS Veranstaltung, t2.vereinsname AS Verein, t1.teamname AS Team, t4.spielernr AS Passnummer,
t4.nachname AS Nachname, t4.vorname AS Vorname, t4.geburtsjahr AS Geburtsjahr, LOWER(LEFT(geschlecht, 1)) AS Geschlecht,
t6.saisonbezeichnung AS Saison, t3.erster_spieltag AS Spielberechtigt_von, t3.letzter_spieltag AS Spielberechtigt_bis
FROM #__sportsmanager_team AS t1
LEFT JOIN #__sportsmanager_veranstaltung AS t5 ON t1.veranstaltung_id = t5.veranstaltung_id
LEFT JOIN #__sportsmanager_verein AS t2 ON t1.verein_id = t2.verein_id
LEFT JOIN #__sportsmanager_mitglied_von_team AS t3 ON t1.team_id = t3.team_id
LEFT JOIN #__sportsmanager_spieler AS t4 ON t3.spieler_id = t4.spieler_id
LEFT JOIN #__sportsmanager_saison AS t6 ON t5.saison_id = t6.saison_id
WHERE t1.veranstaltung_id = " . $veranstaltungId . ";
";
$rows = loadObjectList($db, $query);
if (!isset($rows) or count($rows) == 0) {
redirectSportsManagerURL('&task=admin_begegnungen&veranstaltungid=1', "Zu dieser Auswahl sind keine Daten vorhanden!");
}
$dateiname = "Spieler " . $veranstaltung->bezeichnung;
}
if ($export == "spielplan" or $export == "spielberichte") {
$query = "
SELECT t1.begegnung_id AS ID, ";
if (einstellungswert("verbands_kuerzel") == "STFV"){
$query .= "
CONCAT(t5.saisonbezeichnung,LPAD(t4.kategorie,2,'0'),LPAD(t1.spieltag,2,'0'),LPAD(IFNULL(t1.spiel_nr, '0'),2,'0')) AS stfv_id, ";
}
$query .= "
t5.saisonbezeichnung AS Saison,
t4.bezeichnung AS Liga, t1.spieltag AS Spieltag_Nr, t1.spiel_nr AS Spiel_Nr,
t1.zeitpunkt AS Spielstart, '' AS verlegt_auf, t2.teamname AS Heim, t3.teamname AS Gast,
t1.heim_punkte AS Heim_Tore, t1.gast_punkte AS Gast_Tore,
t1.heim_spielpunkte AS Heim_Satzpunkte, t1.gast_spielpunkte AS Gast_Satzpunkte
FROM #__sportsmanager_begegnung AS t1
LEFT JOIN #__sportsmanager_team AS t2 ON t1.heim_team_id = t2.team_id
LEFT JOIN #__sportsmanager_team AS t3 ON t1.gast_team_id = t3.team_id
LEFT JOIN #__sportsmanager_veranstaltung AS t4 ON t2.veranstaltung_id = t4.veranstaltung_id
LEFT JOIN #__sportsmanager_saison AS t5 ON t4.saison_id = t5.saison_id
WHERE t4.veranstaltung_id = " . $veranstaltungId . "
ORDER BY t4.veranstaltung_id, t1.spieltag, t1.spiel_nr, t1.zeitpunkt;
";
$rows = loadObjectList($db, $query);
// Spielverlegungen
foreach ($rows as $value) {
$beantragt = [];
$genehmigt = [];
// Spielverlegung vorgeschlagen
$query = "
SELECT t1.zeitpunkt AS Termin_alt
FROM #__sportsmanager_begegnung_historie AS t1
WHERE begegnung_id = " . $value->ID . "
AND aktion IN (2)
ORDER BY eingetragen ASC LIMIT 1;
";
$beantragt = loadObjectList($db, $query);
if (!empty($beantragt))
$value->Spielstart = $beantragt[0]->Termin_alt;
// Spielverlegung vorgeschlagen
$query = "
SELECT t1.zeitpunkt AS Termin_neu
FROM #__sportsmanager_begegnung_historie AS t1
WHERE begegnung_id = " . $value->ID . "
AND aktion IN (1)
ORDER BY eingetragen DESC LIMIT 1;
";
$genehmigt = loadObjectList($db, $query);
if (!empty($genehmigt))
$value->verlegt_auf = $genehmigt[0]->Termin_neu;
}
$dateiname = "Spielplan " . $veranstaltung->bezeichnung;
if (!isset($rows) or count($rows) == 0) {
redirectSportsManagerURL('&task=admin_begegnungen&veranstaltungid=1', "Zu dieser Auswahl sind keine Daten vorhanden!");
}
}
if ($export == "spielberichte") {
// Modus ermitteln
$query = "
SELECT t2.* FROM #__sportsmanager_veranstaltung AS t1
LEFT JOIN #__sportsmanager_teamspiel_modus AS t2 ON t1.modus_id = t2.teamspiel_modus_id
WHERE t1.veranstaltung_id = " . $veranstaltungId . "
";
$spielmodus = loadObjectList($db, $query);
$Anzahl_Saetze = count(explode(",", $spielmodus[0]->modus));
foreach ($rows as $value) {
$Bestaetigt = [];
$Bestaetigt = [];
$Moderator = [];
$value->vorgeschlagen_um = "";
$value->vorgeschlagen_von = "";
$value->bestaetigt_um = "";
$value->bestaetigt_von = "";
$value->moderator_um = "";
$value->moderator_von = "";
// Endergebnis vorgeschlagen
$query = "
SELECT t1.eingetragen AS gespeichert_um,
t2.name AS gespeichert_von_user,
t3.teamname AS gespeichert_von_team
FROM #__sportsmanager_begegnung_historie AS t1
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 . "
AND aktion IN (6)
ORDER BY eingetragen DESC LIMIT 1;
";
$Vorgeschlagen = loadObjectList($db, $query);
if (!empty($Vorgeschlagen)) {
$value->vorgeschlagen_um = $Vorgeschlagen[0]->gespeichert_um;
if (!empty($Vorgeschlagen[0]->gespeichert_von_user))
$value->vorgeschlagen_von = $Vorgeschlagen[0]->gespeichert_von_user;
if (!empty($Vorgeschlagen[0]->gespeichert_von_team))
$value->vorgeschlagen_von = $Vorgeschlagen[0]->gespeichert_von_team;
}
// Endergebnis bestätigen Gegner
$query = "
SELECT t1.eingetragen AS gespeichert_um,
t2.name AS gespeichert_von_user,
t3.teamname AS gespeichert_von_team
FROM #__sportsmanager_begegnung_historie AS t1
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 . "
AND aktion IN (7)
ORDER BY eingetragen DESC LIMIT 1;
";
$Bestaetigt = loadObjectList($db, $query);
if (!empty($Bestaetigt)) {
$value->bestaetigt_um = $Bestaetigt[0]->gespeichert_um;
if (!empty($Bestaetigt[0]->gespeichert_von_user))
$value->bestaetigt_von = $Bestaetigt[0]->gespeichert_von_user;
if (!empty($Bestaetigt[0]->gespeichert_von_team))
$value->bestaetigt_von = $Bestaetigt[0]->gespeichert_von_team;
}
// Endergebnis bestätigen Moderator
$query = "
SELECT t1.eingetragen AS gespeichert_um,
t2.name AS gespeichert_von_user,
t3.teamname AS gespeichert_von_team
FROM #__sportsmanager_begegnung_historie AS t1
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 . "
AND aktion IN (8)
ORDER BY eingetragen DESC LIMIT 1;
";
$Moderator = loadObjectList($db, $query);
if (!empty($Moderator)) {
$value->moderator_um = $Moderator[0]->gespeichert_um;
if (!empty($Moderator[0]->gespeichert_von_user))
$value->moderator_von = $Moderator[0]->gespeichert_von_user;
if (!empty($Moderator[0]->gespeichert_von_team))
$value->moderator_von = $Moderator[0]->gespeichert_von_team;
}
// Spielbericht
$query = "
SELECT
t1.teamspiel_nummer AS Satz_Nr,
t3.spielernr AS Pass_Heim1, t4.spielernr AS Pass_Heim2,
t5.spielernr AS Pass_Gast1, t6.spielernr AS Pass_Gast2,
t1.teamspiel_heim_punkte AS Heim_Tore, t1.teamspiel_gast_punkte AS Gast_Tore,
t1.teamspiel_heim_spielpunkte AS Heim_Punkte, t1.teamspiel_gast_spielpunkte AS Gast_Punkte
FROM #__sportsmanager_teamspiel AS t1
LEFT JOIN #__sportsmanager_begegnung AS t2 ON t1.begegnung_id = t2.begegnung_id
LEFT JOIN #__sportsmanager_spieler AS t3 ON t1.heim_spieler_1_id = t3.spieler_id
LEFT JOIN #__sportsmanager_spieler AS t4 ON t1.heim_spieler_2_id = t4.spieler_id
LEFT JOIN #__sportsmanager_spieler AS t5 ON t1.gast_spieler_1_id = t5.spieler_id
LEFT JOIN #__sportsmanager_spieler AS t6 ON t1.gast_spieler_2_id = t6.spieler_id
WHERE t1.begegnung_id = " . $value->ID . "
ORDER BY t1.teamspiel_nummer;
";
$spielbericht = loadObjectList($db, $query);
for ($i = 1; $i <= $Anzahl_Saetze; $i++) {
$variable = "S" . $i . "_Pass_Heim1";
$value->$variable = $spielbericht[$i - 1]->Pass_Heim1;
$variable = "S" . $i . "_Pass_Heim2";
$value->$variable = $spielbericht[$i - 1]->Pass_Heim2;
$variable = "S" . $i . "_Pass_Gast1";
$value->$variable = $spielbericht[$i - 1]->Pass_Gast1;
$variable = "S" . $i . "_Pass_Gast2";
$value->$variable = $spielbericht[$i - 1]->Pass_Gast2;
$variable = "S" . $i . "_Heim_Tore";
$value->$variable = $spielbericht[$i - 1]->Heim_Tore;
$variable = "S" . $i . "_Gast_Tore";
$value->$variable = $spielbericht[$i - 1]->Gast_Tore;
$variable = "S" . $i . "_Heim_Punkte";
$value->$variable = $spielbericht[$i - 1]->Heim_Punkte;
$variable = "S" . $i . "_Gast_Punkte";
$value->$variable = $spielbericht[$i - 1]->Gast_Punkte;
}
}
$dateiname = "Spielberichte " . $veranstaltung->bezeichnung;
}
if ($export == "teams") {
$query = "SELECT t2.verein_id, t2.vereinsname AS Verein, t2.vereinssitz AS Vereinssitz," $query = "SELECT t2.verein_id, t2.vereinsname AS Verein, t2.vereinssitz AS Vereinssitz,"
. "\n t2.vereinssitz_ortsteil AS Vereinssitz_Ortsteil, t2.url AS Vereinswebseite," . "\n t2.vereinssitz_ortsteil AS Vereinssitz_Ortsteil, t2.url AS Vereinswebseite,"
. "\n t1.team_id, t1.teamname AS Team, t3.bezeichnung AS Liga, t1.tischtyp AS Tisch," . "\n t1.team_id, t1.teamname AS Team, t3.bezeichnung AS Liga, t1.tischtyp AS Tisch,"
@@ -13219,9 +13012,6 @@ function adminBegegnungenExportForm(): void
. "\n WHERE t1.veranstaltung_id = " . $veranstaltungId . ";"; . "\n WHERE t1.veranstaltung_id = " . $veranstaltungId . ";";
$rows = loadObjectList($db, $query); $rows = loadObjectList($db, $query);
if (!isset($rows) or count($rows) == 0) {
redirectSportsManagerURL('&task=admin_begegnungen&veranstaltungid=1', "Zu dieser Auswahl sind keine Daten vorhanden!");
}
foreach ($rows AS $value) foreach ($rows AS $value)
{ {
@@ -13285,6 +13075,262 @@ function adminBegegnungenExportForm(): void
} }
} }
} }
return $rows;
}
function sportsmanagerExportErmittleSpieler($db, int $veranstaltungId): array
{
$query = "
SELECT t5.bezeichnung AS Veranstaltung, t2.vereinsname AS Verein, t1.teamname AS Team, t4.spielernr AS Passnummer,
t4.nachname AS Nachname, t4.vorname AS Vorname, t4.geburtsjahr AS Geburtsjahr, LOWER(LEFT(geschlecht, 1)) AS Geschlecht,
t6.saisonbezeichnung AS Saison, t3.erster_spieltag AS Spielberechtigt_von, t3.letzter_spieltag AS Spielberechtigt_bis
FROM #__sportsmanager_team AS t1
LEFT JOIN #__sportsmanager_veranstaltung AS t5 ON t1.veranstaltung_id = t5.veranstaltung_id
LEFT JOIN #__sportsmanager_verein AS t2 ON t1.verein_id = t2.verein_id
LEFT JOIN #__sportsmanager_mitglied_von_team AS t3 ON t1.team_id = t3.team_id
LEFT JOIN #__sportsmanager_spieler AS t4 ON t3.spieler_id = t4.spieler_id
LEFT JOIN #__sportsmanager_saison AS t6 ON t5.saison_id = t6.saison_id
WHERE t1.veranstaltung_id = " . $veranstaltungId . ";
";
return loadObjectList($db, $query);
}
function sportsmanagerExportErmittleSpielplan($db, int $veranstaltungId): array
{
$query = "
SELECT t1.begegnung_id AS ID, ";
if (einstellungswert("verbands_kuerzel") == "STFV"){
$query .= "
CONCAT(t5.saisonbezeichnung,LPAD(t4.kategorie,2,'0'),LPAD(t1.spieltag,2,'0'),LPAD(IFNULL(t1.spiel_nr, '0'),2,'0')) AS stfv_id, ";
}
$query .= "
t5.saisonbezeichnung AS Saison,
t4.bezeichnung AS Liga, t1.spieltag AS Spieltag_Nr, t1.spiel_nr AS Spiel_Nr,
t1.zeitpunkt AS Spielstart, '' AS verlegt_auf, t2.teamname AS Heim, t3.teamname AS Gast,
t1.heim_punkte AS Heim_Tore, t1.gast_punkte AS Gast_Tore,
t1.heim_spielpunkte AS Heim_Satzpunkte, t1.gast_spielpunkte AS Gast_Satzpunkte
FROM #__sportsmanager_begegnung AS t1
LEFT JOIN #__sportsmanager_team AS t2 ON t1.heim_team_id = t2.team_id
LEFT JOIN #__sportsmanager_team AS t3 ON t1.gast_team_id = t3.team_id
LEFT JOIN #__sportsmanager_veranstaltung AS t4 ON t2.veranstaltung_id = t4.veranstaltung_id
LEFT JOIN #__sportsmanager_saison AS t5 ON t4.saison_id = t5.saison_id
WHERE t4.veranstaltung_id = " . $veranstaltungId . "
ORDER BY t4.veranstaltung_id, t1.spieltag, t1.spiel_nr, t1.zeitpunkt;
";
$rows = loadObjectList($db, $query);
// Spielverlegungen
foreach ($rows as $value) {
$beantragt = [];
$genehmigt = [];
// Spielverlegung vorgeschlagen
$query = "
SELECT t1.zeitpunkt AS Termin_alt
FROM #__sportsmanager_begegnung_historie AS t1
WHERE begegnung_id = " . $value->ID . "
AND aktion IN (2)
ORDER BY eingetragen ASC LIMIT 1;
";
$beantragt = loadObjectList($db, $query);
if (!empty($beantragt))
$value->Spielstart = $beantragt[0]->Termin_alt;
// Spielverlegung vorgeschlagen
$query = "
SELECT t1.zeitpunkt AS Termin_neu
FROM #__sportsmanager_begegnung_historie AS t1
WHERE begegnung_id = " . $value->ID . "
AND aktion IN (1)
ORDER BY eingetragen DESC LIMIT 1;
";
$genehmigt = loadObjectList($db, $query);
if (!empty($genehmigt))
$value->verlegt_auf = $genehmigt[0]->Termin_neu;
}
return $rows;
}
function sportsmanagerExportErgaenzeSpielberichte($db, int $veranstaltungId, array $rows): array
{
// Modus ermitteln
$query = "
SELECT t2.* FROM #__sportsmanager_veranstaltung AS t1
LEFT JOIN #__sportsmanager_teamspiel_modus AS t2 ON t1.modus_id = t2.teamspiel_modus_id
WHERE t1.veranstaltung_id = " . $veranstaltungId . "
";
$spielmodus = loadObjectList($db, $query);
$Anzahl_Saetze = count(explode(",", $spielmodus[0]->modus));
foreach ($rows as $value) {
$value->vorgeschlagen_um = "";
$value->vorgeschlagen_von = "";
$value->bestaetigt_um = "";
$value->bestaetigt_von = "";
$value->moderator_um = "";
$value->moderator_von = "";
// Endergebnis vorgeschlagen / bestätigt (Gegner) / bestätigt (Moderator)
$query = "
SELECT t1.aktion,
t1.eingetragen AS gespeichert_um,
t2.name AS gespeichert_von_user,
t3.teamname AS gespeichert_von_team
FROM #__sportsmanager_begegnung_historie AS t1
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 . "
AND aktion IN (6,7,8)
ORDER BY eingetragen DESC;
";
$Historie = loadObjectList($db, $query);
foreach ($Historie as $eintrag) {
if ($eintrag->aktion == 6 && empty($value->vorgeschlagen_um)) {
$value->vorgeschlagen_um = $eintrag->gespeichert_um;
if (!empty($eintrag->gespeichert_von_user))
$value->vorgeschlagen_von = $eintrag->gespeichert_von_user;
if (!empty($eintrag->gespeichert_von_team))
$value->vorgeschlagen_von = $eintrag->gespeichert_von_team;
}
if ($eintrag->aktion == 7 && empty($value->bestaetigt_um)) {
$value->bestaetigt_um = $eintrag->gespeichert_um;
if (!empty($eintrag->gespeichert_von_user))
$value->bestaetigt_von = $eintrag->gespeichert_von_user;
if (!empty($eintrag->gespeichert_von_team))
$value->bestaetigt_von = $eintrag->gespeichert_von_team;
}
if ($eintrag->aktion == 8 && empty($value->moderator_um)) {
$value->moderator_um = $eintrag->gespeichert_um;
if (!empty($eintrag->gespeichert_von_user))
$value->moderator_von = $eintrag->gespeichert_von_user;
if (!empty($eintrag->gespeichert_von_team))
$value->moderator_von = $eintrag->gespeichert_von_team;
}
}
// Spielbericht
$query = "
SELECT
t1.teamspiel_nummer AS Satz_Nr,
t3.spielernr AS Pass_Heim1, t4.spielernr AS Pass_Heim2,
t5.spielernr AS Pass_Gast1, t6.spielernr AS Pass_Gast2,
t1.teamspiel_heim_punkte AS Heim_Tore, t1.teamspiel_gast_punkte AS Gast_Tore,
t1.teamspiel_heim_spielpunkte AS Heim_Punkte, t1.teamspiel_gast_spielpunkte AS Gast_Punkte
FROM #__sportsmanager_teamspiel AS t1
LEFT JOIN #__sportsmanager_begegnung AS t2 ON t1.begegnung_id = t2.begegnung_id
LEFT JOIN #__sportsmanager_spieler AS t3 ON t1.heim_spieler_1_id = t3.spieler_id
LEFT JOIN #__sportsmanager_spieler AS t4 ON t1.heim_spieler_2_id = t4.spieler_id
LEFT JOIN #__sportsmanager_spieler AS t5 ON t1.gast_spieler_1_id = t5.spieler_id
LEFT JOIN #__sportsmanager_spieler AS t6 ON t1.gast_spieler_2_id = t6.spieler_id
WHERE t1.begegnung_id = " . $value->ID . "
ORDER BY t1.teamspiel_nummer;
";
$spielbericht = loadObjectList($db, $query);
for ($i = 1; $i <= $Anzahl_Saetze; $i++) {
$variable = "S" . $i . "_Pass_Heim1";
$value->$variable = $spielbericht[$i - 1]->Pass_Heim1;
$variable = "S" . $i . "_Pass_Heim2";
$value->$variable = $spielbericht[$i - 1]->Pass_Heim2;
$variable = "S" . $i . "_Pass_Gast1";
$value->$variable = $spielbericht[$i - 1]->Pass_Gast1;
$variable = "S" . $i . "_Pass_Gast2";
$value->$variable = $spielbericht[$i - 1]->Pass_Gast2;
$variable = "S" . $i . "_Heim_Tore";
$value->$variable = $spielbericht[$i - 1]->Heim_Tore;
$variable = "S" . $i . "_Gast_Tore";
$value->$variable = $spielbericht[$i - 1]->Gast_Tore;
$variable = "S" . $i . "_Heim_Punkte";
$value->$variable = $spielbericht[$i - 1]->Heim_Punkte;
$variable = "S" . $i . "_Gast_Punkte";
$value->$variable = $spielbericht[$i - 1]->Gast_Punkte;
}
}
return $rows;
}
#[NoReturn] function adminBegegnungenExport(): void
{
$db = getDatabase();
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
$veranstaltungId = $jInput->get('veranstaltungId', 0, 'INT');
$export = $jInput->get('export', '', 'CMD');
$exportformat = $jInput->get('exportformat', 'csvdatei', 'CMD');
if ($veranstaltungId == 0) die("Missing id!");
if (!benutzerZugriff("mannschaftswettbewerb_aendern") && !benutzerVeranstaltungModerator($veranstaltungId))
keinZugriff();
// Veranstaltung ermitteln
$query = "SELECT * FROM #__sportsmanager_veranstaltung WHERE veranstaltung_id = $veranstaltungId";
$rows = loadObjectList($db, $query);
if (count($rows) < 1) die("Wrong id!");
$veranstaltung = $rows[0];
if ($jInput->get('cancel', false, 'BOOL')) {
redirectSportsManagerURL('&task=admin_begegnungen&veranstaltungid=' . $veranstaltungId);
}
unset($rows);
// JSON-Export: Teams, Spieler und Spielberichte gemeinsam in dieser Reihenfolge exportieren
if ($exportformat == "jsondatei") {
$teams = sportsmanagerExportErmittleTeams($db, $veranstaltungId);
$spieler = sportsmanagerExportErmittleSpieler($db, $veranstaltungId);
$spielberichte = sportsmanagerExportErgaenzeSpielberichte($db, $veranstaltungId, sportsmanagerExportErmittleSpielplan($db, $veranstaltungId));
if (empty($teams) && empty($spieler) && empty($spielberichte)) {
redirectSportsManagerURL('&task=admin_begegnungen&veranstaltungid=$veranstaltungId', "Zu dieser Auswahl sind keine Daten vorhanden!");
}
$daten = [
'teams' => $teams,
'spieler' => $spieler,
'spielberichte' => $spielberichte,
];
exportJSON($daten, "Export " . $veranstaltung->bezeichnung . ".json");
}
$dateiname = "";
if ($export == "spieler") {
$rows = sportsmanagerExportErmittleSpieler($db, $veranstaltungId);
if (!isset($rows) or count($rows) == 0) {
redirectSportsManagerURL('&task=admin_begegnungen&veranstaltungid=$veranstaltungId', "Zu dieser Auswahl sind keine Daten vorhanden!");
}
$dateiname = "Spieler " . $veranstaltung->bezeichnung;
}
if ($export == "spielplan" or $export == "spielberichte") {
$rows = sportsmanagerExportErmittleSpielplan($db, $veranstaltungId);
$dateiname = "Spielplan " . $veranstaltung->bezeichnung;
if (!isset($rows) or count($rows) == 0) {
redirectSportsManagerURL('&task=admin_begegnungen&veranstaltungid=$veranstaltungId', "Zu dieser Auswahl sind keine Daten vorhanden!");
}
}
if ($export == "spielberichte") {
$rows = sportsmanagerExportErgaenzeSpielberichte($db, $veranstaltungId, $rows);
$dateiname = "Spielberichte " . $veranstaltung->bezeichnung;
}
if ($export == "teams") {
$rows = sportsmanagerExportErmittleTeams($db, $veranstaltungId);
if (!isset($rows) or count($rows) == 0) {
redirectSportsManagerURL('&task=admin_begegnungen&veranstaltungid=$veranstaltungId', "Zu dieser Auswahl sind keine Daten vorhanden!");
}
$dateiname = "Teams " . $veranstaltung->bezeichnung; $dateiname = "Teams " . $veranstaltung->bezeichnung;
} }
@@ -12843,6 +12843,12 @@ static function adminVerbandsorganMitglieder($rows,$verbandsorgan): void
{ {
global $params; global $params;
?> ?>
<script type="text/javascript">
function anzeige_aktualisieren() {
document.getElementById("export_row").style.display = document.adminForm.exportformat.value !== "jsondatei" ? '' : 'none';
}
window.addEventListener("pageshow", anzeige_aktualisieren);
</script>
<form action="<?php echo SportsManagerURL(); ?>" method="post" name="adminForm" id="adminForm"> <form action="<?php echo SportsManagerURL(); ?>" method="post" name="adminForm" id="adminForm">
<div class="uk-overflow-auto"> <div class="uk-overflow-auto">
<table style="width: 500px"> <table style="width: 500px">
@@ -12862,7 +12868,7 @@ static function adminVerbandsorganMitglieder($rows,$verbandsorgan): void
</select> </select>
</td> </td>
</tr> </tr>
<tr> <tr id="export_row">
<td nowrap style="text-align: right"> <td nowrap style="text-align: right">
<label for="export">Exportieren</label> <label for="export">Exportieren</label>
</td> </td>
@@ -12880,8 +12886,9 @@ static function adminVerbandsorganMitglieder($rows,$verbandsorgan): void
<label for="exportformat">Exportformat</label> <label for="exportformat">Exportformat</label>
</td> </td>
<td nowrap> <td nowrap>
<select class="uk-select uk-form-width-large" style='width: 320px;' name="exportformat" id="exportformat" size="1"> <select class="uk-select uk-form-width-large" style='width: 320px;' name="exportformat" id="exportformat" size="1" onchange="anzeige_aktualisieren();">
<option value='csvdatei'>CSV-Datei</option> <option value='csvdatei'>CSV-Datei</option>
<option value='jsondatei'>JSON-Datei</option>
</select> </select>
</td> </td>
</tr> </tr>