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;
- ?>
-
-
-
-
-
-
+
+
+ |
+ 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) : "")); ?> |
+ " . $row->veranstalterbezeichnung . "";
+ } ?>
- $k = 0;
- foreach ($rows as $row) {
- if ($organisationAnzeigen) {
- if ($row->veranstalterbezeichnung != $organisation) {
- $organisation = $row->veranstalterbezeichnung;
- ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
- |
- 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
?>
-
+
-
+
|
@@ -3259,7 +3229,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
| |