diff --git a/src/structure/components/com_sportsmanager/admin.php b/src/structure/components/com_sportsmanager/admin.php index c350ac9..58050b5 100644 --- a/src/structure/components/com_sportsmanager/admin.php +++ b/src/structure/components/com_sportsmanager/admin.php @@ -7454,6 +7454,144 @@ function adminEditVerbandsorgan(): void redirectSportsManagerURL('&task=admin_verbandsorgane'); } +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 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); + + $query = "SELECT * FROM #__sportsmanager_verbandsorgane WHERE verbandsorgane_id = $id"; + $verbandsorgane = loadObjectList($db, $query); + + HTML_sportsmanager_admin::adminVerbandsorganMitglieder($rows,$verbandsorgane[0]); +} + +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); + $row = $rows[0]; + } + + $query = "SELECT * FROM #__sportsmanager_verbandsorgane WHERE verbandsorgane_id = $verbandsorgane_id"; + $verbandsorgane = 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); + + HTML_sportsmanager_admin::adminEditVerbandsorganMitglied($row,$verbandsorgane[0],$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($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(); diff --git a/src/structure/components/com_sportsmanager/sportsmanager.php b/src/structure/components/com_sportsmanager/sportsmanager.php index aaffe28..da305ee 100644 --- a/src/structure/components/com_sportsmanager/sportsmanager.php +++ b/src/structure/components/com_sportsmanager/sportsmanager.php @@ -383,6 +383,18 @@ if ($task == "spielerbild") { case 'admin_verbandsorgan_remove': adminRemoveVerbandsorgan(); 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; diff --git a/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php b/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php index b1906b2..2924845 100644 --- a/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php +++ b/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php @@ -7506,10 +7506,10 @@ class HTML_sportsmanager_admin if (count($rows) > 0) { ?> - +
- - + +
+ anzahl; ?> + - + "/> +
verbandsorgan; ?> + :
+ + + + + + + +
+
+
+ 0) { + ?> + + + + + + + + + + + + + + +
+ + nachname . ", " . $row->vorname); ?> + + + funktion; ?> + + zusatzinfo; ?> + X +
+ +
verbandsorgan; ?> + :
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
  + +
+
+ + + + + "/> +
+