diff --git a/src/structure/components/com_sportsmanager/admin.php b/src/structure/components/com_sportsmanager/admin.php
index d7c8550..a31841f 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');
$turnierbaum_zeigen = $jInput->get('turnierbaum_zeigen', 0, 'INT');
$termine_beantragen = $jInput->get('termine_beantragen', 0, 'INT');
$spielerimport_persoenliche_daten_vorauswahl = $jInput->get('spielerimport_persoenliche_daten_vorauswahl', 0, 'INT');
@@ -699,6 +701,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 = 'turnierbaum_zeigen'"
. ", wert = '$turnierbaum_zeigen'";
@@ -3314,6 +3332,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'),
@@ -3328,8 +3347,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));
@@ -3343,7 +3362,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()) {
@@ -9364,7 +9384,7 @@ function adminBegegnungenGenerierenForm(): void
$Zeile++;
}
$query .= ";";
- echo $query;
+
$db->setQuery($query);
if (!$db->execute()) {
@@ -9813,7 +9833,7 @@ function adminBegegnungenPokalrundeAuslosenForm(): void
$spielumplatz3 = $jInput->get('spielumplatz3', 0, 'INT');
$teams = [];
-
+
if ($veranstaltungId == 0) die("Missing id!");
if (!benutzerZugriff("mannschaftswettbewerb_aendern") && !benutzerVeranstaltungModerator($veranstaltungId))
@@ -9984,7 +10004,7 @@ function adminBegegnungenPokalrundeAuslosenForm(): void
$setzliste = [];
$setzung = [];
$matches = [];
-
+
$sperren = false;
$veranstaltungId = $jInput->get('veranstaltungid', 0, 'INT');
$rundenNr = $jInput->get('runde', 0, 'INT');
@@ -14064,6 +14084,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"
@@ -14090,6 +14111,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);
@@ -14139,6 +14162,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) {
@@ -14157,7 +14187,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();
@@ -14265,7 +14295,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 ca1d901..66dfd2c 100644
--- a/src/structure/components/com_sportsmanager/database/update.php
+++ b/src/structure/components/com_sportsmanager/database/update.php
@@ -5217,7 +5217,7 @@ function updateDatabase(): void
}
if ($datenbank_version < 104) {
-
+
$query = "ALTER TABLE #__sportsmanager_veranstaltung ADD direktervergleich INT(4) NOT NULL DEFAULT '0' AFTER tabellenwertung;";
$db->setQuery($query);
if (!$db->execute()) {
@@ -5246,7 +5246,7 @@ function updateDatabase(): void
}
if ($datenbank_version < 105) {
-
+
$query = "ALTER TABLE `#__sportsmanager_begegnung` ADD `spieltag_titel` VARCHAR(32) NOT NULL DEFAULT '' AFTER `spieltag`;";
$db->setQuery($query);
if (!$db->execute()) {
@@ -5264,7 +5264,7 @@ function updateDatabase(): void
if (!$db->execute()) {
die($db->stderr(true));
}
-
+
$query = "UPDATE #__sportsmanager_einstellungen"
. "\n SET wert = '105'"
. "\n WHERE name = 'datenbank_version'";
@@ -5274,6 +5274,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 b64248b..9c576d5 100644
--- a/src/structure/components/com_sportsmanager/sportsmanager.php
+++ b/src/structure/components/com_sportsmanager/sportsmanager.php
@@ -733,8 +733,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") {
@@ -3778,23 +3782,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();
}
@@ -3822,7 +3832,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"
@@ -3832,6 +3847,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 3b2f274..3fc8916 100644
--- a/src/structure/components/com_sportsmanager/views/sportsmanager/view.html.php
+++ b/src/structure/components/com_sportsmanager/views/sportsmanager/view.html.php
@@ -983,7 +983,7 @@ static function turnierdisziplin($turnier, $disziplin, $meldungen, $meldungenSpi
?>
+
+ 0) {
$zeitpunkt_anzeigen = false;
foreach ($rows as $begegnung) {
@@ -1239,8 +1241,8 @@ static function turnierbaumAnzeigen($veranstaltung,$begegnungen): void
$fontsize = 11;
?>
+
+
+
+
+ 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) : "")); ?> |
-
-
-
-
-
-
+
+
+
+
+
+
+
-
+
@@ -3276,7 +3245,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
if ($bild != null) {
?>
-
+
|
@@ -3288,7 +3257,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
?>
-
+
-
+
|
@@ -3398,7 +3367,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie
| |