From d46213742417afbd96e19dcfa80c3043ce48fbcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Meyer?= Date: Wed, 11 Feb 2026 13:58:12 +0100 Subject: [PATCH] =?UTF-8?q?Frontend=20f=C3=BCr=20Verbandsorgane=20erstellt?= =?UTF-8?q?.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../de-DE/de-DE.com_sportsmanager.sys.ini | 2 + .../en-GB/en-GB.com_sportsmanager.sys.ini | 2 + .../com_sportsmanager/sportsmanager.php | 59 +++++++++ .../views/sportsmanager/tmpl/default.xml | 2 + .../views/sportsmanager/view.html.php | 121 +++++++++++++++++- .../en-GB/en-GB.com_sportsmanager.ini | 2 +- 6 files changed, 184 insertions(+), 4 deletions(-) diff --git a/src/structure/administrator/language/de-DE/de-DE.com_sportsmanager.sys.ini b/src/structure/administrator/language/de-DE/de-DE.com_sportsmanager.sys.ini index f83385e..d1a32f5 100644 --- a/src/structure/administrator/language/de-DE/de-DE.com_sportsmanager.sys.ini +++ b/src/structure/administrator/language/de-DE/de-DE.com_sportsmanager.sys.ini @@ -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" diff --git a/src/structure/administrator/language/en-GB/en-GB.com_sportsmanager.sys.ini b/src/structure/administrator/language/en-GB/en-GB.com_sportsmanager.sys.ini index 7d4373d..959ced9 100644 --- a/src/structure/administrator/language/en-GB/en-GB.com_sportsmanager.sys.ini +++ b/src/structure/administrator/language/en-GB/en-GB.com_sportsmanager.sys.ini @@ -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" diff --git a/src/structure/components/com_sportsmanager/sportsmanager.php b/src/structure/components/com_sportsmanager/sportsmanager.php index da305ee..8574f14 100644 --- a/src/structure/components/com_sportsmanager/sportsmanager.php +++ b/src/structure/components/com_sportsmanager/sportsmanager.php @@ -1085,6 +1085,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') { @@ -4242,6 +4251,56 @@ 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" + . "\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" + . kategorieFilter("HAVING t1.kategorie IN") + . "\n ORDER BY t1.reihenfolge;"; + $verbandsorgane = loadObjectList($db, $query); + + 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); + } + } +} + +function verbandsorganeDetails($uebergabe_id = 0): void +{ + $db = getDatabase(); + global $params; + $jInput = Factory::getContainer()->get(SiteApplication::class)->input; + + if ($uebergabe_id == 0) + $id = $jInput->get('id', 0, 'INT'); + else + $id = $uebergabe_id; + + + $query = "SELECT * FROM #__sportsmanager_verbandsorgane WHERE verbandsorgane_id = $id"; + $verbandsorgane = loadObjectList($db, $query); + + $query = "SELECT * FROM #__sportsmanager_mitglied_von_verbandsorgan WHERE verbandsorgane_id = $id"; + $mitglieder = loadObjectList($db, $query); + + if (isJson()) { + echo json_encode($verbandsorgane); + } else { + HTML_sportsmanager::verbandsorganeDetails($params->get('titel'), $params->get('beschreibung'), $verbandsorgane[0], $mitglieder); + } +} + function begegnungSpielplan($teamansicht = false): void { $db = getDatabase(); diff --git a/src/structure/components/com_sportsmanager/views/sportsmanager/tmpl/default.xml b/src/structure/components/com_sportsmanager/views/sportsmanager/tmpl/default.xml index abbb926..e199df8 100644 --- a/src/structure/components/com_sportsmanager/views/sportsmanager/tmpl/default.xml +++ b/src/structure/components/com_sportsmanager/views/sportsmanager/tmpl/default.xml @@ -25,6 +25,8 @@ + +
- +
@@ -3983,10 +3984,10 @@ static function spielverlegungen($titel, $beschreibung, $rows): void ?>
- ", date('d.m.Y h:i', strtotime($row->Termin_alt))); ?> + ", date('d.m.Y H:i', strtotime($row->Termin_alt))); ?> - Termin_neu == "" ? "" : str_replace(" ", "
", date('d.m.Y h:i', strtotime($row->Termin_neu))); ?> + Termin_neu == "" ? "" : str_replace(" ", "
", date('d.m.Y H:i', strtotime($row->Termin_neu))); ?>
Begruendung_beantragt); ?> @@ -4001,6 +4002,120 @@ static function spielverlegungen($titel, $beschreibung, $rows): void + +
+
+ + + + +
") ? $beschreibung : htmlentities_utf8($beschreibung); ?>
+
+ 0) { + ?> + + + + + + + + + + + + + +
+ + verbandsorgan)); ?> + + + anzahl; ?> + + email; ?> +
+ +   + + +
+
+ + + + +
") ? $beschreibung : htmlentities_utf8($beschreibung); ?>
+
+ " . $verbandsorgan->verbandsorgan . ""; + + echo $verbandsorgan->beschreibung; + + if (count($rows) > 0) { + ?> + + + + + + + + + +
+ nachname . ", " . $row->vorname); ?> + + funktion; ?> + + zusatzinfo; ?> +
+ +   +