diff --git a/src/structure/components/com_sportsmanager/admin.php b/src/structure/components/com_sportsmanager/admin.php index a23d69e..c5ff367 100644 --- a/src/structure/components/com_sportsmanager/admin.php +++ b/src/structure/components/com_sportsmanager/admin.php @@ -656,6 +656,8 @@ function adminEinstellungen(): void $ansprechpartner_exportieren = $jInput->get('ansprechpartner_exportieren', 0, 'INT'); $spielerliste_elo = $jInput->get('spielerliste_elo', 0, 'INT'); $lizenz_anzeigen = $jInput->get('lizenz_anzeigen', 0, 'INT'); + $anzahl_mitglieder_zeigen = $jInput->get('anzahl_mitglieder_zeigen', 0, 'INT'); + $verband_anzeigen = $jInput->get('verband_anzeigen', 0, 'INT'); $termine_beantragen = $jInput->get('termine_beantragen', 0, 'INT'); $spielerimport_persoenliche_daten_vorauswahl = $jInput->get('spielerimport_persoenliche_daten_vorauswahl', 0, 'INT'); @@ -698,6 +700,22 @@ function adminEinstellungen(): void die($db->stderr(true)); } + $query = "REPLACE #__sportsmanager_einstellungen" + . "\n SET name = 'anzahl_mitglieder_zeigen'" + . ", wert = '$anzahl_mitglieder_zeigen'"; + $db->setQuery($query); + if (!$db->execute()) { + die($db->stderr(true)); + } + + $query = "REPLACE #__sportsmanager_einstellungen" + . "\n SET name = 'verband_anzeigen'" + . ", wert = '$verband_anzeigen'"; + $db->setQuery($query); + if (!$db->execute()) { + die($db->stderr(true)); + } + $query = "REPLACE #__sportsmanager_einstellungen" . "\n SET name = 'ansprechpartner_ausblenden'" . ", wert = '$ansprechpartner_ausblenden'"; @@ -3305,6 +3323,7 @@ function adminEditVerein(): void $url = $db->escape(trim($jInput->get('url', '', 'RAW'))); $beschreibung = $db->escape(trim($jInput->get('beschreibung', '', 'RAW'))); $ausgetreten = $jInput->get('ausgetreten', 0, 'INT'); + $verstecken = $jInput->get('verstecken', 0, 'INT'); $bildbeibehalten = $jInput->get('bildbeibehalten', 0, 'INT'); $berechtigt_fuer_verein_user_ids = array($jInput->get('berechtigt_fuer_verein_user_1_id', 0, 'INT'), @@ -3319,8 +3338,8 @@ function adminEditVerein(): void } if ($id == 0) { - $query = "INSERT INTO #__sportsmanager_verein (vereinsname, vereinssitz, vereinssitz_ortsteil, veranstalter_id, url, beschreibung, ausgetreten)" - . "\n VALUES ('$vereinsname', '$vereinssitz', '$vereinssitz_ortsteil', " . ($veranstalter_id != 0 ? "'$veranstalter_id'" : "NULL") . ", '$url', '$beschreibung', " . ($ausgetreten ? "TRUE" : "FALSE") . ");"; + $query = "INSERT INTO #__sportsmanager_verein (vereinsname, vereinssitz, vereinssitz_ortsteil, veranstalter_id, url, beschreibung, ausgetreten, verstecken)" + . "\n VALUES ('$vereinsname', '$vereinssitz', '$vereinssitz_ortsteil', " . ($veranstalter_id != 0 ? "'$veranstalter_id'" : "NULL") . ", '$url', '$beschreibung', " . ($ausgetreten ? "TRUE" : "FALSE") . ", $verstecken);"; $db->setQuery($query); if (!$db->execute()) { die($db->stderr(true)); @@ -3334,7 +3353,8 @@ function adminEditVerein(): void . "\n veranstalter_id = " . ($veranstalter_id != 0 ? "'$veranstalter_id'" : "NULL") . "," . "\n url = '$url'," . "\n beschreibung = '$beschreibung'," - . "\n ausgetreten = " . ($ausgetreten ? "TRUE" : "FALSE") + . "\n ausgetreten = " . ($ausgetreten ? "TRUE" : "FALSE") . "," + . "\n verstecken = '$verstecken'" . "\n WHERE verein_id = $id"; $db->setQuery($query); if (!$db->execute()) { @@ -9347,7 +9367,7 @@ function adminBegegnungenGenerierenForm(): void $Zeile++; } $query .= ";"; - echo $query; + $db->setQuery($query); if (!$db->execute()) { @@ -13541,6 +13561,7 @@ function adminTermine($admin_uebersicht): void $filter_veranstaltung = $jInput->get('filter_veranstaltung', '', 'RAW'); $filter_zusatz = $jInput->get('filter_zusatz', '', 'RAW'); $filter_land = $jInput->get('filter_land', '', 'RAW'); + $filter_ort = $jInput->get('filter_ort', '', 'RAW'); $query = "SELECT DISTINCT YEAR(erster_tag) AS jahr" . "\n FROM #__sportsmanager_termin" @@ -13567,6 +13588,8 @@ function adminTermine($admin_uebersicht): void $query .= " AND EXISTS(SELECT * FROM #__sportsmanager_termin_zusatz WHERE termin_id = #__sportsmanager_termin.termin_id AND zusatz = '" . $db->escape($filter_zusatz) . "')"; if (!empty($filter_land)) $query .= " AND land = '" . $db->escape($filter_land) . "'"; + if (!empty($filter_ort)) + $query .= " AND ort = '" . $db->escape($filter_ort) . "'"; $query .= "\n GROUP BY termin_id" . "\n ORDER BY erster_tag, bezeichnung"; $termine = loadObjectList($db, $query); @@ -13616,6 +13639,13 @@ function adminTermine($admin_uebersicht): void . "\n GROUP BY land" . "\n ORDER BY land"; $laender = loadObjectList($db, $query); + $query = "SELECT ort" + . "\n FROM #__sportsmanager_termin" + . "\n INNER JOIN #__sportsmanager_termin_aktion USING (termin_id)" + . "\n WHERE YEAR(erster_tag) = '$filter_jahr' AND status = 0 AND (typ = 0 OR typ = 1) AND ort <> ''" + . "\n GROUP BY ort" + . "\n ORDER BY ort"; + $orte = loadObjectList($db, $query); if (isJson()) { $jsonexport = array_map( function ($termin) { @@ -13634,7 +13664,7 @@ function adminTermine($admin_uebersicht): void }, $termine); JSON_sportsmanager::JSON($jsonexport); } else { - HTML_sportsmanager_admin::adminTermine($termine, $termineSymbole, $jahre, $filter_jahr, $filter_veranstaltung, $filter_zusatz, $filter_land, $veranstaltungen, $zusaetze, $laender, $anzahl_beantragte_termine, $zugriffsebene, $admin_uebersicht, isExternalDatabase()); + HTML_sportsmanager_admin::adminTermine($termine, $termineSymbole, $jahre, $filter_jahr, $filter_veranstaltung, $filter_zusatz, $filter_land, $filter_ort, $veranstaltungen, $zusaetze, $laender, $orte, $anzahl_beantragte_termine, $zugriffsebene, $admin_uebersicht, isExternalDatabase()); if (!$admin_uebersicht) { administrationFooter(); @@ -13742,7 +13772,9 @@ function adminEditTermin($admin_uebersicht): void $bundeslaender = loadObjectList($db, $query); $query = "SELECT * FROM #__sportsmanager_termin_land ORDER BY land"; $laender = loadObjectList($db, $query); - HTML_sportsmanager_admin::adminEditTermin($termin, $terminsymbolanzeige, $terminsymbole, $benachrichtigung_email, $bezeichnungen, $zusaetze, $bezeichnungszusaetze, $bundeslaender, $laender, $zugriffsebene, $admin_uebersicht, $bezeichnung_vorauswahl, $uebersicht, $ueberarbeiten, $nur_beantragte); + $query = "SELECT ort FROM #__sportsmanager_termin WHERE ort <> '' GROUP BY ort ORDER BY ort"; + $orte = loadObjectList($db, $query); + HTML_sportsmanager_admin::adminEditTermin($termin, $terminsymbolanzeige, $terminsymbole, $benachrichtigung_email, $bezeichnungen, $zusaetze, $bezeichnungszusaetze, $bundeslaender, $laender, $orte, $zugriffsebene, $admin_uebersicht, $bezeichnung_vorauswahl, $uebersicht, $ueberarbeiten, $nur_beantragte); } function adminSaveTermin($admin_uebersicht): void diff --git a/src/structure/components/com_sportsmanager/database/update.php b/src/structure/components/com_sportsmanager/database/update.php index bb50591..0df4bee 100644 --- a/src/structure/components/com_sportsmanager/database/update.php +++ b/src/structure/components/com_sportsmanager/database/update.php @@ -5245,6 +5245,23 @@ function updateDatabase(): void } } + if ($datenbank_version < 106) { + + $query = "ALTER TABLE `#__sportsmanager_verein` ADD `verstecken` INT(4) NOT NULL DEFAULT '0' AFTER `ausgetreten`;"; + $db->setQuery($query); + if (!$db->execute()) { + die($db->stderr(true)); + } + + $query = "UPDATE #__sportsmanager_einstellungen" + . "\n SET wert = '106'" + . "\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"; diff --git a/src/structure/components/com_sportsmanager/sportsmanager.php b/src/structure/components/com_sportsmanager/sportsmanager.php index df5eb71..eb29450 100644 --- a/src/structure/components/com_sportsmanager/sportsmanager.php +++ b/src/structure/components/com_sportsmanager/sportsmanager.php @@ -724,8 +724,12 @@ if ($task == "spielerbild") { break; case 'verein_begegnungen_ical': vereinBegegnungeniCal(); + break; + case 'sort_by_vereinsname': + vereine("vereinsname"); + break; default: - vereine(); + vereine("mitglieder"); break; } } else if ($content == "turniervoranmeldungen") { @@ -3466,23 +3470,29 @@ function mannschaftDetails($ansicht_vereinigt, $unabhaengige_ansicht = false): v die(); } -function vereine(): void +function vereine($sort): void { $db = getDatabase(); global $params; + $organisationAnzeigen = einstellungswert('verband_anzeigen'); - $query = "SELECT COUNT(DISTINCT veranstalter_id) FROM #__sportsmanager_verein WHERE NOT ausgetreten"; - $organisationAnzeigen = loadResult($db, $query) > 1; + $query = "SELECT t1.verein_id, t1.vereinsname, t1.vereinssitz," + . "\n t2.veranstalterbezeichnung, COUNT(*) As mitglieder" + . "\n FROM #__sportsmanager_verein AS t1" + . "\n LEFT JOIN #__sportsmanager_veranstalter AS t2 USING (veranstalter_id)" + . "\n LEFT JOIN #__sportsmanager_mitglied_von_verein AS t3 USING (verein_id)" + . "\n WHERE t1.ausgetreten = 0 AND verstecken = 0" + . "\n GROUP BY t1.verein_id"; + if ($sort == "mitglieder"){ + $query .= "\n HAVING mitglieder >= " . einstellungswert('anzahl_mitglieder_zeigen'); + $query .= "\n ORDER BY mitglieder DESC;"; + } + if ($sort == "vereinsname"){ + $query .= "\n ORDER BY t1.vereinsname;"; + } - $query = "SELECT *, veranstalterbezeichnung" - . "\n FROM #__sportsmanager_verein" - . "\n LEFT JOIN #__sportsmanager_veranstalter USING (veranstalter_id)" - . "\n WHERE NOT ausgetreten" . kategorieFilter("AND #__sportsmanager_veranstalter.kategorie IN") - . "\n ORDER BY IF(ISNULL(#__sportsmanager_veranstalter.veranstalter_id), 1, 0), veranstalterbezeichnung, vereinsname"; $vereine = loadObjectList($db, $query); - HTML_sportsmanager::vereine($params->get('titel'), $params->get('beschreibung'), $vereine, $organisationAnzeigen); - administrationFooter(); } @@ -3510,7 +3520,12 @@ function vereinDetails(): void $verein = $rows[0]; // Mitglieder ermitteln - $query = "SELECT * FROM #__sportsmanager_mitglied_von_verein LEFT JOIN #__sportsmanager_spieler ON #__sportsmanager_mitglied_von_verein.spieler_id = #__sportsmanager_spieler.spieler_id WHERE #__sportsmanager_mitglied_von_verein.verein_id = $verein->verein_id AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten ORDER BY nachname, vorname"; + $query = "SELECT * FROM #__sportsmanager_mitglied_von_verein" + . "\n LEFT JOIN #__sportsmanager_spieler ON #__sportsmanager_mitglied_von_verein.spieler_id = #__sportsmanager_spieler.spieler_id" + . "\n WHERE #__sportsmanager_mitglied_von_verein.verein_id = $verein->verein_id" + . "\n AND NOT #__sportsmanager_mitglied_von_verein.ausgetreten" + . "\n AND #__sportsmanager_mitglied_von_verein.mitgliedsstatus IN (1,2)" + . "\n ORDER BY nachname, vorname;"; $mitglieder = loadObjectList($db, $query); $query = "SELECT vorname, nachname, email" @@ -3520,6 +3535,7 @@ function vereinDetails(): void . "\n ORDER BY vorname, nachname, email"; $rows = loadObjectList($db, $query); + // Mailverteiler ermitteln $mailverteiler = array(); $mailverteiler["u"] = ""; $mailverteiler["p"] = ""; diff --git a/src/structure/components/com_sportsmanager/util/image.php b/src/structure/components/com_sportsmanager/util/image.php index ad60776..7c22b0a 100644 --- a/src/structure/components/com_sportsmanager/util/image.php +++ b/src/structure/components/com_sportsmanager/util/image.php @@ -356,7 +356,7 @@ function bildURL($typ, $id, $fixed_width = 0, $fixed_height = 0, $max_width = 0, #crop=250,250,left #crop=250,250,right */ -function yoothemeBild($typ, $id, $alternativ, $resize = '', $zusatz = ""): ?string +function yoothemeBild($typ, $id, $alternativ, $zusatz = ""): ?string { $typ_exploded = explode("/", $typ); $typ = $typ_exploded[0]; @@ -382,7 +382,7 @@ function yoothemeBild($typ, $id, $alternativ, $resize = '', $zusatz = ""): ?stri $bildpfad = SPORTSMANAGER_JOOMLA_URL . "images/sportsmanager/" . $typ . "/" . $typ_prefix . $id . "." . $ext; - return ''; + return ''; } function bildHTML($typ, $id, $fixed_width = 0, $fixed_height = 0, $max_width = 0, $max_height = 0, $zusatz = "", $alternativ = ""): ?string diff --git a/src/structure/components/com_sportsmanager/views/sportsmanager/view.html.php b/src/structure/components/com_sportsmanager/views/sportsmanager/view.html.php index 6bb9bf6..6aa2c90 100644 --- a/src/structure/components/com_sportsmanager/views/sportsmanager/view.html.php +++ b/src/structure/components/com_sportsmanager/views/sportsmanager/view.html.php @@ -1017,7 +1017,9 @@ static function turnierdisziplin($turnier, $disziplin, $meldungen, $meldungenSpi static function begegnungenAnzeigen($veranstaltung, $modus, $rows, $zeitfenster, $titel, $aus_uebersicht, $praesentation = 0): void { global $params; - + ?> + + 0) { $zeitpunkt_anzeigen = false; foreach ($rows as $begegnung) { @@ -2338,7 +2340,6 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie style="border-spacing: 0;width: 100%"> spieler_id]) || ($mitglieder_modus == 1 && $mitglieder_ist_dauerhaft[$row->spieler_id])) @@ -2944,8 +2945,8 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie static function vereine($titel, $beschreibung, $rows, $organisationAnzeigen): void { + //$organisationAnzeigen = 1; global $params; - if (!empty($titel)) { ?>
0) { - $bilder_anzeigen = false; - foreach ($rows as $verein) { - if (bildHTML("vereine", $verein->verein_id, 28, 28) != null) { - $bilder_anzeigen = true; - break; - } - } + if (count($rows) > 0) { + $bilder_anzeigen = false; + foreach ($rows as $verein) { + if (bildHTML("vereine", $verein->verein_id, 40, 40) != null) { + $bilder_anzeigen = true; + break; + } + } + ?> + +
+
+ + + + + + + + + + + + + veranstalterbezeichnung; - ?> -
-
Vereinslogo + + + + + + Organisation
- - - -
- -
-
- -
- - - - - - + + + + + + + + " . $row->veranstalterbezeichnung . ""; + } ?> - $k = 0; - foreach ($rows as $row) { - if ($organisationAnzeigen) { - if ($row->veranstalterbezeichnung != $organisation) { - $organisation = $row->veranstalterbezeichnung; - ?> -
+ verein_id, 40, 40, 0, 0, 'border="0"'); + if ($bild != null) + echo $bild; + ?> + + + + vereinsname)); ?> + + mitglieder; ?> + vereinssitz)) echo htmlentities_utf8($row->vereinssitz . (!empty($row->vereinssitz_ortsteil) ? ("-" . $row->vereinssitz_ortsteil) : "")); ?>
-   - -
- - - - -
- -
-
- -
- - - - - - - - - - -
- -
- - - - - - - - -
- vereinsname)); ?> - - verein_id, 28, 28, 0, 0, 'border="0"'); - if ($bild != null) - echo $bild; - ?> -
- -
vereinssitz)) echo htmlentities_utf8($row->vereinssitz . (!empty($row->vereinssitz_ortsteil) ? ("-" . $row->vereinssitz_ortsteil) : "")); ?>
- -   - + + +
+ + +   +
- +
@@ -3137,7 +3107,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie if ($bild != null) { ?>
- +
@@ -3149,7 +3119,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie ?>
-
+
@@ -6717,6 +6668,9 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie static function rangliste($rangliste, $rangliste_punkte, $allein_angezeigt, $details_anzeigen): void { + ?> + + @@ -6795,15 +6749,15 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie ?>
-
- +
@@ -3259,7 +3229,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
-
+
@@ -3312,7 +3282,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie if (count($mitglieder) > 0) { ?>
-
+
@@ -3321,67 +3291,48 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
-
+
"; - - echo ""; - echo ""; + + echo ""; + echo "
get('pageclass_sfx') . "\">"; - echo ""; - echo ""; + echo ""; if ($vereins_moderator) { if (!empty($row->geburtsjahr)) { - echo ""; + echo "
" . htmlentities_utf8($row->geburtsjahr) . ""; } - if (!empty($row->strasse) || - !empty($row->plz) || !empty($row->ort)) { - echo ""; - } - if (!empty($row->telefon) || - !empty($row->mobil) || - !empty($row->email)) { - echo ""; + if (!empty($row->strasse)) + echo "
" . htmlentities_utf8($row->strasse) . "
"; + if (!empty($row->plz) || !empty($row->ort)) + echo "
" . (!empty($row->plz) ? (htmlentities_utf8($row->plz) . " ") : "") . htmlentities_utf8($row->ort) . ""; + if (!empty($row->telefon)) + echo "
" . htmlentities_utf8($row->telefon) . "
"; + if (!empty($row->mobil)) + echo "
" . htmlentities_utf8($row->mobil) . "
"; + if (!empty($row->email)) { + $replacement = HTMLHelper::_('email.cloak', $row->email, 1, $row->email, 0); + echo "
" . $replacement . ""; } } - echo "
"; - ?>nachname . ", " . $row->vorname); ?>
get('pageclass_sfx') . "\">"; + ?> + + nachname . ", " . $row->vorname); ?>spielernr)) echo "
" . htmlentities_utf8($row->spielernr) . ""; - echo "
"; - echo "" . htmlentities_utf8($row->geburtsjahr) . ""; - echo "
"; - if (!empty($row->strasse)) - echo "" . htmlentities_utf8($row->strasse) . "
"; - if (!empty($row->plz) || !empty($row->ort)) - echo "" . (!empty($row->plz) ? (htmlentities_utf8($row->plz) . " ") : "") . htmlentities_utf8($row->ort) . ""; - echo "
"; - if (!empty($row->telefon)) - echo "" . htmlentities_utf8($row->telefon) . "
"; - if (!empty($row->mobil)) - echo "" . htmlentities_utf8($row->mobil) . "
"; - if (!empty($row->email)) { - $replacement = HTMLHelper::_('email.cloak', $row->email, 1, $row->email, 0); - echo "" . $replacement . ""; - } - echo "
get('pageclass_sfx') . "\">"; - $bild = bildHTML("spieler", !$details_anzeigen && $row->bild_ausblenden ? '' : $row->spieler_id, 90, 120, 0, 0, 'border="1"', $row->geschlecht == 'M' ? 'm' : 'w'); + echo "get('pageclass_sfx') . "\">"; + $bild = bildHTML("spieler", !$details_anzeigen && $row->bild_ausblenden ? '' : $row->mitglied_von_team_id, 90, 120, 0, 0, 'border="1"'); + if ($bild == null) + $bild = bildHTML("spieler", !$details_anzeigen && $row->bild_ausblenden ? '' : $row->spieler_id, 90, 120, 0, 0, 'border="1"', $row->geschlecht == 'M' ? 'm' : 'w'); if ($bild != null) { - ?> - - - - -
- "; $n++; + echo "
"; } ?>
- - + -
+
+ bild_ausblenden ? '' : $row->spieler_id, $row->geschlecht == 'M' ? 'm' : 'w', '#resize=75', 'border="1" style="text-align: left" hspace="8" vspace="2"')) != null) - echo $bild; ?> + if (($bild = yoothemeBild("spieler", !$details_anzeigen && $row->bild_ausblenden ? '' : $row->spieler_id, $row->geschlecht == 'M' ? 'm' : 'w', 'border="1" style="text-align: left; width: 60px;" hspace="8" vspace="2"')) != null) + echo "\n".$bild; ?> " method="post" name="adminForm" id="adminForm">
- +
- +
+ + + + + + + + @@ -2321,7 +2356,7 @@ class HTML_sportsmanager_admin
+ + + +
+ + + +
- verein_id) : "")); ?>" method="post" name="adminForm" id="adminForm" enctype="multipart/form-data">
- +
- - - - - -
- +
+ + + + + + + + + +
+ + + +
+ + + +
- - - -