diff --git a/src/structure/components/com_sportsmanager/admin.php b/src/structure/components/com_sportsmanager/admin.php index 20b3eff..89778dc 100644 --- a/src/structure/components/com_sportsmanager/admin.php +++ b/src/structure/components/com_sportsmanager/admin.php @@ -4525,6 +4525,7 @@ function adminEditTeamspielmodus(): void $punkte_sieg_doppel_separat = $jInput->get('punkte_sieg_doppel_separat', 0, 'INT'); $punkte_sieg_doppel = $punkte_sieg_doppel_separat ? $jInput->get('punkte_sieg_doppel', 0, 'INT') : $punkte_sieg_einzel; $heimtausch = $jInput->get('heimtausch', 0, 'INT'); + $spiele_in_spielerstatistik = $jInput->get('spiele_in_spielerstatistik', 0, 'INT'); $status = $jInput->get('status', 0, 'INT'); $spielpunkte_wertung_einzel = $jInput->get('spielpunkte_wertung_einzel', 0, 'INT'); $spielpunkte_wertung_doppel_separat = $jInput->get('spielpunkte_wertung_doppel_separat', 0, 'INT'); @@ -4572,7 +4573,11 @@ function adminEditTeamspielmodus(): void $modus = $db->escape($modus); if ($id == 0) { - $query = "INSERT INTO #__sportsmanager_teamspiel_modus (bezeichnung, punktetyp, punkte_sieg_einzel, punkte_sieg_doppel, spielpunkte_wertung_einzel, spielpunkte_wertung_doppel, spielpunkte_bedingung, spielernamen, heimtausch, modus, status) VALUES ('$bezeichnung', '$punktetyp', '$punkte_sieg_einzel', '$punkte_sieg_doppel', '$spielpunkte_wertung_einzel', '$spielpunkte_wertung_doppel', '$spielpunkte_bedingung', '$spielernamen', '$heimtausch', '$modus', '$status');"; + $query = "INSERT INTO #__sportsmanager_teamspiel_modus" + . "\n (bezeichnung, punktetyp, punkte_sieg_einzel, punkte_sieg_doppel, spielpunkte_wertung_einzel, spielpunkte_wertung_doppel," + . "\n spielpunkte_bedingung, spielernamen, heimtausch, modus, spiele_in_spielerstatistik, status)" + . "\n VALUES ('$bezeichnung', '$punktetyp', '$punkte_sieg_einzel', '$punkte_sieg_doppel', '$spielpunkte_wertung_einzel'," + . "\n '$spielpunkte_wertung_doppel', '$spielpunkte_bedingung', '$spielernamen', '$heimtausch', '$modus', '$spiele_in_spielerstatistik', '$status');"; $db->setQuery($query); if (!$db->execute()) { die($db->stderr(true)); @@ -4590,6 +4595,7 @@ function adminEditTeamspielmodus(): void . "\n spielernamen = '$spielernamen'," . "\n heimtausch = '$heimtausch'," . "\n modus = '$modus'," + . "\n spiele_in_spielerstatistik = '$spiele_in_spielerstatistik'," . "\n status = '$status'" . "\n WHERE teamspiel_modus_id = $id"; $db->setQuery($query); @@ -7788,6 +7794,7 @@ function adminHalloffameMitglieder(): void if ($halloffame->spielform == 1){ foreach ($rows as $row) { $index_vereinid = "verein_id_" . $row->platz; + $index_teamid = "team_id_" . $row->platz; $index_team = "teamname_" . $row->platz; if (!isset($mitglieder[$row->jahr])) { $mitglieder[$row->jahr] = new stdClass(); @@ -7799,6 +7806,14 @@ function adminHalloffameMitglieder(): void $halloffame->platz2_zeigen = 1; if ($row->platz == 3 && !empty($row->teamname)) $halloffame->platz3_zeigen = 1; + + //Suche team_id wenn keine verein_id vorhanden + if (empty($row->verein_id)){ + $query = "SELECT team_id FROM #__sportsmanager_team WHERE teamname LIKE '$row->teamname%' ORDER BY team_id DESC LIMIT 1;"; + $mitglieder[$row->jahr]->$index_teamid = loadResult($db, $query); + } else { + $mitglieder[$row->jahr]->$index_teamid = ""; + } } } if ($halloffame->spielform == 2 || $halloffame->spielform == 3){ diff --git a/src/structure/components/com_sportsmanager/database/update.php b/src/structure/components/com_sportsmanager/database/update.php index 0fa7438..bdde5d3 100644 --- a/src/structure/components/com_sportsmanager/database/update.php +++ b/src/structure/components/com_sportsmanager/database/update.php @@ -5708,6 +5708,39 @@ function updateDatabase(): void } } + if ($datenbank_version < 120) { + + $columns = $db->getTableColumns('#__sportsmanager_teamspiel_modus'); + if (!array_key_exists('spiele_in_spielerstatistik', $columns)){ + $query = "ALTER TABLE `#__sportsmanager_teamspiel_modus`" + . "\n ADD `spiele_in_spielerstatistik` INT(4) NOT NULL DEFAULT '0' AFTER `heimtausch`;"; + $db->setQuery($query); + if (!$db->execute()) { + die($db->stderr(true)); + } + } + + $columns = $db->getTableColumns('#__sportsmanager_bestenliste_punkte'); + if (!array_key_exists('team_id', $columns)){ + $query = "ALTER TABLE `#__sportsmanager_bestenliste_punkte`" + . "\n ADD `team_id` INT(11) NULL DEFAULT NULL AFTER `spieler_2_id`;"; + $db->setQuery($query); + if (!$db->execute()) { + die($db->stderr(true)); + } + } + + $spielerstatistik_aktualisieren = true; + + $query = "UPDATE #__sportsmanager_einstellungen" + . "\n SET wert = '120'" + . "\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 5757739..a62ea3d 100644 --- a/src/structure/components/com_sportsmanager/sportsmanager.php +++ b/src/structure/components/com_sportsmanager/sportsmanager.php @@ -1805,7 +1805,7 @@ function tabelle($veranstaltung, $spieltag, $alleine_angezeigt, $praesentation = $teams = getTabelleAktuellerSpieltag($veranstaltung); } else { $teams = getTabelleSpieltag($veranstaltung,$spieltag); - if ($veranstaltung->direktervergleich && $spieltag >= $anzahl_spieltage_komplett/2 && $anzahl_spieltage_komplett >= 3){ + if ($veranstaltung->direktervergleich > 0 && $spieltag >= $anzahl_spieltage_komplett/2 && $anzahl_spieltage_komplett >= 3){ $teams = getTabelleDirekterVergleich($teams,$veranstaltung,$spieltag); } } @@ -1833,17 +1833,40 @@ function tabelle($veranstaltung, $spieltag, $alleine_angezeigt, $praesentation = function getTabelleDirekterVergleich($teams,$veranstaltung,$spieltag) { $gesamtpunkte = 1000; - $anzahlSpiele = 1000; + $anzahl_spiele = 1000; + $punkte_differenz = 1000; + $punkte_quotient = 1000.0000; + $spielpunkte_differenz = 1000; + $spielpunkte_quotient = 1000.0000; $platz = 0; + $punktgleicheMannschaften = []; $korrekturen = []; $bufferplatz = []; - + foreach($teams AS $team){ $bufferplatz[$team->team_id]['platz'] = $team->platz; - if (($gesamtpunkte != $team->gesamtpunkte) OR ($anzahlSpiele != $team->anzahl_spiele)){ + $unterschied = false; + + if (($gesamtpunkte != $team->gesamtpunkte) || ($anzahl_spiele != $team->anzahl_spiele)) + $unterschied = true; + if ($veranstaltung->direktervergleich >= 2 && in_array($veranstaltung->tabellenwertung, [1,4,7,10]) && $spielpunkte_differenz != $team->spielpunkte_differenz) + $unterschied = true; + if ($veranstaltung->direktervergleich >= 2 && in_array($veranstaltung->tabellenwertung, [2,5,8,11]) && $spielpunkte_quotient != $team->spielpunkte_quotient) + $unterschied = true; + if ($veranstaltung->direktervergleich == 3 && in_array($veranstaltung->tabellenwertung, [1,4,7,10]) && $punkte_differenz != $team->punkte_differenz) + $unterschied = true; + if ($veranstaltung->direktervergleich == 3 && in_array($veranstaltung->tabellenwertung, [2,5,8,11]) && $punkte_quotient != $team->punkte_quotient) + $unterschied = true; + + if ($unterschied) + { $gesamtpunkte = $team->gesamtpunkte; - $anzahlSpiele = $team->anzahl_spiele; + $anzahl_spiele = $team->anzahl_spiele; + $punkte_differenz = $team->punkte_differenz; + $punkte_quotient = $team->punkte_quotient; + $spielpunkte_differenz = $team->spielpunkte_differenz; + $spielpunkte_quotient = $team->spielpunkte_quotient; $platz = $team->platz; $punktgleicheMannschaften[$platz] = $team->team_id; } @@ -1858,7 +1881,7 @@ function getTabelleDirekterVergleich($teams,$veranstaltung,$spieltag) foreach($teamsKorrektur AS $teamKorrektur){ $teamKorrektur->platz_alt = $bufferplatz[$teamKorrektur->team_id]['platz']; } - + if ($veranstaltung->tabellenwertung == 1 || $veranstaltung->tabellenwertung == 4 || $veranstaltung->tabellenwertung == 7){ usort($teamsKorrektur, fn($a, $b) => [(float)$b->begegnungspunkte, (int)$a->anzahl_spiele, (float)$b->spielpunkte_differenz, (float)$b->punkte_differenz, (int)$a->platz_alt] @@ -1894,7 +1917,7 @@ function getTabelleDirekterVergleich($teams,$veranstaltung,$spieltag) [(float)$a->begegnungspunkte, (int)$b->anzahl_spiele, (int)$b->platz_alt] ); } - + $neuerPlatz = $key; foreach ($teamsKorrektur as $teamKorrektur) { $teamKorrektur->platz = $neuerPlatz++; @@ -2573,7 +2596,7 @@ function turnierbaumAnzeigen($veranstaltung): void else $begegnungen[$begegnung['Spieltag_Nr'] + 1][round($begegnung['Spiel_Nr'] / 2)]['gast'] = htmlentities($begegnung['Heim']); } - } else + } else if ($begegnung['Heim_Satzpunkte'] < $begegnung['Gast_Satzpunkte']) { $begegnungen[$begegnung['Spieltag_Nr']][$begegnung['Spiel_Nr']]['sieger'] = 2; if ($begegnung['Spieltag_Nr'] < $anzahlRunden){ @@ -2582,7 +2605,7 @@ function turnierbaumAnzeigen($veranstaltung): void else $begegnungen[$begegnung['Spieltag_Nr'] + 1][round($begegnung['Spiel_Nr'] / 2)]['gast'] = htmlentities($begegnung['Gast']); } - } else + } else if ($begegnung['Heim_Satzpunkte'] == $begegnung['Gast_Satzpunkte'] && $begegnung['Heim_Tore'] > $begegnung['Gast_Tore']) { $begegnungen[$begegnung['Spieltag_Nr']][$begegnung['Spiel_Nr']]['sieger'] = 1; if ($begegnung['Spieltag_Nr'] < $anzahlRunden){ @@ -2591,7 +2614,7 @@ function turnierbaumAnzeigen($veranstaltung): void else $begegnungen[$begegnung['Spieltag_Nr'] + 1][round($begegnung['Spiel_Nr'] / 2)]['gast'] = htmlentities($begegnung['Heim']); } - } else + } else if ($begegnung['Heim_Satzpunkte'] == $begegnung['Gast_Satzpunkte'] && $begegnung['Heim_Tore'] < $begegnung['Gast_Tore']) { $begegnungen[$begegnung['Spieltag_Nr']][$begegnung['Spiel_Nr']]['sieger'] = 2; if ($begegnung['Spieltag_Nr'] < $anzahlRunden){ @@ -4245,16 +4268,16 @@ function spielverlegungen(): void global $params; $jInput = Factory::getContainer()->get(SiteApplication::class)->input; $filter_status = $jInput->get('filter_status', '', 'RAW'); - + if (empty($filter_status)) $filter_status = "offen,genehmigt"; - + $query = "SELECT saison_id, saisonbezeichnung" . "\n FROM #__sportsmanager_saison" . "\n ORDER BY saisonbezeichnung DESC LIMIT 1"; $saisons = loadObjectList($db, $query); $filter_saison_id = $saisons[0]->saison_id; - + $query = "SELECT t1.begegnung_historie_id AS beantragt_id, t1.begegnung_id AS begegnung_id," . "\n t1.eingetragen AS beantragt, t1.kommentar AS Begruendung_beantragt, t1.zeitpunkt AS Termin_alt," . "\n t1.team_id as beantragt_verein, t5.bezeichnung AS Liga," @@ -4270,23 +4293,23 @@ function spielverlegungen(): void . kategorieFilter("AND t5.kategorie IN") . "\n ORDER BY t1.begegnung_id, t1.zeitpunkt ASC;"; $spielverlegungen = loadObjectList($db, $query); - + $last_id = ""; foreach ($spielverlegungen as $key => $spielverlegung) { if ($spielverlegung->begegnung_id == $last_id) { unset($spielverlegungen[$key]); } else { $last_id = $spielverlegung->begegnung_id; - + $query = "SELECT t1.begegnung_historie_id AS genehmigt_id, t1.eingetragen AS genehmigt," . "\n t1.user_id AS genehmigt_von, t1.team_id as genehmigt_verein, t1.zeitpunkt AS Termin_neu" . "\n FROM #__sportsmanager_begegnung_historie AS t1" . "\n LEFT JOIN #__sportsmanager_begegnung AS t2 ON t2.begegnung_id = t1.begegnung_id" . "\n WHERE t1.aktion = 1 AND t1.begegnung_id = $last_id" . "\n ORDER BY t1.zeitpunkt DESC LIMIT 1;"; - + $genehmigt = loadObjectList($db, $query); - + if (!empty($genehmigt)) { $spielverlegung->genehmigt_id = $genehmigt[0]->genehmigt_id; $spielverlegung->genehmigt = $genehmigt[0]->genehmigt; @@ -4309,9 +4332,9 @@ function spielverlegungen(): void . "\n LEFT JOIN #__sportsmanager_begegnung AS t2 ON t2.begegnung_id = t1.begegnung_id" . "\n WHERE t1.aktion = 10 AND t1.begegnung_id = $last_id" . "\n ORDER BY t1.zeitpunkt DESC LIMIT 1;"; - + $abgelehnt = loadObjectList($db, $query); - + if (!empty($abgelehnt)) { $spielverlegung->abgelehnt_id = $abgelehnt[0]->abgelehnt_id; $spielverlegung->abgelehnt = $abgelehnt[0]->abgelehnt; @@ -4343,7 +4366,7 @@ function verbandsorgane(): void $db = getDatabase(); global $params; $jInput = Factory::getContainer()->get(SiteApplication::class)->input; - + $query = "SELECT t1.*, COUNT(t2.verbandsorgane_id) AS anzahl, t3.veranstalterbezeichnung AS organisation" . "\n FROM #__sportsmanager_verbandsorgane t1" . "\n LEFT JOIN #__sportsmanager_mitglied_von_verbandsorgan t2 ON t2.verbandsorgane_id = t1.verbandsorgane_id" @@ -4352,7 +4375,7 @@ function verbandsorgane(): void . kategorieFilter("HAVING t1.kategorie IN") . "\n ORDER BY t1.reihenfolge;"; $verbandsorgane = loadObjectList($db, $query); - + $query = "SELECT COUNT(veranstalter_id) AS anzahl" . "\n FROM #__sportsmanager_verbandsorgane" . "\n GROUP BY veranstalter_id" @@ -4379,16 +4402,16 @@ function verbandsorganeDetails($uebergabe_id = 0): void $db = getDatabase(); $app = Factory::getContainer()->get(SiteApplication::class); $jInput = $app->input; - + global $params; - - + + $user_id = isExternalDatabase() ? 0 : (isJson() ? getUserID() : $app->getIdentity()->id); if ($user_id > 0) $erweiterte_anzeige = true; else $erweiterte_anzeige = false; - + if ($uebergabe_id == 0) $id = $jInput->get('id', 0, 'INT'); else @@ -4405,7 +4428,7 @@ function verbandsorganeDetails($uebergabe_id = 0): void . "\n WHERE verbandsorgane_id = $id" . "\n ORDER BY reihenfolge, nachname, vorname"; $mitglieder = loadObjectList($db, $query); - + $query = "SELECT zusatzinfo FROM #__sportsmanager_mitglied_von_verbandsorgan" . "\n WHERE verbandsorgane_id = $id" . "\n AND zusatzinfo IS NOT NULL AND TRIM(zusatzinfo) <> ''" @@ -4415,7 +4438,7 @@ function verbandsorganeDetails($uebergabe_id = 0): void $zusatzinfos_vorhanden = true; else $zusatzinfos_vorhanden = false; - + if (isJson()) { echo json_encode($mitglieder); } else { @@ -4427,7 +4450,7 @@ function halloffame(): void { $db = getDatabase(); global $params; - + $query = "SELECT t1.*, COUNT(DISTINCT t2.jahr) AS anzahl," . "\n IF (COUNT(DISTINCT t2.jahr) > 0, CONCAT(min(t2.jahr), ' - ', max(t2.jahr)), '" . Text::_('COM_SPORTSMANAGER_NO_ENTRY') . "') AS zeitspanne" . "\n FROM #__sportsmanager_halloffame t1" @@ -4436,7 +4459,7 @@ function halloffame(): void . kategorieFilter("HAVING t1.kategorie IN") . "\n ORDER BY t1.reihenfolge;"; $halloffame = loadObjectList($db, $query); - + if (count($halloffame) == 1){ halloffameDetails($halloffame[0]->halloffame_id); } else { @@ -4453,16 +4476,16 @@ function halloffameDetails($uebergabe_id = 0): void $db = getDatabase(); $app = Factory::getContainer()->get(SiteApplication::class); $jInput = $app->input; - + global $params; - + if ($uebergabe_id == 0) $id = $jInput->get('id', 0, 'INT'); else $id = $uebergabe_id; - + $mitglieder = null; - + $query = "SELECT * FROM #__sportsmanager_halloffame WHERE halloffame_id = $id"; $rows = loadObjectList($db, $query); if (count($rows) < 1) { @@ -4471,19 +4494,20 @@ function halloffameDetails($uebergabe_id = 0): void $halloffame = $rows[0]; $halloffame->platz2_zeigen = 0; $halloffame->platz3_zeigen = 0; - + $query = "SELECT t2.*, t1.halloffame" . "\n FROM #__sportsmanager_halloffame t1" . "\n LEFT JOIN #__sportsmanager_mitglied_von_halloffame t2 ON t2.halloffame_id = t1.halloffame_id" . "\n WHERE t2.halloffame_id = $id" . "\n ORDER BY t2.jahr DESC, platz ASC;"; $rows = loadObjectList($db, $query); - + if (count($rows) > 0){ $mitglieder = []; if ($halloffame->spielform == 1){ foreach ($rows as $row) { $index_vereinid = "verein_id_" . $row->platz; + $index_teamid = "team_id_" . $row->platz; $index_team = "teamname_" . $row->platz; if (!isset($mitglieder[$row->jahr])) { $mitglieder[$row->jahr] = new stdClass(); @@ -4495,6 +4519,14 @@ function halloffameDetails($uebergabe_id = 0): void $halloffame->platz2_zeigen = 1; if ($row->platz == 3 && !empty($row->teamname)) $halloffame->platz3_zeigen = 1; + + //Suche team_id wenn keine verein_id vorhanden + if (empty($row->verein_id)){ + $query = "SELECT team_id FROM #__sportsmanager_team WHERE teamname LIKE '$row->teamname%' ORDER BY team_id DESC LIMIT 1;"; + $mitglieder[$row->jahr]->$index_teamid = loadResult($db, $query); + } else { + $mitglieder[$row->jahr]->$index_teamid = ""; + } } } if ($halloffame->spielform == 2 || $halloffame->spielform == 3){ @@ -4503,7 +4535,7 @@ function halloffameDetails($uebergabe_id = 0): void $index_spieler1 = "spieler1_" . $row->platz; $index_spieler2id = "spieler2_id_" . $row->platz; $index_spieler2 = "spieler2_" . $row->platz; - + if (!isset($mitglieder[$row->jahr])) { $mitglieder[$row->jahr] = new stdClass(); } @@ -4519,7 +4551,7 @@ function halloffameDetails($uebergabe_id = 0): void } } } - + if (isJson()) { echo json_encode($mitglieder); } else { @@ -4714,10 +4746,10 @@ function begegnungVerlegenForm(): void $aus_uebersicht = $jInput->get('aus_uebersicht', 0, 'INT'); $query = "SELECT #__sportsmanager_veranstaltung.*, initial_ohne_termin, keine_gegenvorschlaege, vorlaufzeit_tage," - . "\n termine_minimal, termine_maximal, ablehnen, begruendung_erforderlich" + . "\n termine_minimal, termine_maximal, ablehnen, begruendung_erforderlich" . "\n FROM #__sportsmanager_veranstaltung LEFT JOIN #__sportsmanager_verschieberegel USING (verschieberegel_id)" . "\n WHERE veranstaltung_id = $veranstaltungid"; - + $rows = loadObjectList($db, $query); if (count($rows) < 1) die("Wrong id!"); @@ -5088,7 +5120,7 @@ function begegnungVerlegen(): void function neueTeamStrafe($teamid, $veranstaltungid, $strafe, $moderator_user_id, $beschreibung) { $app = Factory::getContainer()->get(SiteApplication::class); $db = getDatabase(); - + $zeitpunkt = date('Y-m-d H:i:s'); $query = "INSERT INTO #__sportsmanager_team_strafen" . "\n (team_id, zeitpunkt, moderator_user_id, strafe, beschreibung)" @@ -5270,7 +5302,7 @@ function teamstatistikAktualisieren($geaenderte_veranstaltung_id = 0, $geaendert } // Direkter Vergleich, wenn mindestens die Hälfte der Spieltage gespielt sind. - if ($veranstaltung->direktervergleich && $anzahl_spieltage_gespielt >= $anzahl_spieltage_komplett/2 && $anzahl_spieltage_komplett >= 3){ + if ($veranstaltung->direktervergleich > 0 && $anzahl_spieltage_gespielt >= $anzahl_spieltage_komplett/2 && $anzahl_spieltage_komplett >= 3){ $teams = getTabelleDirekterVergleich($teams,$veranstaltung,$aktueller_spieltag); } @@ -5284,7 +5316,10 @@ function teamstatistikAktualisieren($geaenderte_veranstaltung_id = 0, $geaendert $buchholz1_wert = 0; $buchholz2_wert = 0; foreach ($teams as $team) { - if ($platz == 1 || (($veranstaltung->tabellenwertung <= 9 || $veranstaltung->tabellenwertung >= 21) && $gesamtpunkte != $team->gesamtpunkte) || (($veranstaltung->tabellenwertung == 1 || $veranstaltung->tabellenwertung == 4 || $veranstaltung->tabellenwertung == 7 || $veranstaltung->tabellenwertung == 10 || $veranstaltung->tabellenwertung == 21 || $veranstaltung->tabellenwertung == 24 || $veranstaltung->tabellenwertung == 27) && ($spielpunkte_differenz != $team->spielpunkte_differenz || $punkte_differenz != $team->punkte_differenz)) || (($veranstaltung->tabellenwertung == 2 || $veranstaltung->tabellenwertung == 5 || $veranstaltung->tabellenwertung == 8 || $veranstaltung->tabellenwertung == 11 || $veranstaltung->tabellenwertung == 22 || $veranstaltung->tabellenwertung == 25 || $veranstaltung->tabellenwertung == 28) && ($spielpunkte_quotient != $team->spielpunkte_quotient || $punkte_quotient != $team->punkte_quotient)) || (($veranstaltung->tabellenwertung >= 21) && ($team->buchholz1 != $buchholz1_wert || $team->buchholz2 != $buchholz2_wert))) + if ($platz == 1 || (($veranstaltung->tabellenwertung <= 9 || $veranstaltung->tabellenwertung >= 21) && $gesamtpunkte != $team->gesamtpunkte) + || (($veranstaltung->tabellenwertung == 1 || $veranstaltung->tabellenwertung == 4 || $veranstaltung->tabellenwertung == 7 || $veranstaltung->tabellenwertung == 10 || $veranstaltung->tabellenwertung == 21 || $veranstaltung->tabellenwertung == 24 || $veranstaltung->tabellenwertung == 27) && ($spielpunkte_differenz != $team->spielpunkte_differenz || $punkte_differenz != $team->punkte_differenz)) + || (($veranstaltung->tabellenwertung == 2 || $veranstaltung->tabellenwertung == 5 || $veranstaltung->tabellenwertung == 8 || $veranstaltung->tabellenwertung == 11 || $veranstaltung->tabellenwertung == 22 || $veranstaltung->tabellenwertung == 25 || $veranstaltung->tabellenwertung == 28) && ($spielpunkte_quotient != $team->spielpunkte_quotient || $punkte_quotient != $team->punkte_quotient)) + || (($veranstaltung->tabellenwertung >= 21) && ($team->buchholz1 != $buchholz1_wert || $team->buchholz2 != $buchholz2_wert))) $tatsaechlicher_platz = $platz; $query = "UPDATE #__sportsmanager_team" . "\n SET platz = $tatsaechlicher_platz"; @@ -5825,17 +5860,23 @@ function spielerstatistikAktualisieren($geaenderte_spielerstatistik_id = 0, $gea $punkte = array(); foreach ($veranstaltungen as $veranstaltung) { - $query = "SELECT heim_spieler_1_id, heim_spieler_2_id, gast_spieler_1_id, gast_spieler_2_id, teamspiel_heim_punkte, teamspiel_gast_punkte, teamspiel_heim_spielpunkte, teamspiel_gast_spielpunkte" + $query = "SELECT heim_spieler_1_id, heim_spieler_2_id, gast_spieler_1_id, gast_spieler_2_id, heim_team_id, gast_team_id," + . "\n teamspiel_heim_punkte, teamspiel_gast_punkte, teamspiel_heim_spielpunkte, teamspiel_gast_spielpunkte" . "\n FROM #__sportsmanager_begegnung" . "\n LEFT JOIN #__sportsmanager_team ON heim_team_id = #__sportsmanager_team.team_id" . "\n LEFT JOIN #__sportsmanager_teamspiel ON #__sportsmanager_begegnung.begegnung_id = #__sportsmanager_teamspiel.begegnung_id" . "\n LEFT JOIN #__sportsmanager_unbestaetigtes_ergebnis ON #__sportsmanager_begegnung.begegnung_id = #__sportsmanager_unbestaetigtes_ergebnis.begegnung_id" - . "\n WHERE ISNULL(unbestaetigtes_ergebnis_id) AND veranstaltung_id = $veranstaltung->veranstaltung_id"; - if ($spielerstatistik->typ == 1) + . "\n LEFT JOIN #__sportsmanager_veranstaltung ON #__sportsmanager_team.veranstaltung_id = #__sportsmanager_veranstaltung.veranstaltung_id" + . "\n LEFT JOIN #__sportsmanager_teamspiel_modus ON #__sportsmanager_veranstaltung.modus_id = #__sportsmanager_teamspiel_modus.teamspiel_modus_id" + . "\n WHERE ISNULL(unbestaetigtes_ergebnis_id) AND #__sportsmanager_veranstaltung.veranstaltung_id = $veranstaltung->veranstaltung_id" + . "\n AND (#__sportsmanager_teamspiel_modus.spiele_in_spielerstatistik <= 0" + . "\n OR teamspiel_nummer <= #__sportsmanager_teamspiel_modus.spiele_in_spielerstatistik)"; + if ($spielerstatistik->typ == 1) $query .= "\n AND ISNULL(heim_spieler_2_id) AND ISNULL(gast_spieler_2_id)"; else if ($spielerstatistik->typ == 2 || $spielerstatistik->typ == 3) $query .= "\n AND NOT (ISNULL(heim_spieler_2_id) AND ISNULL(gast_spieler_2_id))"; - $begegnungen = loadObjectList($db, $query); + $query .= "\n ORDER BY #__sportsmanager_begegnung.zeitpunkt ASC;"; + $begegnungen = loadObjectList($db, $query); foreach ($begegnungen as $begegnung) { $beteiligte = array(); @@ -5868,6 +5909,8 @@ function spielerstatistikAktualisieren($geaenderte_spielerstatistik_id = 0, $gea $gast_punkte = $begegnung->teamspiel_gast_punkte; $heim_spielpunkte = $begegnung->teamspiel_heim_spielpunkte; $gast_spielpunkte = $begegnung->teamspiel_gast_spielpunkte; + $heim_team_id = $begegnung->heim_team_id; + $gast_team_id = $begegnung->gast_team_id; $ergebnis = $heim_punkte > $gast_punkte ? 1 : ($heim_punkte < $gast_punkte ? 2 : 0); $heim_saetze = $ergebnis == 1 ? 1 : 0; $unentschieden_saetze = $ergebnis == 0 ? 1 : 0; @@ -5888,6 +5931,10 @@ function spielerstatistikAktualisieren($geaenderte_spielerstatistik_id = 0, $gea $punkte[$spieler_id]["sv"] = 0; $punkte[$spieler_id]["pg"] = 0; $punkte[$spieler_id]["pv"] = 0; + if ($typ == "H") + $punkte[$spieler_id]["team_id"] = $heim_team_id; + else + $punkte[$spieler_id]["team_id"] = $gast_team_id; } if (($ergebnis == 1 && $typ == "H") || ($ergebnis == 2 && $typ != "H")) $punkte[$spieler_id]["s"] += 1; @@ -6014,6 +6061,11 @@ function spielerstatistikAktualisieren($geaenderte_spielerstatistik_id = 0, $gea $spieler_punkte_saetze_verloren = $spieler_punkte["sv"]; $spieler_punkte_punkte_gewonnen = $spieler_punkte["pg"]; $spieler_punkte_punkte_verloren = $spieler_punkte["pv"]; + if (!empty($spieler_punkte["team_id"])) + $spieler_team_id = $spieler_punkte["team_id"]; + else + $spieler_team_id = "NULL"; + $query = "UPDATE #__sportsmanager_bestenliste_punkte" . "\n SET siege = $spieler_punkte_siege," . "\n unentschieden = $spieler_punkte_unentschieden," @@ -6024,7 +6076,8 @@ function spielerstatistikAktualisieren($geaenderte_spielerstatistik_id = 0, $gea . "\n saetze_unentschieden = $spieler_punkte_saetze_unentschieden," . "\n saetze_verloren = $spieler_punkte_saetze_verloren," . "\n punkte_gewonnen = $spieler_punkte_punkte_gewonnen," - . "\n punkte_verloren = $spieler_punkte_punkte_verloren" + . "\n punkte_verloren = $spieler_punkte_punkte_verloren," + . "\n team_id = $spieler_team_id" . "\n WHERE bestenliste_punkte_id = $row->bestenliste_punkte_id;"; $db->setQuery($query); if (!$db->execute()) { @@ -6051,6 +6104,10 @@ function spielerstatistikAktualisieren($geaenderte_spielerstatistik_id = 0, $gea $spieler_punkte_saetze_verloren = $spieler_punkte["sv"]; $spieler_punkte_punkte_gewonnen = $spieler_punkte["pg"]; $spieler_punkte_punkte_verloren = $spieler_punkte["pv"]; + if (!empty($spieler_punkte["team_id"])) + $spieler_team_id = $spieler_punkte["team_id"]; + else + $spieler_team_id = "NULL"; $query = "INSERT #__sportsmanager_bestenliste_punkte" . "\n SET siege = $spieler_punkte_siege," . "\n unentschieden = $spieler_punkte_unentschieden," @@ -6064,6 +6121,7 @@ function spielerstatistikAktualisieren($geaenderte_spielerstatistik_id = 0, $gea . "\n punkte_verloren = $spieler_punkte_punkte_verloren," . "\n spieler_id = $spieler_1_id," . "\n spieler_2_id = " . ($spieler_2_id != NULL ? "$spieler_2_id" : "NULL") . "," + . "\n team_id = $spieler_team_id," . "\n bestenliste_id = $spielerstatistik->bestenliste_id;"; $db->setQuery($query); if (!$db->execute()) { @@ -7312,6 +7370,7 @@ function spielerstatistiken(): void $details_anzeigen = currentUserHasAccessToDetails(); $filter_saison_id = $jInput->get('filter_saison_id', 0, 'INT'); + if ($filter_saison_id == 0) $filter_saison_id = $jInput->cookie->get('sportsmanager_filter_saison_id', 0, 'INT'); @@ -7341,25 +7400,53 @@ function spielerstatistiken(): void . "\n ORDER BY reihenfolge, bezeichnung, kategorie"; $spielerstatistiken = loadObjectList($db, $query); - HTML_sportsmanager::spielerstatistikenHeader($params->get('titel'), $params->get('beschreibung'), $saisons, $filter_saison_id); + HTML_sportsmanager::spielerstatistikenHeader($params->get('titel'), $params->get('beschreibung'), $saisons, $filter_saison_id, "", null, null, null, null); foreach ($spielerstatistiken as $spielerstatistik) { - $query = "SELECT #__sportsmanager_bestenliste_punkte.*, #__sportsmanager_spieler.nachname, #__sportsmanager_spieler.vorname, #__sportsmanager_spieler.geschlecht, #__sportsmanager_spieler.aktueller_verein_id, #__sportsmanager_spieler.bild_ausblenden, spieler_2.nachname AS nachname_2, spieler_2.vorname AS vorname_2, spieler_2.geschlecht AS geschlecht_2, spieler_2.aktueller_verein_id AS aktueller_verein_id_2, spieler_2.bild_ausblenden AS bild_ausblenden_2"; - if ($spielerstatistik->tabellenwertung == 1) + //Mindestzahl an Spielen + $spielerstatistik->min_spiele = 0; + if (in_array($spielerstatistik->tabellenwertung, [4, 5])) { + $query = "SELECT siege + unentschieden + niederlagen AS spiele" + . "\n FROM #__sportsmanager_bestenliste_punkte" + . "\n WHERE bestenliste_id = $spielerstatistik->bestenliste_id" + . "\n ORDER BY spiele DESC;"; + $max_spiele = loadResult($db, $query); + $spielerstatistik->min_spiele = round($max_spiele/2); + } + $query = "SELECT #__sportsmanager_bestenliste_punkte.*, #__sportsmanager_spieler.nachname, team.teamname," + . "\n siege + unentschieden + niederlagen AS spiele," + . "\n #__sportsmanager_spieler.vorname, #__sportsmanager_spieler.geschlecht," + . "\n #__sportsmanager_spieler.aktueller_verein_id, #__sportsmanager_spieler.bild_ausblenden," + . "\n spieler_2.nachname AS nachname_2, spieler_2.vorname AS vorname_2," + . "\n spieler_2.geschlecht AS geschlecht_2, spieler_2.aktueller_verein_id AS aktueller_verein_id_2," + . "\n spieler_2.bild_ausblenden AS bild_ausblenden_2," + . "\n IF(siege > 0 OR unentschieden > 0, ROUND(((siege * 2 + unentschieden)*100) / ((siege + unentschieden + niederlagen)*2)), 0) AS quotient"; + if ($spielerstatistik->tabellenwertung == 0){ + $query .= "\n , 0 AS leistungsindex"; + } else if ($spielerstatistik->tabellenwertung == 1){ $query .= ", IF(spielpunkte_gewonnen > 0 OR spielpunkte_verloren > 0, spielpunkte_gewonnen * spielpunkte_gewonnen * 100 / (spielpunkte_gewonnen + spielpunkte_verloren), 0) AS leistungsindex"; - else if ($spielerstatistik->tabellenwertung == 2) - $query .= ", IF(punkte_gewonnen > 0 OR punkte_verloren > 0, siege * punkte_gewonnen * 10 / (punkte_gewonnen + punkte_verloren), 0) AS leistungsindex"; - $query .= "\n FROM #__sportsmanager_bestenliste_punkte" + } else if ($spielerstatistik->tabellenwertung == 2){ + $query .= ", IF(punkte_gewonnen > 0 OR punkte_verloren > 0, ROUND(siege * punkte_gewonnen * 10 / (punkte_gewonnen + punkte_verloren)), 0) AS leistungsindex"; + } else if ($spielerstatistik->tabellenwertung == 3){ + $query .= "\n , IF(punkte_gewonnen > 0 OR punkte_verloren > 0, siege * 2 + unentschieden + punkte_gewonnen - punkte_verloren, 0) AS leistungsindex"; + } else if ($spielerstatistik->tabellenwertung == 4){ + $query .= "\n , IF(punkte_gewonnen > 0 OR punkte_verloren > 0, ROUND(punkte_gewonnen*100 / (punkte_gewonnen + punkte_verloren),2), 0) AS leistungsindex"; + } else if ($spielerstatistik->tabellenwertung == 5){ + $query .= "\n , IF(punkte_gewonnen > 0 OR punkte_verloren > 0, ROUND(spielpunkte_gewonnen / (siege + unentschieden + niederlagen),2), 0) AS leistungsindex"; + } + $query .= "\n FROM #__sportsmanager_bestenliste_punkte" . "\n LEFT JOIN #__sportsmanager_spieler USING (spieler_id)" + . "\n LEFT JOIN (SELECT team_id, teamname FROM #__sportsmanager_team) AS team ON #__sportsmanager_bestenliste_punkte.team_id = team.team_id" . "\n LEFT JOIN #__sportsmanager_spieler AS spieler_2 ON spieler_2.spieler_id = spieler_2_id" - . "\n WHERE bestenliste_id = $spielerstatistik->bestenliste_id"; + . "\n WHERE bestenliste_id = $spielerstatistik->bestenliste_id" + . "\n AND siege + unentschieden + niederlagen >= $spielerstatistik->min_spiele"; if ($spielerstatistik->tabellenwertung == 0) $query .= "\n ORDER BY spielpunkte_gewonnen DESC, spielpunkte_verloren, punkte_gewonnen - punkte_verloren DESC, nachname, vorname"; else - $query .= "\n ORDER BY leistungsindex DESC, spielpunkte_gewonnen DESC, spielpunkte_verloren, punkte_gewonnen - punkte_verloren DESC, nachname, vorname"; - $spielerstatistik_punkte = loadObjectList($db, $query); + $query .= "\n ORDER BY leistungsindex DESC, quotient DESC, punkte_gewonnen - punkte_verloren DESC, nachname, vorname"; + $spielerstatistik_punkte = loadObjectList($db, $query); - HTML_sportsmanager::spielerstatistik($spielerstatistik, $spielerstatistik_punkte, FALSE, 0, 0, $details_anzeigen); + HTML_sportsmanager::spielerstatistik($spielerstatistik, $spielerstatistik_punkte, FALSE, 0, 0, 0, $details_anzeigen); } administrationFooter(); @@ -7368,6 +7455,7 @@ function spielerstatistiken(): void function spielerstatistik(): void { $db = getDatabase(); + global $params; $jInput = Factory::getContainer()->get(SiteApplication::class)->input; $id = $jInput->get('id', 0, 'INT'); @@ -7383,7 +7471,10 @@ function spielerstatistik(): void } } $details_anzeigen = currentUserHasAccessToDetails(); + $filter_min_spiele = $jInput->get('filter_min_spiele', 999, 'INT'); $filter_saison_id = $jInput->get('filter_saison_id', 0, 'INT'); + $filter_teams = $jInput->get('filter_teams', 0, 'INT'); + if ($filter_saison_id == 0) { $filter_saison_id = $jInput->cookie->get('sportsmanager_filter_saison_id', 0, 'INT'); } @@ -7419,29 +7510,80 @@ function spielerstatistik(): void } $spielerstatistik = $rows[0]; + //Mindestzahl an Spielen + $spiele = null; + $spielerstatistik->min_spiele = 0; + if (in_array($spielerstatistik->tabellenwertung, [4, 5])) { + $query = "SELECT siege + unentschieden + niederlagen AS spiele" + . "\n FROM #__sportsmanager_bestenliste_punkte" + . "\n WHERE bestenliste_id = $id" + . "\n ORDER BY spiele DESC;"; + $max_spiele = loadResult($db, $query); + if ($max_spiele > 0){ + $offset = $max_spiele/10; + $spiele[0] = "Alle zeigen"; + for($i = 1; $i <= 10; $i++){ + $spiele[round($offset*$i)] = $i*10 . "%"; + } + } + $spielerstatistik->max_spiele = $max_spiele; + if ($filter_min_spiele == 999) + $spielerstatistik->min_spiele = round($max_spiele/2); + else + $spielerstatistik->min_spiele = $filter_min_spiele; + } + // Spielerstatistikpunkte ermitteln - $query = "SELECT #__sportsmanager_bestenliste_punkte.*, #__sportsmanager_spieler.nachname, #__sportsmanager_spieler.vorname, #__sportsmanager_spieler.geschlecht, #__sportsmanager_spieler.aktueller_verein_id, #__sportsmanager_spieler.bild_ausblenden, spieler_2.nachname AS nachname_2, spieler_2.vorname AS vorname_2, spieler_2.geschlecht AS geschlecht_2, spieler_2.aktueller_verein_id AS aktueller_verein_id_2, spieler_2.bild_ausblenden AS bild_ausblenden_2"; - if ($spielerstatistik->tabellenwertung == 1) { - $query .= ", IF(spielpunkte_gewonnen > 0 OR spielpunkte_verloren > 0, spielpunkte_gewonnen * spielpunkte_gewonnen * 100 / (spielpunkte_gewonnen + spielpunkte_verloren), 0) AS leistungsindex"; - } else if ($spielerstatistik->tabellenwertung == 2) { - $query .= ", IF(punkte_gewonnen > 0 OR punkte_verloren > 0, siege * punkte_gewonnen * 10 / (punkte_gewonnen + punkte_verloren), 0) AS leistungsindex"; - } + $query = "SELECT #__sportsmanager_bestenliste_punkte.*, #__sportsmanager_spieler.nachname, #__sportsmanager_spieler.vorname, team.teamname," + . "\n siege + unentschieden + niederlagen AS spiele," + . "\n #__sportsmanager_spieler.geschlecht, #__sportsmanager_spieler.aktueller_verein_id, #__sportsmanager_spieler.bild_ausblenden," + . "\n spieler_2.nachname AS nachname_2, spieler_2.vorname AS vorname_2, spieler_2.geschlecht AS geschlecht_2," + . "\n spieler_2.aktueller_verein_id AS aktueller_verein_id_2, spieler_2.bild_ausblenden AS bild_ausblenden_2," + . "\n IF(siege > 0 OR unentschieden > 0, ROUND(((siege * 2 + unentschieden)*100) / ((siege + unentschieden + niederlagen)*2)), 0) AS quotient"; + if ($spielerstatistik->tabellenwertung == 0){ + $query .= "\n , spielpunkte_gewonnen AS leistungsindex"; + } else if ($spielerstatistik->tabellenwertung == 1){ + $query .= "\n , IF(spielpunkte_gewonnen > 0 OR spielpunkte_verloren > 0, spielpunkte_gewonnen * spielpunkte_gewonnen * 100 / (spielpunkte_gewonnen + spielpunkte_verloren), 0) AS leistungsindex"; + } else if ($spielerstatistik->tabellenwertung == 2){ + $query .= "\n , IF(punkte_gewonnen > 0 OR punkte_verloren > 0, ROUND(siege * punkte_gewonnen * 10 / (punkte_gewonnen + punkte_verloren)), 0) AS leistungsindex"; + } else if ($spielerstatistik->tabellenwertung == 3){ + $query .= "\n , IF(punkte_gewonnen > 0 OR punkte_verloren > 0, siege * 2 + unentschieden + punkte_gewonnen - punkte_verloren, 0) AS leistungsindex"; + } else if ($spielerstatistik->tabellenwertung == 4){ + $query .= "\n , IF(punkte_gewonnen > 0 OR punkte_verloren > 0, ROUND(punkte_gewonnen*100 / (punkte_gewonnen + punkte_verloren),2), 0) AS leistungsindex"; + } else if ($spielerstatistik->tabellenwertung == 5){ + $query .= "\n , IF(punkte_gewonnen > 0 OR punkte_verloren > 0, ROUND(spielpunkte_gewonnen / (siege + unentschieden + niederlagen),2), 0) AS leistungsindex"; + } $query .= "\n FROM #__sportsmanager_bestenliste_punkte" . "\n LEFT JOIN #__sportsmanager_spieler USING (spieler_id)" + . "\n LEFT JOIN (SELECT team_id, teamname FROM #__sportsmanager_team) AS team ON #__sportsmanager_bestenliste_punkte.team_id = team.team_id" . "\n LEFT JOIN #__sportsmanager_spieler AS spieler_2 ON spieler_2.spieler_id = spieler_2_id" - . "\n WHERE bestenliste_id = $spielerstatistik->bestenliste_id"; + . "\n WHERE bestenliste_id = $spielerstatistik->bestenliste_id" + . "\n AND siege + unentschieden + niederlagen >= $spielerstatistik->min_spiele"; if ($spielerstatistik->tabellenwertung == 0) { $query .= "\n ORDER BY spielpunkte_gewonnen DESC, spielpunkte_verloren, punkte_gewonnen - punkte_verloren DESC, nachname, vorname"; } else { - $query .= "\n ORDER BY leistungsindex DESC, spielpunkte_gewonnen DESC, spielpunkte_verloren, punkte_gewonnen - punkte_verloren DESC, nachname, vorname"; + $query .= "\n ORDER BY leistungsindex DESC, quotient DESC, spielpunkte_gewonnen - spielpunkte_verloren DESC, punkte_gewonnen - punkte_verloren DESC, nachname, vorname"; } $spielerstatistik_punkte = loadObjectList($db, $query); + //Dropdown teams + $query = "SELECT 0 AS team_id, '" . Text::_('COM_SPORTSMANAGER_SELECT_ALL') . "' AS teamname, 0 AS sort_order" + . "\n UNION" + . "\n SELECT team.team_id, team.teamname, 1 AS sort_order" + . "\n FROM #__sportsmanager_bestenliste_punkte" + . "\n LEFT JOIN (SELECT team_id, teamname FROM #__sportsmanager_team) AS team" + . "\n ON #__sportsmanager_bestenliste_punkte.team_id = team.team_id" + . "\n WHERE bestenliste_id = $spielerstatistik->bestenliste_id" + . "\n GROUP BY team.team_id" + . "\n ORDER BY sort_order, teamname;"; + $db->setQuery($query); + $teams = $db->loadObjectList('team_id'); + // Vorherige und nächste Spielerstatistik ermitteln $query = "SELECT *" . "\n FROM #__sportsmanager_bestenliste" . "\n WHERE status > 0" . kategorieFilter("AND kategorie IN") . ($filter_saison_id != 0 ? " AND saison_id = $filter_saison_id" : "") - . "\n ORDER BY reihenfolge, bezeichnung, kategorie"; + . "\n ORDER BY reihenfolge, bezeichnung, kategorie"; $rows = loadObjectList($db, $query); $n = count($rows); @@ -7463,7 +7605,8 @@ function spielerstatistik(): void if (isJson()) { JSON_sportsmanager::spielerstatistik($spielerstatistik_punkte); } else { - HTML_sportsmanager::spielerstatistik($spielerstatistik, $spielerstatistik_punkte, TRUE, $vorherige_spielerstatistik_id, $naechste_spielerstatistik_id, $details_anzeigen); + HTML_sportsmanager::spielerstatistikenHeader($params->get('titel'), $params->get('beschreibung'), $saisons, $filter_saison_id, $id, $spiele, $spielerstatistik->min_spiele, $teams, $filter_teams); + HTML_sportsmanager::spielerstatistik($spielerstatistik, $spielerstatistik_punkte, TRUE, $filter_teams, $vorherige_spielerstatistik_id, $naechste_spielerstatistik_id, $details_anzeigen); } } 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 bfdebfd..9ff5e9e 100644 --- a/src/structure/components/com_sportsmanager/views/sportsmanager/view.html.php +++ b/src/structure/components/com_sportsmanager/views/sportsmanager/view.html.php @@ -1093,17 +1093,17 @@ static function begegnungenAnzeigen($veranstaltung, $modus, $rows, $zeitfenster, $ergebnis_vorhanden = $row->heim_punkte != null || $row->gast_punkte != null; if ($zeitfenster == 0 && $veranstaltung != null) { if ($veranstaltung->unterteilung == 0 || $veranstaltung->unterteilung == 1) { - + if ($row->spieltag > 999) $Spieltagname = htmlentities_utf8(Rundenbezeichnung($row->spieltag, $veranstaltung->unterteilung == 0, true)); else if ($veranstaltung->unterteilung == 1) $Spieltagname = "Runde " . $row->spieltag; else $Spieltagname = "Spieltag " . $row->spieltag; - - if ($row->spieltag < 999 && $veranstaltung->spieltag_titel_zeigen == 1 && $row->spieltag_titel != "") + + if ($row->spieltag < 999 && $veranstaltung->spieltag_titel_zeigen == 1 && $row->spieltag_titel != "") $Spieltagname .= " - " . $row->spieltag_titel; - + if ($Spieltagname_Buffer != $Spieltagname || $spielort_name != $row->spielort_name) { $spieltag = $row->spieltag; $spielort_name = $row->spielort_name; @@ -1697,7 +1697,6 @@ if (count($spiele) > 0) { static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spieltage, $alleine_angezeigt, int $praesentation = 0): void { global $params; - if (count($teams) > 0) { if ($alleine_angezeigt && $veranstaltung->tabellenwertung >= -1 && $veranstaltung->tabellenwertung <= 11 && count($spieltage) > 1) { ?> @@ -1845,6 +1844,7 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie $punkte_quotient = 0; $buchholz1_wert = 0; $buchholz2_wert = 0; + $gesamtpunkte_verloren = 0; $k = 0; foreach ($teams as $team) { ?> @@ -1875,6 +1875,12 @@ static function tabelleAnzeigen($veranstaltung, $modus, $teams, $spieltag, $spie $buchholz1_wert = $team->buchholz1; $buchholz2_wert = $team->buchholz2; } + if (in_array($veranstaltung->tabellenwertung, [7,8,9])){ + $gesamtpunkte_verloren = $team->niederlagen; + } + if (in_array($veranstaltung->tabellenwertung, [1,2,3])){ + $gesamtpunkte_verloren = $team->niederlagen * 2 + $team->unentschieden; + } ?>