mirror of
https://github.com/Deutscher-Tischfussballbund/com_sportsmanager.git
synced 2026-06-10 06:27:52 +00:00
Effizienzindex und Punkteschnitt zu Spielerstatistoken hinzugefügt.
This commit is contained in:
@@ -7312,6 +7312,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,10 +7342,22 @@ 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);
|
||||
|
||||
foreach ($spielerstatistiken as $spielerstatistik) {
|
||||
//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 = $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,"
|
||||
. "\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,"
|
||||
@@ -7359,11 +7372,16 @@ function spielerstatistiken(): void
|
||||
$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(punkte_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 #__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
|
||||
@@ -7379,6 +7397,7 @@ function spielerstatistiken(): void
|
||||
function spielerstatistik(): void
|
||||
{
|
||||
$db = getDatabase();
|
||||
global $params;
|
||||
$jInput = Factory::getContainer()->get(SiteApplication::class)->input;
|
||||
|
||||
$id = $jInput->get('id', 0, 'INT');
|
||||
@@ -7394,6 +7413,7 @@ 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');
|
||||
if ($filter_saison_id == 0) {
|
||||
$filter_saison_id = $jInput->cookie->get('sportsmanager_filter_saison_id', 0, 'INT');
|
||||
@@ -7430,8 +7450,32 @@ 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 if ($filter_min_spiele != 999)
|
||||
$spielerstatistik->min_spiele = $filter_min_spiele;
|
||||
}
|
||||
|
||||
// Spielerstatistikpunkte ermitteln
|
||||
$query = "SELECT #__sportsmanager_bestenliste_punkte.*, #__sportsmanager_spieler.nachname, #__sportsmanager_spieler.vorname,"
|
||||
. "\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,"
|
||||
@@ -7444,11 +7488,16 @@ function spielerstatistik(): void
|
||||
$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(punkte_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 #__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 {
|
||||
@@ -7482,6 +7531,7 @@ function spielerstatistik(): void
|
||||
if (isJson()) {
|
||||
JSON_sportsmanager::spielerstatistik($spielerstatistik_punkte);
|
||||
} else {
|
||||
HTML_sportsmanager::spielerstatistikenHeader($params->get('titel'), $params->get('beschreibung'), $saisons, $filter_saison_id, $id, $spiele, $spielerstatistik->min_spiele);
|
||||
HTML_sportsmanager::spielerstatistik($spielerstatistik, $spielerstatistik_punkte, TRUE, $vorherige_spielerstatistik_id, $naechste_spielerstatistik_id, $details_anzeigen);
|
||||
}
|
||||
|
||||
|
||||
@@ -6016,9 +6016,10 @@ static function turniervoranmeldungen($disziplin, $meldungenSpielerSortiert, $me
|
||||
<?php
|
||||
}
|
||||
|
||||
static function spielerstatistikenHeader($titel, $beschreibung, $saisons, $filter_saison_id): void
|
||||
static function spielerstatistikenHeader($titel, $beschreibung, $saisons, $filter_saison_id, $id, $spiele, $min_spiele): void
|
||||
{
|
||||
global $params;
|
||||
|
||||
//SpielerstatistikenHeader
|
||||
if (!empty($titel)) { ?>
|
||||
<div
|
||||
@@ -6034,17 +6035,18 @@ static function spielerstatistikenHeader($titel, $beschreibung, $saisons, $filte
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
if (count($saisons) > 0) {
|
||||
if (!empty($saisons) || !empty($spiele)) {
|
||||
?>
|
||||
<form action="<?php echo SportsManagerURL(); ?>" method="post" name="adminForm" id="adminForm">
|
||||
<div class="uk-overflow-auto">
|
||||
<table class="uk-table contentpaneopen<?php echo $params->get('pageclass_sfx'); ?>">
|
||||
<tr>
|
||||
<td nowrap>
|
||||
<?PHP if (!empty($saisons)){ ?>
|
||||
<label
|
||||
for="filter_saison_id"><?php echo Text::_('COM_SPORTSMANAGER_SEASON'); ?>
|
||||
:</label>
|
||||
<select class="uk-select uk-form-width-medium" name="filter_saison_id"
|
||||
<select class="uk-select uk-form-width-small" name="filter_saison_id"
|
||||
id="filter_saison_id" size="1"
|
||||
onChange="document.adminForm.submit();">
|
||||
<?php
|
||||
@@ -6052,6 +6054,22 @@ static function spielerstatistikenHeader($titel, $beschreibung, $saisons, $filte
|
||||
echo "<option value=\"" . $saison->saison_id . "\" " . ($filter_saison_id == $saison->saison_id ? "selected" : "") . ">" . htmlentities_utf8($saison->saisonbezeichnung) . "</option>";
|
||||
?>
|
||||
</select>
|
||||
<?PHP
|
||||
}
|
||||
if (!empty($spiele)){
|
||||
?>
|
||||
<label
|
||||
for="filter_min_matches"><?php echo Text::_('COM_SPORTSMANAGER_MIN_MATCHES'); ?>
|
||||
:</label>
|
||||
<select class="uk-select uk-form-width-small" name="filter_min_spiele"
|
||||
id="filter_min_matches" size="1"
|
||||
onChange="document.adminForm.task.value='spielerstatistik'; document.adminForm.submit();">
|
||||
<?php
|
||||
foreach ($spiele as $key => $value)
|
||||
echo "<option value=\"" . $key . "\" " . ($min_spiele == $key ? "selected" : "") . ">" . htmlentities_utf8($value) . "</option>";
|
||||
?>
|
||||
</select>
|
||||
<?PHP } ?>
|
||||
<input type="submit" name="ok"
|
||||
value="<?php echo Text::_('COM_SPORTSMANAGER_GO'); ?>"
|
||||
class="button uk-button uk-button-primary"/>
|
||||
@@ -6060,6 +6078,7 @@ static function spielerstatistikenHeader($titel, $beschreibung, $saisons, $filte
|
||||
</table>
|
||||
</div>
|
||||
<input type="hidden" name="task" value="spielerstatistiken"/>
|
||||
<input type="hidden" name="id" value="<?PHP echo $id; ?>"/>
|
||||
</form>
|
||||
<?php
|
||||
}
|
||||
|
||||
@@ -6362,12 +6362,13 @@ class HTML_sportsmanager_admin
|
||||
<select class="uk-select uk-form-width-large" name="tabellenwertung"
|
||||
id="table_evaluation" size="1">
|
||||
<?php
|
||||
$typ = array(0 => Text::_('COM_SPORTSMANAGER_POINTS_WON_LOST_DIFFERENCE'),
|
||||
1 => Text::_('COM_SPORTSMANAGER_PERFORMANCE_INDEX'),
|
||||
$typ = array(0 => Text::_('COM_SPORTSMANAGER_PERFORMANCE_INDEX0'),
|
||||
1 => Text::_('COM_SPORTSMANAGER_PERFORMANCE_INDEX1'),
|
||||
2 => Text::_('COM_SPORTSMANAGER_PERFORMANCE_INDEX2'),
|
||||
3 => Text::_('COM_SPORTSMANAGER_PERFORMANCE_INDEX3'),
|
||||
4 => Text::_('COM_SPORTSMANAGER_PERFORMANCE_INDEX4'));
|
||||
for ($i = 0; $i <= 3; $i++) {
|
||||
4 => Text::_('COM_SPORTSMANAGER_PERFORMANCE_INDEX4'),
|
||||
5 => Text::_('COM_SPORTSMANAGER_PERFORMANCE_INDEX5'));
|
||||
for ($i = 0; $i <= 5; $i++) {
|
||||
echo "<option value=\"" . $i . "\"" . ($spielerstatistik != null ? ($spielerstatistik->tabellenwertung == $i ? " selected" : "") : "") . ">" . htmlentities_utf8($typ[$i]) . "</option>";
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -550,11 +550,12 @@ 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_POINTS_WON_LOST_DIFFERENCE="Spielpunkte gewonnen, Spielpunkte verloren, Punktedifferenz"
|
||||
COM_SPORTSMANAGER_PERFORMANCE_INDEX="Leistungsindex (SP+ * SP+ * 100) / (SP+ + SP-), Spielpunkte gewonnen, ..."
|
||||
COM_SPORTSMANAGER_PERFORMANCE_INDEX0="Spielpunkte gewonnen, Spielpunkte verloren, Punktedifferenz"
|
||||
COM_SPORTSMANAGER_PERFORMANCE_INDEX1="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_PERFORMANCE_INDEX5="Punkteschnitt (SP+ / Anzahl Sätze)"
|
||||
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"
|
||||
@@ -1101,3 +1102,4 @@ COM_SPORTSMANAGER_REALLY_DELETE_MATCH_REPORT="Der Spielbericht wird zusammen mit
|
||||
COM_SPORTSMANAGER_MATCH_REPORT_DELETED="Spielbericht gelöscht"
|
||||
COM_SPORTSMANAGER_MATCH_REPORT_WAS_DELETED="Der Spielbericht wurde erfolgreich gelöscht!"
|
||||
COM_SPORTSMANAGER_MATCH_REPORT_CORRECTED="Spielberichtskorrektur"
|
||||
COM_SPORTSMANAGER_MIN_MATCHES="Mindestzahl Spiele"
|
||||
@@ -550,11 +550,12 @@ 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_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_INDEX0="Game points won, game points lost, point difference"
|
||||
COM_SPORTSMANAGER_PERFORMANCE_INDEX1="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_PERFORMANCE_INDEX5="Set point average (SP+ / count sets)"
|
||||
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"
|
||||
@@ -1101,3 +1102,4 @@ COM_SPORTSMANAGER_REALLY_DELETE_MATCH_REPORT="The match report and all its histo
|
||||
COM_SPORTSMANAGER_MATCH_REPORT_DELETED="Match report deleted"
|
||||
COM_SPORTSMANAGER_MATCH_REPORT_WAS_DELETED="The match report has been successfully deleted!"
|
||||
COM_SPORTSMANAGER_MATCH_REPORT_CORRECTED="Match report corrected"
|
||||
COM_SPORTSMANAGER_MIN_MATCHES="Min count matches"
|
||||
Reference in New Issue
Block a user