mirror of
https://github.com/Deutscher-Tischfussballbund/com_sportsmanager.git
synced 2026-09-11 18:41:50 +00:00
Ergebnisanzeige, Spielerstatistik, und die Spielfolge bleibt schmal
Drei weitere Punkte aus dem Review. 1. ERGEBNISANZEIGE BEI SAETZEN. Im Spielbericht stand je Spiel NUR ergebnis_detailliert. Bei reinem „Mehrere" ist das derselbe Satzstand — bei Erfassung je Satz sind es die Saetze, und dann fehlte, wer das Spiel gewonnen hat. Gemessen: die Zeilen lasen „6:3 | 3:6" ohne jede Angabe des Standes. Jetzt steht der Stand davor und die Saetze in Klammern dahinter: „1:1 (6:3 | 3:6)", „2:1 (6:3 | 3:6 | 6:4)". Wo beides dasselbe ist („Einer", oder „Mehrere" ohne Satzerfassung), bleibt es einzeilig — gegengeprueft an einer Begegnung aus der Einer-Zeit: unveraendert „6:3", nichts doppelt. Ein nicht gespieltes Spiel bleibt leer und zeigt kein „0:0". 2. SPIELERSTATISTIK. Die Spalten „T +/-" summieren teamspiel_*_punkte, zaehlen also je punktetyp Tore oder gewonnene Saetze — hiessen aber immer „Tore". Anders als in der Tabelle gibt es hier nicht einen Modus: eine Bestenliste kann mehrere Wettbewerbe umfassen, sogar Individualwettbewerbe. spielerstatistikEinheit() liest deshalb den punktetyp der speisenden Wettbewerbe; sind sie einig, steht die richtige Einheit, sonst „Punkte" — statt eine zu behaupten, die nicht fuer alle Zeilen gilt. Neuer Schluessel COM_SPORTSMANAGER_SETS_SHORTCUT in beiden Sprachen. Alle drei Faelle gemessen: nur „Mehrere" -> „S +/-" mit „Saetze", gemischt -> „P +/-" mit „Punkte", zurueck -> wieder „S". Und der Tooltip der Tabellenspalte hiess COM_SPORTSMANAGER_DIFFERENCE = „Differenz Tore", widersprach also der neuen Beschriftung „Saetze". Er nennt jetzt nur die Rechenart („Differenz"), wie sein Geschwister „Verhaeltnis" schon immer; die Einheit steht in der Spalte. Einzige Verwendungsstelle. 3. SPIELFOLGE. Die sechs Auswahlfelder der Spielfolge und der Verknuepfungen stehen wieder auf medium — sie tragen kurze Werte und sollten nicht mitwachsen. Breit bleiben nur die 33 Felder der Einstellungen, wo die langen Beschriftungen stehen.
This commit is contained in:
@@ -7786,6 +7786,31 @@ function turniervoranmeldungen(): void
|
||||
administrationFooter();
|
||||
}
|
||||
|
||||
/// Die Einheit der Spalten „T +/-" einer Bestenliste: 0 = Tore, 1 = Saetze, null = gemischt
|
||||
/// oder unbekannt. Die Werte sind die Summe der teamspiel_*_punkte, und die zaehlen je
|
||||
/// punktetyp Tore oder gewonnene Saetze. Eine Bestenliste kann mehrere Wettbewerbe umfassen —
|
||||
/// dann gibt es keine gemeinsame Einheit.
|
||||
function spielerstatistikEinheit($bestenliste_id): ?int
|
||||
{
|
||||
$db = getDatabase();
|
||||
$query = "SELECT DISTINCT punktetyp"
|
||||
. "\n FROM #__sportsmanager_bestenliste_veranstaltung"
|
||||
. "\n INNER JOIN #__sportsmanager_veranstaltung USING (veranstaltung_id)"
|
||||
. "\n INNER JOIN #__sportsmanager_teamspiel_modus ON teamspiel_modus_id = modus_id"
|
||||
. "\n WHERE bestenliste_id = " . (int)$bestenliste_id;
|
||||
$rows = loadObjectList($db, $query);
|
||||
if (count($rows) != 1) {
|
||||
return null;
|
||||
}
|
||||
// Individualwettbewerbe kennen keinen punktetyp; sind welche dabei, ist die Einheit offen.
|
||||
$query = "SELECT COUNT(*) FROM #__sportsmanager_bestenliste_individualwettbewerb"
|
||||
. "\n WHERE bestenliste_id = " . (int)$bestenliste_id;
|
||||
if (!empty(loadResult($db, $query))) {
|
||||
return null;
|
||||
}
|
||||
return (int)$rows[0]->punktetyp;
|
||||
}
|
||||
|
||||
function spielerstatistiken(): void
|
||||
{
|
||||
$db = getDatabase();
|
||||
@@ -7870,7 +7895,7 @@ function spielerstatistiken(): void
|
||||
$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, 0, $details_anzeigen);
|
||||
HTML_sportsmanager::spielerstatistik($spielerstatistik, $spielerstatistik_punkte, FALSE, 0, 0, 0, $details_anzeigen, spielerstatistikEinheit($spielerstatistik->bestenliste_id));
|
||||
}
|
||||
|
||||
administrationFooter();
|
||||
@@ -8030,7 +8055,7 @@ function spielerstatistik(): void
|
||||
JSON_sportsmanager::spielerstatistik($spielerstatistik_punkte);
|
||||
} else {
|
||||
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);
|
||||
HTML_sportsmanager::spielerstatistik($spielerstatistik, $spielerstatistik_punkte, TRUE, $filter_teams, $vorherige_spielerstatistik_id, $naechste_spielerstatistik_id, $details_anzeigen, spielerstatistikEinheit($spielerstatistik->bestenliste_id));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1597,7 +1597,21 @@ if (count($spiele) > 0) {
|
||||
</td>
|
||||
|
||||
<td style="text-align: center" nowrap>
|
||||
<?php echo str_replace(" ", " | ", $spiel->ergebnis_detailliert); ?>
|
||||
<?php
|
||||
// Der Stand des Spiels, und die Satzergebnisse dahinter, wo sie einzeln
|
||||
// erfasst sind. Bisher stand hier NUR ergebnis_detailliert: bei reinem
|
||||
// „Mehrere" ist das derselbe Stand, bei Erfassung je Satz sind es die
|
||||
// Saetze — und dann fehlte, wer das Spiel gewonnen hat.
|
||||
$stand = $spiel->teamspiel_heim_punkte . ':' . $spiel->teamspiel_gast_punkte;
|
||||
$saetze = str_replace(" ", " | ", (string)$spiel->ergebnis_detailliert);
|
||||
if ($saetze === '' && $spiel->teamspiel_heim_punkte == 0 && $spiel->teamspiel_gast_punkte == 0) {
|
||||
// Nicht gespielt: wie bisher leer, kein „0:0".
|
||||
} else if ($saetze === '' || $saetze === $stand) {
|
||||
echo htmlentities_utf8($saetze !== '' ? $saetze : $stand);
|
||||
} else {
|
||||
echo htmlentities_utf8($stand) . ' <small>(' . htmlentities_utf8($saetze) . ')</small>';
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
@@ -6780,7 +6794,7 @@ static function spielerstatistikenHeader($titel, $beschreibung, $saisons, $filte
|
||||
}
|
||||
}
|
||||
|
||||
static function spielerstatistik($spielerstatistik, $spielerstatistik_punkte, $allein_angezeigt, $filter_teams, $vorherige_spielerstatistik_id, $naechste_spielerstatistik_id, $details_anzeigen): void
|
||||
static function spielerstatistik($spielerstatistik, $spielerstatistik_punkte, $allein_angezeigt, $filter_teams, $vorherige_spielerstatistik_id, $naechste_spielerstatistik_id, $details_anzeigen, ?int $einheit = null): void
|
||||
{
|
||||
global $params;
|
||||
if ($allein_angezeigt) {
|
||||
@@ -6934,13 +6948,23 @@ static function spielerstatistik($spielerstatistik, $spielerstatistik_punkte, $a
|
||||
<th nowrap title="<?php echo Text::_('COM_SPORTSMANAGER_DEFEATS'); ?>">
|
||||
<strong><?php echo Text::_('COM_SPORTSMANAGER_DEFEATS_SHORTCUT'); ?></strong>
|
||||
</th>
|
||||
<?php
|
||||
// Die Spalten summieren teamspiel_*_punkte — je punktetyp also Tore oder
|
||||
// gewonnene Saetze. Umfasst die Bestenliste beides (oder auch
|
||||
// Individualwettbewerbe), gibt es keine gemeinsame Einheit; dann steht
|
||||
// „Punkte", statt eine zu behaupten.
|
||||
$einheit_lang = $einheit === 0 ? 'COM_SPORTSMANAGER_GOALS'
|
||||
: ($einheit === 1 ? 'COM_SPORTSMANAGER_SETS' : 'COM_SPORTSMANAGER_POINTS');
|
||||
$einheit_kurz = $einheit === 0 ? 'COM_SPORTSMANAGER_GOALS_SHORTCUT'
|
||||
: ($einheit === 1 ? 'COM_SPORTSMANAGER_SETS_SHORTCUT' : 'COM_SPORTSMANAGER_POINTS_SHORTCUT');
|
||||
?>
|
||||
<th nowrap
|
||||
title="<?php echo Text::_('COM_SPORTSMANAGER_GOALS'); ?>">
|
||||
<strong><?php echo Text::_('COM_SPORTSMANAGER_GOALS_SHORTCUT'); ?> +</strong>
|
||||
title="<?php echo Text::_($einheit_lang); ?>">
|
||||
<strong><?php echo Text::_($einheit_kurz); ?> +</strong>
|
||||
</th>
|
||||
<th nowrap
|
||||
title="<?php echo Text::_('COM_SPORTSMANAGER_GOALS'); ?>">
|
||||
<strong><?php echo Text::_('COM_SPORTSMANAGER_GOALS_SHORTCUT'); ?> -</strong>
|
||||
title="<?php echo Text::_($einheit_lang); ?>">
|
||||
<strong><?php echo Text::_($einheit_kurz); ?> -</strong>
|
||||
</th>
|
||||
</tr>
|
||||
<?php
|
||||
|
||||
@@ -5774,7 +5774,7 @@ class HTML_sportsmanager_admin
|
||||
<table>
|
||||
<tr>
|
||||
<td nowrap>
|
||||
<select class="uk-select uk-form-width-large"
|
||||
<select class="uk-select uk-form-width-medium"
|
||||
name="spiel_<?php echo $spiel_nr; ?>_heim" size="1"
|
||||
onChange="zeilen_anzeigen();"
|
||||
aria-label="<?php echo Text::sprintf('COM_SPORTSMANAGER_ARIA_LABEL_GAME_NUMBER_HOME', $spiel_nr); ?>">
|
||||
@@ -5786,7 +5786,7 @@ class HTML_sportsmanager_admin
|
||||
</select>
|
||||
</td>
|
||||
<td nowrap>
|
||||
<select class="uk-select uk-form-width-large"
|
||||
<select class="uk-select uk-form-width-medium"
|
||||
name="spiel_<?php echo $spiel_nr; ?>_gast" size="1"
|
||||
onChange="zeilen_anzeigen();"
|
||||
aria-label="<?php echo Text::sprintf('COM_SPORTSMANAGER_ARIA_LABEL_GAME_NUMBER_GUEST', $spiel_nr); ?>">
|
||||
@@ -5799,7 +5799,7 @@ class HTML_sportsmanager_admin
|
||||
<label
|
||||
for="match_<?php echo $spiel_nr; ?>_starting_team"><?php echo Text::_('COM_SPORTSMANAGER_EDITION'); ?>
|
||||
:</label>
|
||||
<select class="uk-select uk-form-width-large"
|
||||
<select class="uk-select uk-form-width-medium"
|
||||
name="spiel_<?php echo $spiel_nr; ?>_auflage"
|
||||
id="match_<?php echo $spiel_nr; ?>_starting_team"
|
||||
size="1">
|
||||
@@ -5855,7 +5855,7 @@ class HTML_sportsmanager_admin
|
||||
<table>
|
||||
<tr>
|
||||
<td nowrap>
|
||||
<select class="uk-select uk-form-width-large"
|
||||
<select class="uk-select uk-form-width-medium"
|
||||
name="verknuepfung_<?php echo $verknuepfung_nr; ?>_doppel"
|
||||
size="1"
|
||||
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_GAME_LINK_DOUBLE'); ?>">
|
||||
@@ -5868,7 +5868,7 @@ class HTML_sportsmanager_admin
|
||||
</select>
|
||||
</td>
|
||||
<td nowrap>
|
||||
<select class="uk-select uk-form-width-large"
|
||||
<select class="uk-select uk-form-width-medium"
|
||||
name="verknuepfung_<?php echo $verknuepfung_nr; ?>_einzel1"
|
||||
size="1"
|
||||
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_GAME_LINK_SINGLE'); ?>">
|
||||
@@ -5881,7 +5881,7 @@ class HTML_sportsmanager_admin
|
||||
</select>
|
||||
</td>
|
||||
<td nowrap>
|
||||
<select class="uk-select uk-form-width-large"
|
||||
<select class="uk-select uk-form-width-medium"
|
||||
name="verknuepfung_<?php echo $verknuepfung_nr; ?>_einzel2"
|
||||
size="1"
|
||||
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_GAME_LINK_SINGLE'); ?>">
|
||||
|
||||
@@ -161,6 +161,7 @@ COM_SPORTSMANAGER_GOALS_SHORTCUT="T"
|
||||
COM_SPORTSMANAGER_SETS="Sätze"
|
||||
COM_SPORTSMANAGER_POINT="Punkt"
|
||||
COM_SPORTSMANAGER_POINTS="Punkte"
|
||||
COM_SPORTSMANAGER_SETS_SHORTCUT="S"
|
||||
COM_SPORTSMANAGER_POINTS_SHORTCUT="P"
|
||||
COM_SPORTSMANAGER_ONE_POINT="1 Punkt"
|
||||
COM_SPORTSMANAGER_NUMBER_POINTS="%d Punkte"
|
||||
@@ -170,7 +171,7 @@ COM_SPORTSMANAGER_GAME_POINTS="Spielpunkte"
|
||||
COM_SPORTSMANAGER_GAME_POINTS_SHORTCUT="SP"
|
||||
COM_SPORTSMANAGER_SUFFIX_ONE_TEAM=" (eine Mannschaft)"
|
||||
COM_SPORTSMANAGER_SUFFIX_TEAMS_TOGETHER=" (Mannschaften zusammen)"
|
||||
COM_SPORTSMANAGER_DIFFERENCE="Differenz Tore"
|
||||
COM_SPORTSMANAGER_DIFFERENCE="Differenz"
|
||||
COM_SPORTSMANAGER_DIFFERENCE_IN_POINTS="Differenz Spielpunkte"
|
||||
COM_SPORTSMANAGER_POINTS_RATIO="Verhältnis Spielpunkte"
|
||||
COM_SPORTSMANAGER_SCHEDULE_DATE="Zeitpunkt"
|
||||
|
||||
@@ -161,6 +161,7 @@ COM_SPORTSMANAGER_GOALS_SHORTCUT="G"
|
||||
COM_SPORTSMANAGER_SETS="Sets"
|
||||
COM_SPORTSMANAGER_POINT="Point"
|
||||
COM_SPORTSMANAGER_POINTS="Points"
|
||||
COM_SPORTSMANAGER_SETS_SHORTCUT="S"
|
||||
COM_SPORTSMANAGER_POINTS_SHORTCUT="P"
|
||||
COM_SPORTSMANAGER_ONE_POINT="1 point"
|
||||
COM_SPORTSMANAGER_NUMBER_POINTS="%d points"
|
||||
@@ -170,7 +171,7 @@ COM_SPORTSMANAGER_GAME_POINTS="Game points"
|
||||
COM_SPORTSMANAGER_GAME_POINTS_SHORTCUT="GP"
|
||||
COM_SPORTSMANAGER_SUFFIX_ONE_TEAM=" (one team)"
|
||||
COM_SPORTSMANAGER_SUFFIX_TEAMS_TOGETHER=" (teams together)"
|
||||
COM_SPORTSMANAGER_DIFFERENCE="Goal difference"
|
||||
COM_SPORTSMANAGER_DIFFERENCE="Difference"
|
||||
COM_SPORTSMANAGER_DIFFERENCE_IN_POINTS="Difference in game points"
|
||||
COM_SPORTSMANAGER_POINTS_RATIO="Game points ratio"
|
||||
COM_SPORTSMANAGER_SCHEDULE_DATE="Appointment date"
|
||||
|
||||
Reference in New Issue
Block a user