Spielerstatistik Race Permormance Index hinzugefügt

This commit is contained in:
Jürgen Meyer
2026-04-02 18:48:43 +02:00
parent cb0db3833c
commit c92774b27d
5 changed files with 81 additions and 50 deletions
@@ -7344,11 +7344,22 @@ function spielerstatistiken(): void
HTML_sportsmanager::spielerstatistikenHeader($params->get('titel'), $params->get('beschreibung'), $saisons, $filter_saison_id);
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)
$query = "SELECT #__sportsmanager_bestenliste_punkte.*, #__sportsmanager_spieler.nachname,"
. "\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";
} 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";
}
$query .= "\n FROM #__sportsmanager_bestenliste_punkte"
. "\n LEFT JOIN #__sportsmanager_spieler USING (spieler_id)"
. "\n LEFT JOIN #__sportsmanager_spieler AS spieler_2 ON spieler_2.spieler_id = spieler_2_id"
@@ -7356,7 +7367,7 @@ function spielerstatistiken(): void
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, punkte_gewonnen - punkte_verloren DESC, nachname, vorname";
$spielerstatistik_punkte = loadObjectList($db, $query);
HTML_sportsmanager::spielerstatistik($spielerstatistik, $spielerstatistik_punkte, FALSE, 0, 0, $details_anzeigen);
@@ -7420,11 +7431,19 @@ function spielerstatistik(): void
$spielerstatistik = $rows[0];
// 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 = "SELECT #__sportsmanager_bestenliste_punkte.*, #__sportsmanager_spieler.nachname, #__sportsmanager_spieler.vorname,"
. "\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 , 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 .= ", 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";
}
$query .= "\n FROM #__sportsmanager_bestenliste_punkte"
. "\n LEFT JOIN #__sportsmanager_spieler USING (spieler_id)"
@@ -7433,7 +7452,7 @@ function spielerstatistik(): void
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, punkte_gewonnen - punkte_verloren DESC, nachname, vorname";
}
$spielerstatistik_punkte = loadObjectList($db, $query);
@@ -6188,13 +6188,12 @@ static function spielerstatistik($spielerstatistik, $spielerstatistik_punkte, $a
if ($spielerstatistik->tabellenwertung > 0) {
?>
<th nowrap
title="<?php echo Text::_('COM_SPORTSMANAGER_PERFORMANCE_INDEX'); ?>">
title="<?php echo Text::_('COM_SPORTSMANAGER_PERFORMANCE_INDEX2'); ?>">
<strong><?php echo Text::_('COM_SPORTSMANAGER_PERFORMANCE_INDEX_SHORTCUT'); ?></strong>
</th>
<?php
}
} else {
?>
<th nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_GAMES'); ?></strong></th>
<th nowrap
title="<?php echo Text::_('COM_SPORTSMANAGER_GAME_POINTS'); ?>
<?php echo Text::_('COM_SPORTSMANAGER_WON'); ?>">
@@ -6205,6 +6204,23 @@ static function spielerstatistik($spielerstatistik, $spielerstatistik_punkte, $a
<?php echo Text::_('COM_SPORTSMANAGER_LOST'); ?>">
<strong><?php echo Text::_('COM_SPORTSMANAGER_GAME_POINTS_SHORTCUT'); ?>
-</strong></th>
<?php
}
?>
<th nowrap
title="<?php echo Text::_('COM_SPORTSMANAGER_RATE'); ?>">
<strong><?php echo Text::_('COM_SPORTSMANAGER_RATE_SHORTCUT'); ?></strong>
</th>
<th nowrap><strong><?php echo Text::_('COM_SPORTSMANAGER_GAMES'); ?></strong></th>
<th nowrap title="<?php echo Text::_('COM_SPORTSMANAGER_VICTORIES'); ?>">
<strong><?php echo Text::_('COM_SPORTSMANAGER_VICTORIES_SHORTCUT'); ?></strong>
</th>
<th nowrap title="<?php echo Text::_('COM_SPORTSMANAGER_DRAWS'); ?>">
<strong><?php echo Text::_('COM_SPORTSMANAGER_DRAWS_SHORTCUT'); ?></strong>
</th>
<th nowrap title="<?php echo Text::_('COM_SPORTSMANAGER_DEFEATS'); ?>">
<strong><?php echo Text::_('COM_SPORTSMANAGER_DEFEATS_SHORTCUT'); ?></strong>
</th>
<th nowrap
title="<?php echo Text::_('COM_SPORTSMANAGER_POINTS'); ?>
<?php echo Text::_('COM_SPORTSMANAGER_WON'); ?>">
@@ -6215,18 +6231,6 @@ static function spielerstatistik($spielerstatistik, $spielerstatistik_punkte, $a
<?php echo Text::_('COM_SPORTSMANAGER_LOST'); ?>">
<strong><?php echo Text::_('COM_SPORTSMANAGER_POINTS_SHORTCUT'); ?> -</strong>
</th>
<th nowrap
title="<?php echo Text::_('COM_SPORTSMANAGER_RATE'); ?>">
<strong><?php echo Text::_('COM_SPORTSMANAGER_RATE_SHORTCUT'); ?></strong>
</th>
<th nowrap title="<?php echo Text::_('COM_SPORTSMANAGER_VICTORIES'); ?>">
<strong><?php echo Text::_('COM_SPORTSMANAGER_VICTORIES_SHORTCUT'); ?></strong>
</th>
<th nowrap title="<?php echo Text::_('COM_SPORTSMANAGER_DRAWS'); ?>">
<strong><?php echo Text::_('COM_SPORTSMANAGER_DRAWS_SHORTCUT'); ?></strong></th>
<th nowrap title="<?php echo Text::_('COM_SPORTSMANAGER_DEFEATS'); ?>">
<strong><?php echo Text::_('COM_SPORTSMANAGER_DEFEATS_SHORTCUT'); ?></strong>
</th>
</tr>
<?php
@@ -6291,25 +6295,25 @@ static function spielerstatistik($spielerstatistik, $spielerstatistik_punkte, $a
if ($spielerstatistik->tabellenwertung != 0) {
?>
<td nowrap style="text-align: center">
<strong><?php echo round($row->leistungsindex); ?></strong>
<strong><?php echo $row->leistungsindex; ?></strong>
</td>
<?php
} else {
?>
<td nowrap style="text-align: center">
<strong><?php echo $row->punkte_gewonnen; ?></strong>
<td nowrap style="text-align: center"><?php echo $row->spielpunkte_verloren; ?></td>
</td>
<?php
}
$spiele_gesamt = $row->siege + $row->niederlagen + $row->unentschieden;
?>
<td nowrap
style="text-align: center"><?php echo $row->siege + $row->niederlagen + $row->unentschieden; ?></td>
<td nowrap
style="text-align: center"><?php echo ($spielerstatistik->tabellenwertung == 0 ? "<strong>" : "") . $row->spielpunkte_gewonnen . ($spielerstatistik->tabellenwertung == 0 ? "<strong>" : ""); ?></strong></td>
<td nowrap
style="text-align: center"><?php echo $row->spielpunkte_verloren; ?></td>
<td nowrap style="text-align: center"><?php echo $row->punkte_gewonnen; ?></td>
<td nowrap style="text-align: center"><?php echo $row->punkte_verloren; ?></td>
<td nowrap
style="text-align: center"><?php echo ($spiele_gesamt > 0) ? round((($row->siege * 2 + $row->unentschieden) / ($spiele_gesamt * 2)) * 100) . "%" : "-"; ?></td>
<td nowrap style="text-align: center"><?php echo $row->quotient . " %"; ?></td>
<td nowrap style="text-align: center"><?php echo $row->siege + $row->niederlagen + $row->unentschieden; ?></td>
<td nowrap style="text-align: center"><?php echo $row->siege; ?></td>
<td nowrap style="text-align: center"><?php echo $row->unentschieden; ?></td>
<td nowrap style="text-align: center"><?php echo $row->niederlagen; ?></td>
<td nowrap style="text-align: center"><?php echo $row->punkte_gewonnen; ?></td>
<td nowrap style="text-align: center"><?php echo $row->punkte_verloren; ?></td>
</tr>
<?php
$spielpunkte_gewonnen = $row->spielpunkte_gewonnen;
@@ -6362,8 +6362,12 @@ class HTML_sportsmanager_admin
<select class="uk-select uk-form-width-large" name="tabellenwertung"
id="table_evaluation" size="1">
<?php
$typ = array(Text::_('COM_SPORTSMANAGER_POINTS_WON_LOST_DIFFERENCE'), Text::_('COM_SPORTSMANAGER_PERFORMANCE_INDEX'), Text::_('COM_SPORTSMANAGER_PERFORMANCE_INDEX2'));
for ($i = 0; $i <= 2; $i++) {
$typ = array(0 => Text::_('COM_SPORTSMANAGER_POINTS_WON_LOST_DIFFERENCE'),
1 => Text::_('COM_SPORTSMANAGER_PERFORMANCE_INDEX'),
2 => Text::_('COM_SPORTSMANAGER_PERFORMANCE_INDEX2'),
3 => Text::_('COM_SPORTSMANAGER_PERFORMANCE_INDEX3'),
4 => Text::_('COM_SPORTSMANAGER_PERFORMANCE_INDEX4'));
for ($i = 0; $i <= 3; $i++) {
echo "<option value=\"" . $i . "\"" . ($spielerstatistik != null ? ($spielerstatistik->tabellenwertung == $i ? " selected" : "") : "") . ">" . htmlentities_utf8($typ[$i]) . "</option>";
}
?>
@@ -553,6 +553,8 @@ COM_SPORTSMANAGER_HEAD_TO_HEAD_RECORD="Direkter Vergleich"
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, ..."
COM_SPORTSMANAGER_PERFORMANCE_INDEX3="Race Performance Index (Siege*2 + Unentschieden + Tordifferenz)"
COM_SPORTSMANAGER_PERFORMANCE_INDEX4="Effizienzindex (G+ / (G+ + G-))"
COM_SPORTSMANAGER_INDIVIDUAL_STATISTICS="Einzelstatistik aus allen Spielen"
COM_SPORTSMANAGER_INDIVIDUAL_STATISTICS_SINGLES="Einzelstatistik aus Einzel-Spielen"
COM_SPORTSMANAGER_INDIVIDUAL_STATISTICS_DOUBLES="Einzelstatistik aus Doppel-Spielen"
@@ -553,6 +553,8 @@ COM_SPORTSMANAGER_HEAD_TO_HEAD_RECORD="Head-to-head record"
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, ..."
COM_SPORTSMANAGER_PERFORMANCE_INDEX3="Race Performance Index (victories*2 + draws + goal difference)"
COM_SPORTSMANAGER_PERFORMANCE_INDEX4="Efficency index (G+ / (G+ + G-))"
COM_SPORTSMANAGER_INDIVIDUAL_STATISTICS="Individual statistics of all games"
COM_SPORTSMANAGER_INDIVIDUAL_STATISTICS_SINGLES="Individual statistics of singles games"
COM_SPORTSMANAGER_INDIVIDUAL_STATISTICS_DOUBLES="Individual statistics of doubles games"