diff --git a/src/structure/components/com_sportsmanager/admin.php b/src/structure/components/com_sportsmanager/admin.php
index 9c46a5e..7c07d21 100644
--- a/src/structure/components/com_sportsmanager/admin.php
+++ b/src/structure/components/com_sportsmanager/admin.php
@@ -7334,6 +7334,119 @@ function adminEditOrdnungsstrafe(): void
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 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,$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')));
+ $kategorie = $db->escape(trim($jInput->get('kategorie', 0, 'INT')));
+ $reihenfolge = $db->escape(trim($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','Ungültiger Name für Verbandsorgan!');
+ }
+
+ if ($id == 0)
+ $query = "INSERT INTO #__sportsmanager_verbandsorgane"
+ . "\n (verbandsorgan,kategorie,reihenfolge,email,beschreibung) VALUES"
+ . "\n ('$verbandsorgan',$kategorie,$reihenfolge,'$email','$beschreibung');";
+ else {
+ $query = "UPDATE #__sportsmanager_verbandsorgane"
+ . "\n SET verbandsorgan = '$verbandsorgan'"
+ . "\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');
+}
+
function adminRegelwerke(): void
{
$db = getDatabase();
diff --git a/src/structure/components/com_sportsmanager/sportsmanager.php b/src/structure/components/com_sportsmanager/sportsmanager.php
index 367e16a..aaffe28 100644
--- a/src/structure/components/com_sportsmanager/sportsmanager.php
+++ b/src/structure/components/com_sportsmanager/sportsmanager.php
@@ -371,6 +371,18 @@ 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_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 07ddea5..b50eaf7 100644
--- a/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php
+++ b/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php
@@ -101,6 +101,12 @@ class HTML_sportsmanager_admin
+
+
+ |
+
@@ -7477,6 +7483,156 @@ class HTML_sportsmanager_admin
+
+ :
+
+ 0) {
+ ?>
+
+
+
+
+ |
+
+ verbandsorgan)); ?>
+
+ |
+
+ anzahl; ?>
+ |
+ X
+ |
+
+
+
+
+
+ :
+
+
+