Merge pull request #258 from Deutscher-Tischfussballbund/sportsmanager2-issue070

Sportsmanager2 issue070
This commit is contained in:
jmeyer26
2026-02-25 09:42:22 +01:00
committed by GitHub
11 changed files with 1190 additions and 74 deletions
@@ -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_APPOINTMENTS="Termine"
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_DESC="Titel, der im Fenster oben angezeigt wird"
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_APPOINTMENTS="Appointments"
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_DESC="Title which will be shows on top"
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"
. "\n FROM #__sportsmanager_veranstaltung AS t1"
. "\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
@@ -7295,45 +7316,304 @@ function adminEditOrdnungsstrafe(): void
$query .= "\n AND t8.id = '" . $filter['aussteller'] . "'";
$query .= "\n ORDER BY ordnungsstrafen_id";
$rows = loadObjectList($db, $query);
$dateiname = "Ordnungsstrafen.csv";
$dateiname = bereinigterDateiname($dateiname);
ob_end_clean(); // Wegen UTF-8-Zeichen, die in der ausgabe vorhanden sind
Header("Content-Type: text/x-csv");
Header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
Header('Content-Disposition: attachment; filename="' . $dateiname . '"');
Header("Pragma: no-cache");
$data = "";
$trennzeichen = ";";
$spalte = 0;
$header = "";
foreach ($rows[0] as $field => $value) {
if ($spalte != 0) {
$header .= $trennzeichen;
}
$header .= $field;
$spalte++;
}
foreach ($rows as $row) {
$line = '';
$spalte = 0;
foreach ($row as $value) {
if ($spalte != 0) {
$line .= $trennzeichen;
}
$line .= $value;
$spalte++;
}
$data .= trim($line) . "\n";
}
echo $header . "\n" . utf8_decode($data);
exportCSV($rows, "Ordnungsstrafen.csv");
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 adminRegelwerke(): void
{
$db = getDatabase();
@@ -12169,30 +12449,42 @@ function adminBegegnungenExportForm(): void
$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
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;
";
$Bestaetigt = loadObjectList($db, $query);
if (!empty($Bestaetigt)) {
$value->vorgeschlagen_um = $Bestaetigt[0]->gespeichert_um;
$value->vorgeschlagen_von = $Bestaetigt[0]->gespeichert_von;
} else {
$value->vorgeschlagen_um = $Bestaetigt[0]->gespeichert_um;
$value->vorgeschlagen_von = $Bestaetigt[0]->gespeichert_von;
$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
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;
@@ -12200,17 +12492,20 @@ function adminBegegnungenExportForm(): void
$Bestaetigt = loadObjectList($db, $query);
if (!empty($Bestaetigt)) {
$value->bestaetigt_um = $Bestaetigt[0]->gespeichert_um;
$value->bestaetigt_von = $Bestaetigt[0]->gespeichert_von;
} else {
$value->bestaetigt_um = $Bestaetigt[0]->gespeichert_um;
$value->bestaetigt_von = $Bestaetigt[0]->gespeichert_von;
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
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;
@@ -12218,10 +12513,10 @@ function adminBegegnungenExportForm(): void
$Moderator = loadObjectList($db, $query);
if (!empty($Moderator)) {
$value->moderator_um = $Moderator[0]->gespeichert_um;
$value->moderator_von = $Moderator[0]->gespeichert_von;
} else {
$value->moderator_um = $Moderator[0]->gespeichert_um;
$value->moderator_von = $Moderator[0]->gespeichert_von;
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
@@ -5567,7 +5567,7 @@ function updateDatabase(): void
die($db->stderr(true));
}
}
if ($datenbank_version < 117) {
$query = "CREATE TABLE IF NOT EXISTS `#__sportsmanager_team_strafen` ("
. "\n `team_strafen_id` int(11) NOT NULL AUTO_INCREMENT,"
@@ -5591,6 +5591,53 @@ function updateDatabase(): void
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 ($termin_aktionen_email_setzen) {
$query = "SELECT aktion_user_id, termin_aktion_id"
. "\n FROM #__sportsmanager_termin_aktion";
@@ -371,6 +371,33 @@ if ($task == "spielerbild") {
case 'admin_joomla_mail_senden':
sendJoomlaMail();
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_regelwerke':
adminRegelwerke();
break;
@@ -1067,6 +1094,15 @@ if ($task == "spielerbild") {
}
} else if ($content == 'spielverlegungen') {
spielverlegungen();
} else if ($content == 'verbandsorgane') {
switch ($task) {
case 'verbandsorgane_details':
verbandsorganeDetails();
break;
default:
verbandsorgane();
break;
}
} else if ($content == 'login') {
userAuth();
} else if ($content == 'login_refresh') {
@@ -4224,6 +4260,91 @@ 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 begegnungSpielplan($teamansicht = false): void
{
$db = getDatabase();
@@ -25,6 +25,8 @@
<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="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 name="titel"
type="text"
@@ -3951,13 +3951,14 @@ static function spielverlegungen($titel, $beschreibung, $rows): void
}
?>
<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'); ?>">
<th nowrap style='text-align: center; width: 180px;'><STRONG><?php echo Text::_('COM_SPORTSMANAGER_COMPETITION'); ?></STRONG></th>
<th nowrap style='text-align: center; width: 200px;'><STRONG><?php echo Text::_('COM_SPORTSMANAGER_MATCH'); ?></STRONG></th>
<th nowrap style='text-align: center; width: 150px;'><STRONG><?php echo Text::_('COM_SPORTSMANAGER_OLD_DATE'); ?></STRONG></th>
<th nowrap style='text-align: center; width: 150px;'><STRONG><?php echo Text::_('COM_SPORTSMANAGER_NEW_DATE'); ?></STRONG></th>
<th nowrap style='text-align: left; width: 280px;'><STRONG><?php echo Text::_('COM_SPORTSMANAGER_COMMENT'); ?></STRONG></th>
<th nowrap style='text-align: center; width: 200px;'><STRONG><?php echo Text::_('COM_SPORTSMANAGER_COMPETITION'); ?></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: 160px;'><STRONG><?php echo Text::_('COM_SPORTSMANAGER_OLD_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: 300px;'><STRONG><?php echo Text::_('COM_SPORTSMANAGER_COMMENT'); ?></STRONG></th>
</tr>
<?php
if (count($rows) > 0) {
@@ -3983,10 +3984,10 @@ static function spielverlegungen($titel, $beschreibung, $rows): void
?>
</td>
<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 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 nowrap style='text-align: left;'>
<?php echo htmlentities_utf8($row->Begruendung_beantragt); ?>
@@ -4001,6 +4002,139 @@ static function spielverlegungen($titel, $beschreibung, $rows): void
<?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>
<?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 spieler($beschreibung, $rows, $sortierung, $statistik, $beginn, $kategorie, $filter, $veranstaltungid, $einstufungid, $veranstaltungen, $veranstalterid, $veranstalter, $einstufungen, $details_anzeigen): void
{
global $params;
@@ -101,6 +101,12 @@ class HTML_sportsmanager_admin
</td>
<?php
$Spalte_Nr = self::checkZeilenumbruch($Spalte_Nr, $max_Spalten);
?>
<td style="padding-right: 15px" nowrap>
<a href="<?php echo SportsManagerURL('&task=admin_verbandsorgane'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_ASSOCIATION_BODIES'); ?></a>
</td>
<?php
$Spalte_Nr = self::checkZeilenumbruch($Spalte_Nr, $max_Spalten);
}
if (benutzerZugriff("kategorien_aendern")) {
?>
@@ -2905,7 +2911,7 @@ class HTML_sportsmanager_admin
}
}
static function adminVerteiler($verteiler, $organisationen, $organisationen_mailverteiler, $veranstaltungen, $veranstaltungen_mailverteiler, $saisons, $filter_saison_id, $moderator_zugriff): void
static function adminVerteiler($verteiler, $organisationen, $organisationen_mailverteiler, $verbandsorgane, $verbandsorgane_mailverteiler, $veranstaltungen, $veranstaltungen_mailverteiler, $saisons, $filter_saison_id, $moderator_zugriff): void
{
global $params;
@@ -3039,6 +3045,55 @@ class HTML_sportsmanager_admin
<?php
}
$k = 0;
if (count($verbandsorgane) > 0) {
?>
<table class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr>
<td nowrap class="contentheading<?php echo $params->get('pageclass_sfx'); ?>" style="width: 100%; text-align: left;">
<?php echo Text::_('COM_SPORTSMANAGER_ASSOCIATION_BODIES'); ?>
</td>
</tr>
</table>
<table class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr class="sectiontableheader<?php echo $params->get('pageclass_sfx'); ?>">
<th style="text-align: left;" nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_ASSOCIATION_BODY'); ?></strong></th>
<th nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_EMAIL'); ?></strong></th>
<th nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_EMAIL_ADDRESS'); ?></strong></th>
</tr>
<?php
foreach ($verbandsorgane as $verbandsorgan) {
?>
<tr class="sectiontableentry<?php echo $k + 1;
$k = ($k + 1) % 2; ?><?php echo $params->get('pageclass_sfx'); ?>">
<td style="vertical-align: top" nowrap>
<?php echo htmlentities_utf8($verbandsorgan->verbandsorgan); ?>
</td>
<td style="vertical-align: top" nowrap>
<?php
if (isset($verbandsorgane_mailverteiler[$verbandsorgan->verbandsorgane_id]) && !empty($verbandsorgane_mailverteiler[$verbandsorgan->verbandsorgane_id])) {
?>
<a href="mailto:?bcc=<?php echo htmlentities_utf8($verbandsorgane_mailverteiler[$verbandsorgan->verbandsorgane_id]); ?>"><?php echo Text::_('COM_SPORTSMANAGER_LETTER'); ?></a>
<?php
}
?>
</td>
<td>
<?php
if (isset($verbandsorgane_mailverteiler[$verbandsorgan->verbandsorgane_id . "p"]) && !empty($verbandsorgane_mailverteiler[$verbandsorgan->verbandsorgane_id . "p"]))
echo htmlentities_utf8($verbandsorgane_mailverteiler[$verbandsorgan->verbandsorgane_id . "p"]);
?>
</td>
</tr>
<?php
}
?>
</table>
<span class="article_seperator<?php echo $params->get('pageclass_sfx'); ?>">&nbsp;</span>
<?php
}
$k = 0;
if (count($veranstaltungen) > 0) {
?>
@@ -3058,7 +3113,7 @@ class HTML_sportsmanager_admin
<table class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr class="sectiontableheader<?php echo $params->get('pageclass_sfx'); ?>">
<th nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_EVENT'); ?></strong></th>
<th style="text-align: left;" nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_EVENT'); ?></strong></th>
<th nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_EMAIL'); ?></strong></th>
<th nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_EMAIL_ADDRESS'); ?></strong></th>
</tr>
@@ -7029,9 +7084,7 @@ class HTML_sportsmanager_admin
<input type="hidden" name="task" value="admin_ordnungsstrafen"/>
</form>
<?php
} ?>
<?php
}
if (count($rows) > 0) {
?>
@@ -7477,6 +7530,405 @@ class HTML_sportsmanager_admin
<?php
}
static function adminVerbandsorgane($rows): void
{
global $params;
?>
<div
class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_ASSOCIATION_BODIES'); ?>
: <?php echo Text::_('COM_SPORTSMANAGER_JOOMLA_MANAGEMENT'); ?></div>
<table style="border-spacing: 10px">
<tr>
<td nowrap><a
href="<?php echo SportsManagerURL('&task=admin_uebersicht'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_BACK'); ?></a>
</td>
</tr>
<tr>
<td nowrap><a
href="<?php echo SportsManagerURL('&task=admin_verbandsorgan_edit'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_ADD_ASSOCIATION_BODY'); ?></a>
</td>
</tr>
</table>
<?php
if (count($rows) > 0) {
?>
<table style='width: 400px;' class="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>
</tr>
<?php
$k = 0;
foreach ($rows as $row) {
?>
<tr class="sectiontableentry<?php echo $k + 1;
$k = ($k + 1) % 2; ?><?php echo $params->get('pageclass_sfx'); ?>">
<td nowrap>
<a href="<?php echo SportsManagerURL('&task=admin_verbandsorgan_edit&id=' . $row->verbandsorgane_id); ?>">
<?php echo htmlentities_utf8(NichtLeererString($row->verbandsorgan)); ?>
</a>
</td>
<td nowrap>
<a href="<?php echo SportsManagerURL('&task=admin_verbandsorgan_mitglieder&id=' . $row->verbandsorgane_id); ?>">
<?php echo $row->anzahl; ?>
</a>
</td>
<td nowrap><small><a
href="<?php echo SportsManagerURL('&task=admin_verbandsorgan_remove&id=' . $row->verbandsorgane_id); ?>"
onclick="return confirm('<?php echo Text::_('COM_SPORTSMANAGER_REALLY_REMOVE_ASSOCIATION_BODY'); ?>');"
title="<?php echo Text::_('COM_SPORTSMANAGER_REMOVE'); ?>">X</a></small>
</td>
</tr>
<?php
}
?>
</table>
<form action="<?php echo SportsManagerURL(); ?>" method="post" name="adminForm" id="adminForm">
<input type="submit" value="<?php echo Text::_('COM_SPORTSMANAGER_EXPORT'); ?>" class="button"
onclick="const t = this.form.task;
t.value = 'admin_verbandsorgane_export';
setTimeout(() => { t.value = 'admin_verbandsorgane'; }, 100);"/>
<input type="hidden" name="task" value="admin_verbandsorgane"/>
</form>
<?php
}
}
static function adminEditVerbandsorgan($row,$veranstalter,$kategorien): void
{
global $params;
?>
<div
class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_ASSOCIATION_BODIES'); ?>
: <?php echo($row != null ? Text::_('COM_SPORTSMANAGER_CHANGING') : Text::_('COM_SPORTSMANAGER_ADD')); ?></div>
<form action="<?php echo SportsManagerURL(); ?>" method="post" name="adminForm" id="adminForm"
enctype="multipart/form-data">
<div class="uk-overflow-auto">
<table style="width: 100%">
<tr>
<td nowrap style="width: 20%; text-align: right">
<label
for="association_body"><?php echo Text::_('COM_SPORTSMANAGER_ASSOCIATION_BODIES'); ?>
:</label>
</td>
<td nowrap>
<input class="inputbox" type="text" name="verbandsorgan"
id="association_body" size="50" maxlength="32"
value="<?php echo $row != null ? htmlentities_utf8($row->verbandsorgan) : ''; ?>"/>
</td>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label
for="organizer"><?php echo Text::_('COM_SPORTSMANAGER_ORGANISATION'); ?>
:</label>
</td>
<td nowrap>
<select class="uk-select uk-form-width-medium" name="veranstalter_id"
id="organizer" size="1">
<option
value="0"><?php echo Text::_('COM_SPORTSMANAGER_NONE2'); ?></option>
<?php
foreach ($veranstalter as $v)
echo "<option value=\"" . $v->veranstalter_id . "\"" . (($row != null && $v->veranstalter_id == $row->veranstalter_id) ? "selected" : "") . ">" . htmlentities_utf8($v->veranstalterbezeichnung) . "</option>\r\n";
?>
</select>
</td>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label for="category"><?php echo Text::_('COM_SPORTSMANAGER_CATEGORY'); ?>
:</label>
</td>
<td nowrap>
<select class="uk-select uk-form-width-medium" style='width: 350px;' name="kategorie"
id="category" size="1">
<?php
for ($i = 1; $i <= 50; $i++) {
echo "<option value=\"" . $i . "\"" . ($row != null ? ($row->kategorie == $i ? " selected" : "") : "") . ">" . $i . (isset($kategorien[$i]) ? htmlentities_utf8(" " . $kategorien[$i]) : "") . "</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label for="order"><?php echo Text::_('COM_SPORTSMANAGER_ORDER'); ?>
:</label>
</td>
<td nowrap>
<select class="uk-select uk-form-width-medium" name="reihenfolge" id="order"
size="1">
<?php
for ($i = 1; $i <= 100; $i++) {
echo "<option value=\"" . $i . "\"" . ($row != null ? ($row->reihenfolge == $i ? " selected" : "") : "") . ">" . $i . "</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label for="email"><?php echo Text::_('COM_SPORTSMANAGER_EMAIL'); ?>
:</label>
</td>
<td nowrap>
<input class="inputbox" type="text" name="email"
id="email" size="50" maxlength="64"
value="<?php echo $row != null ? htmlentities_utf8($row->email) : ''; ?>"/>
</td>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right; vertical-align: top">
<label
for="description"><?php echo Text::_('COM_SPORTSMANAGER_DESCRIPTION'); ?>
:</label>
</td>
<td nowrap>
<textarea name="beschreibung" id="description" cols="80" rows="12"
title="<?php echo Text::_('COM_SPORTSMANAGER_USE_HTML'); ?>"><?php echo $row != null ? htmlentities_utf8($row->beschreibung) : ''; ?></textarea>
</td>
</tr>
<tr>
<td nowrap colspan="2">&nbsp;
</td>
</tr>
</table>
</div>
<input type="submit" name="save" value="<?php echo Text::_('COM_SPORTSMANAGER_SAVE'); ?>" class="button"/>
<input type="submit" name="cancel" value="<?php echo Text::_('COM_SPORTSMANAGER_CANCEL'); ?>" class="button"/>
<input type="hidden" name="task" value="admin_verbandsorgan_save"/>
<input type="hidden" name="id" value="<?php echo($row != null ? $row->verbandsorgane_id : "0"); ?>"/>
</form>
<?php
}
static function adminVerbandsorganMitglieder($rows,$verbandsorgan): void
{
global $params;
?>
<div
class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"><?php echo htmlentities_utf8($verbandsorgan->verbandsorgan); ?>
: <?php echo Text::_('COM_SPORTSMANAGER_JOOMLA_MANAGEMENT'); ?></div>
<table style="border-spacing: 10px">
<tr>
<td nowrap><a
href="<?php echo SportsManagerURL('&task=admin_verbandsorgane'); ?>"><?php echo Text::_('COM_SPORTSMANAGER_BACK'); ?></a>
</td>
</tr>
<tr>
<td nowrap><a
href="<?php echo SportsManagerURL('&task=admin_verbandsorgan_mitglied_edit&verbandsorgane_id=' . $verbandsorgan->verbandsorgane_id); ?>"><?php echo Text::_('COM_SPORTSMANAGER_ADD_MEMBER'); ?></a>
</td>
</tr>
</table>
<?php
if (count($rows) > 0) {
?>
<table style='width: 800px;' class="contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
<tr class="sectiontableheader<?php echo $params->get('pageclass_sfx'); ?>">
<th style='text-align: left; width: 240px;' nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_MEMBER'); ?></strong></th>
<th style='text-align: left; width: 60px;' nowrap><strong></strong></th>
<th style='text-align: left; width: 240px;' nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_FUNCTION'); ?></strong></th>
<th style='text-align: left; width: 240px;' nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_ADDITIONAL_INFO'); ?></strong></th>
</tr>
<?php
$k = 0;
foreach ($rows as $row) {
?>
<tr class="sectiontableentry<?php echo $k + 1;
$k = ($k + 1) % 2; ?><?php echo $params->get('pageclass_sfx'); ?>">
<td nowrap>
<a href="<?php echo SportsManagerURL('&task=admin_verbandsorgan_mitglied_edit&id=' . $row->mitglied_von_verbandsorgan_id . '&verbandsorgane_id=' . $verbandsorgan->verbandsorgane_id); ?>">
<?php echo htmlentities_utf8($row->nachname . ", " . $row->vorname); ?>
</a>
</td>
<td nowrap>
<?PHP echo bildHTML("spieler", $row->spieler_id, 45, 60, 0, 0, 'border="1"'); ?>
</td>
<td nowrap>
<?php echo htmlentities_utf8($row->funktion); ?>
</td>
<td nowrap>
<?php echo htmlentities_utf8($row->zusatzinfo); ?>
</td>
<td nowrap><small><a
href="<?php echo SportsManagerURL('&task=admin_verbandsorgan_mitglied_remove&id=' . $row->mitglied_von_verbandsorgan_id . '&verbandsorgane_id=' . $row->verbandsorgane_id); ?>"
onclick="return confirm('<?php echo Text::_('COM_SPORTSMANAGER_REALLY_REMOVE_ASSOCIATION_BODY_MEMBER'); ?>');"
title="<?php echo Text::_('COM_SPORTSMANAGER_REMOVE'); ?>">X</a></small>
</td>
</tr>
<?php
}
?>
</table>
<?php
}
}
static function adminEditVerbandsorganMitglied($row,$verbandsorgan,$spieler): void
{
global $params;
?>
<div
class="componentheading<?php echo $params->get('pageclass_sfx'); ?>"><?php echo htmlentities_utf8($verbandsorgan->verbandsorgan); ?>
: <?php echo($row != null ? Text::_('COM_SPORTSMANAGER_CHANGING') : Text::_('COM_SPORTSMANAGER_ADD')); ?></div>
<form action="<?php echo SportsManagerURL(); ?>" method="post" name="adminForm" id="adminForm"
enctype="multipart/form-data">
<div class="uk-overflow-auto">
<table style="width: 100%">
<tr>
<td nowrap style="width: 20%; text-align: right">
<label for="player"><?php echo Text::_('COM_SPORTSMANAGER_NAME'); ?>
:</label>
</td>
<td nowrap>
<select class="uk-select uk-form-width-large" name="spieler_id"
id="player" size="1" style="width: 370px;">
<?php
echo "<option value=\"0\"></option>";
foreach ($spieler as $s)
echo "<option value=\"" . $s->spieler_id . "\"" . ($row != null ? ($row->spieler_id == $s->spieler_id ? "selected" : "") : "") . ">" . htmlentities_utf8($s->spieler) . "</option>";
?>
</select>
</td>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label
for="lastname"><?php echo Text::_('COM_SPORTSMANAGER_LAST_NAME'); ?>
:</label>
</td>
<td nowrap>
<input class="inputbox" type="text"
name="nachname"
id="lastname" size="50"
maxlength="30"
value="<?php echo $row != null ? $row->nachname : ''; ?>"/>
</td>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label
for="firstname"><?php echo Text::_('COM_SPORTSMANAGER_FIRST_NAME'); ?>
:</label>
</td>
<td nowrap>
<input class="inputbox" type="text"
name="vorname"
id="firstname" size="50"
maxlength="30"
value="<?php echo $row != null ? $row->vorname : ''; ?>"/>
</td>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label for="telephone"><?php echo Text::_('COM_SPORTSMANAGER_PHONE'); ?>
:</label>
</td>
<td nowrap>
<input class="inputbox" type="text"
name="telefon"
id="telephone" size="50"
maxlength="25"
value="<?php echo $row != null ? $row->telefon : ''; ?>"/>
</td>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label for="mobile"><?php echo Text::_('COM_SPORTSMANAGER_MOBILE'); ?>
:</label>
</td>
<td nowrap>
<input class="inputbox" type="text"
name="mobil"
id="mobile" size="50"
maxlength="25"
value="<?php echo $row != null ? $row->mobil : ''; ?>"/>
</td>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label for="email"><?php echo Text::_('COM_SPORTSMANAGER_EMAIL'); ?>
:</label>
</td>
<td nowrap>
<input class="inputbox" type="text"
name="email"
id="email" size="50"
maxlength="64"
value="<?php echo $row != null ? $row->email : ''; ?>"/>
</td>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label for="function"><?php echo Text::_('COM_SPORTSMANAGER_FUNCTION'); ?>
:</label>
</td>
<td nowrap>
<input class="inputbox" type="text"
name="funktion"
id="function" size="50"
maxlength="64"
value="<?php echo $row != null ? $row->funktion : ''; ?>"/>
</td>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label for="add_info"><?php echo Text::_('COM_SPORTSMANAGER_ADDITIONAL_INFO'); ?>
:</label>
</td>
<td nowrap>
<input class="inputbox" type="text"
name="zusatzinfo"
id="add_info" size="50"
maxlength="64"
value="<?php echo $row != null ? $row->zusatzinfo : ''; ?>"/>
</td>
</tr>
<tr>
<td nowrap style="width: 20%; text-align: right">
<label for="order"><?php echo Text::_('COM_SPORTSMANAGER_ORDER'); ?>
:</label>
</td>
<td nowrap>
<select class="uk-select uk-form-width-medium" name="reihenfolge" id="order"
size="1">
<?php
for ($i = 1; $i <= 100; $i++) {
echo "<option value=\"" . $i . "\"" . ($row != null ? ($row->reihenfolge == $i ? " selected" : "") : "") . ">" . $i . "</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td nowrap colspan="2">&nbsp;
<?php echo Text::_('COM_SPORTSMANAGER_HELP_EDIT_ASSOCIATION_BODY_MEMBER'); ?>
</td>
</tr>
</table>
</div>
<input type="submit" name="save" value="<?php echo Text::_('COM_SPORTSMANAGER_SAVE'); ?>" class="button"/>
<input type="submit" name="cancel" value="<?php echo Text::_('COM_SPORTSMANAGER_CANCEL'); ?>" class="button"/>
<input type="hidden" name="task" value="admin_verbandsorgan_mitglied_save"/>
<input type="hidden" name="verbandsorgane_id" value="<?php echo $verbandsorgan->verbandsorgane_id; ?>"/>
<input type="hidden" name="id" value="<?php echo($row != null ? $row->mitglied_von_verbandsorgan_id : "0"); ?>"/>
</form>
<?php
}
static function adminRegelwerke($rows): void
{
global $params;
@@ -39,6 +39,7 @@ COM_SPORTSMANAGER_ORGANISATION="Organisation"
COM_SPORTSMANAGER_TEAM_MEMBERS="Mannschaftsmitglieder"
COM_SPORTSMANAGER_TEAM_MEMBERS2=Vereinsmitglieder
COM_SPORTSMANAGER_MEMBERS="Mitglieder"
COM_SPORTSMANAGER_MEMBER="Mitglied"
COM_SPORTSMANAGER_ACTIVE_MEMBERS="Aktive Mitglieder"
COM_SPORTSMANAGER_TEAMS="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_INDIVIDUAL_COMPETITION="Individualwettbewerb"
COM_SPORTSMANAGER_INDIVIDUAL_COMPETITIONS="Individualwettbewerbe"
COM_SPORTSMANAGER_ASSOCIATION_BODIES="Verbandsorgane"
COM_SPORTSMANAGER_GAME="Spiel"
COM_SPORTSMANAGER_GAMES="Spiele"
COM_SPORTSMANAGER_GAMES_SHORTCUT="S"
@@ -1073,4 +1073,14 @@ COM_SPORTSMANAGER_NOT_VALID_TIME="Ung&uuml;ltige Uhrzeit"
COM_SPORTSMANAGER_REALLY_MATCH_RESCHEDULING="Willst Du diesen Spielverlegung wirklich entfernen?"
COM_SPORTSMANAGER_REST_DAYS="Ruhetage"
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."
@@ -39,6 +39,7 @@ COM_SPORTSMANAGER_ORGANISATION="Organisation"
COM_SPORTSMANAGER_TEAM_MEMBERS="Team members"
COM_SPORTSMANAGER_TEAM_MEMBERS2="Club members"
COM_SPORTSMANAGER_MEMBERS="Members"
COM_SPORTSMANAGER_MEMBER="Member"
COM_SPORTSMANAGER_ACTIVE_MEMBERS="Active members"
COM_SPORTSMANAGER_TEAMS="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_INDIVIDUAL_COMPETITION="Individual competition"
COM_SPORTSMANAGER_INDIVIDUAL_COMPETITIONS="Individual competitions"
COM_SPORTSMANAGER_ASSOCIATION_BODIES="Association bodies"
COM_SPORTSMANAGER_GAME="Game"
COM_SPORTSMANAGER_GAMES="Games"
COM_SPORTSMANAGER_GAMES_SHORTCUT="G"
@@ -1073,4 +1073,14 @@ COM_SPORTSMANAGER_NOT_VALID_TIME="Not valid time"
COM_SPORTSMANAGER_REALLY_MATCH_RESCHEDULING="Do you really want to remove this match rescheduling?"
COM_SPORTSMANAGER_REST_DAYS="Rest 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."
+42 -1
View File
@@ -1195,13 +1195,46 @@ return new class () implements InstallerScriptInterface
. "\n UNIQUE KEY `vorlage` (`vorlage`)"
. "\n ) ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "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 = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'verbands_kuerzel', wert = 'tbe.';";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
$query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'datenbank_version', wert = '117';";
$query = "INSERT IGNORE #__sportsmanager_einstellungen SET name = 'datenbank_version', wert = '118';";
$db->setQuery( $query );
if (!$db->execute()) { die($db->stderr(true)); }
@@ -1765,5 +1798,13 @@ return new class () implements InstallerScriptInterface
$query = "DROP TABLE IF EXISTS `#__sportsmanager_email_vorlagen`;";
$db->setQuery( $query );
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)); }
}
};