mirror of
https://github.com/Deutscher-Tischfussballbund/com_sportsmanager.git
synced 2026-06-10 06:27:52 +00:00
Merge pull request #278 from Deutscher-Tischfussballbund/sportsmanager2-issue276
Optimization of direct comparison
This commit is contained in:
@@ -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;
|
||||
}
|
||||
@@ -5270,7 +5293,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 +5307,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";
|
||||
|
||||
@@ -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) {
|
||||
?>
|
||||
|
||||
@@ -9435,12 +9435,16 @@ static function adminVerbandsorganMitglieder($rows,$verbandsorgan): void
|
||||
:</label>
|
||||
</td>
|
||||
<td nowrap>
|
||||
<select class="uk-select uk-form-width-medium" name="direktervergleich" id="dd_hthr" size="1">
|
||||
<select class="uk-select uk-form-width-large" name="direktervergleich" id="dd_hthr" size="1">
|
||||
<?php
|
||||
$direktervergleich = array(Text::_('COM_SPORTSMANAGER_NO'), Text::_('COM_SPORTSMANAGER_YES'));
|
||||
for ($i = 0; $i <= 1; $i++) {
|
||||
echo "<option value=\"" . $i . "\"" . ($row != null ? ($row->direktervergleich == $i ? " selected" : "") : "") . ">" . htmlentities_utf8($direktervergleich[$i]) . "</option>";
|
||||
}
|
||||
$typ = array(
|
||||
0 => Text::_('COM_SPORTSMANAGER_HEAD_TO_HEAD_OPT_NOT'),
|
||||
1 => Text::_('COM_SPORTSMANAGER_HEAD_TO_HEAD_OPT_POINTS'),
|
||||
2 => Text::_('COM_SPORTSMANAGER_HEAD_TO_HEAD_OPT_SETS'),
|
||||
3 => Text::_('COM_SPORTSMANAGER_HEAD_TO_HEAD_OPT_GOALS')
|
||||
);
|
||||
foreach ($typ as $typ_wert => $typ_bezeichnung)
|
||||
echo "<option value=\"" . $typ_wert . "\"" . ($row != null ? ($row->direktervergleich == $typ_wert ? " selected" : "") : "") . ">" . htmlentities_utf8($typ_bezeichnung) . "</option>";
|
||||
?>
|
||||
</select>
|
||||
</td>
|
||||
@@ -9662,7 +9666,7 @@ static function adminVerbandsorganMitglieder($rows,$verbandsorgan): void
|
||||
|
||||
function pruefeAnzeige() {
|
||||
const wert = parseInt(dropdown.value);
|
||||
if (wert >= 1 && wert <= 9) {
|
||||
if (wert >= 1 && wert <= 11) {
|
||||
zeile.style.display = "";
|
||||
} else {
|
||||
zeile.style.display = "none";
|
||||
|
||||
@@ -550,6 +550,10 @@ COM_SPORTSMANAGER_NO_RATING="Keine Wertung"
|
||||
COM_SPORTSMANAGER_TEAM_COMPETITIONS="Mannschaftswettbewerbe"
|
||||
COM_SPORTSMANAGER_TABLE_SUMMARY="Tabellenwertung"
|
||||
COM_SPORTSMANAGER_HEAD_TO_HEAD_RECORD="Direkter Vergleich"
|
||||
COM_SPORTSMANAGER_HEAD_TO_HEAD_OPT_NOT="deaktiviert"
|
||||
COM_SPORTSMANAGER_HEAD_TO_HEAD_OPT_POINTS="bei gleicher Punktzahl"
|
||||
COM_SPORTSMANAGER_HEAD_TO_HEAD_OPT_SETS="bei gleicher Punktzahl, Satzpunkte"
|
||||
COM_SPORTSMANAGER_HEAD_TO_HEAD_OPT_GOALS="bei gleicher Punktzahl, Satzpunkte, Tore"
|
||||
COM_SPORTSMANAGER_POINTS_WON_LOST_DIFFERENCE="Spielpunkte gewonnen, Spielpunkte verloren, Punktedifferenz"
|
||||
COM_SPORTSMANAGER_PERFORMANCE_INDEX="Leistungsindex (SP+ * SP+ * 100) / (SP+ + SP-), Spielpunkte gewonnen, ..."
|
||||
COM_SPORTSMANAGER_PERFORMANCE_INDEX2="Leistungsindex (S * P+ * 10) / (P+ + P-), Spielpunkte gewonnen, ..."
|
||||
|
||||
@@ -550,6 +550,10 @@ COM_SPORTSMANAGER_NO_RATING="No rating"
|
||||
COM_SPORTSMANAGER_TEAM_COMPETITIONS="Team competitions"
|
||||
COM_SPORTSMANAGER_TABLE_SUMMARY="Table rating"
|
||||
COM_SPORTSMANAGER_HEAD_TO_HEAD_RECORD="Head-to-head record"
|
||||
COM_SPORTSMANAGER_HEAD_TO_HEAD_OPT_NOT="Off"
|
||||
COM_SPORTSMANAGER_HEAD_TO_HEAD_OPT_POINTS="Tie: pts"
|
||||
COM_SPORTSMANAGER_HEAD_TO_HEAD_OPT_SETS="Tie: pts, set points"
|
||||
COM_SPORTSMANAGER_HEAD_TO_HEAD_OPT_GOALS="Tie: pts, set points, goals"
|
||||
COM_SPORTSMANAGER_POINTS_WON_LOST_DIFFERENCE="Game points won, game points lost, point difference"
|
||||
COM_SPORTSMANAGER_PERFORMANCE_INDEX="Performance index (GP+ * GP+ * 100) / (GP+ + GP-), game points won, ..."
|
||||
COM_SPORTSMANAGER_PERFORMANCE_INDEX2="Performance index (games * P+ * 10) / (P+ + P-), game points won, ..."
|
||||
|
||||
Reference in New Issue
Block a user