From e469e70b97405077b50c31f8583966ba617708d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Meyer?= Date: Mon, 9 Feb 2026 17:20:45 +0100 Subject: [PATCH 01/18] =?UTF-8?q?Formulare=20f=C3=BCr=20Tabelle=20Verbands?= =?UTF-8?q?organe=20erstellt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/com_sportsmanager/admin.php | 113 +++++++++++++ .../com_sportsmanager/sportsmanager.php | 12 ++ .../views/sportsmanager/view_admin.php | 156 ++++++++++++++++++ .../de-DE/de-DE.com_sportsmanager.ini | 8 +- .../en-GB/en-GB.com_sportsmanager.ini | 8 +- 5 files changed, 293 insertions(+), 4 deletions(-) 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 +
+ +
+ :
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
  + +
+
+ + + + "/> +
+ Date: Tue, 10 Feb 2026 10:00:46 +0100 Subject: [PATCH 02/18] =?UTF-8?q?Organisation=20hinzugef=C3=BCgt=20und=20k?= =?UTF-8?q?leine=20Korrekturen.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/com_sportsmanager/admin.php | 29 ++++++++++++------- .../views/sportsmanager/view_admin.php | 20 ++++++++++++- 2 files changed, 37 insertions(+), 12 deletions(-) diff --git a/src/structure/components/com_sportsmanager/admin.php b/src/structure/components/com_sportsmanager/admin.php index 7c07d21..c350ac9 100644 --- a/src/structure/components/com_sportsmanager/admin.php +++ b/src/structure/components/com_sportsmanager/admin.php @@ -7368,13 +7368,18 @@ function adminEditVerbandsorgan(): void $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,$kategorien); + HTML_sportsmanager_admin::adminEditVerbandsorgan($row,$veranstalter,$kategorien); } #[NoReturn] function adminSaveVerbandsorgan(): void @@ -7391,26 +7396,28 @@ function adminEditVerbandsorgan(): void $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'))); + $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','Ungültiger Name für Verbandsorgan!'); + redirectSportsManagerURL('&task=admin_verbandsorgane',Text::_('COM_SPORTSMANAGER_INVALID_ASSOCIATION_BODY_NAME')); } if ($id == 0) $query = "INSERT INTO #__sportsmanager_verbandsorgane" - . "\n (verbandsorgan,kategorie,reihenfolge,email,beschreibung) VALUES" - . "\n ('$verbandsorgan',$kategorie,$reihenfolge,'$email','$beschreibung');"; + . "\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 , kategorie = $kategorie" - . "\n , reihenfolge = $reihenfolge" - . "\n , email = '$email'" - . "\n , beschreibung = '$beschreibung'" + . "\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); 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 b50eaf7..b1906b2 100644 --- a/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php +++ b/src/structure/components/com_sportsmanager/views/sportsmanager/view_admin.php @@ -7540,7 +7540,7 @@ class HTML_sportsmanager_admin } } - static function adminEditVerbandsorgan($row,$kategorien): void + static function adminEditVerbandsorgan($row,$veranstalter,$kategorien): void { global $params; ?> @@ -7564,6 +7564,24 @@ class HTML_sportsmanager_admin value="verbandsorgan); ?>"/> + + + + + + + +