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();
|
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
|
function spielerstatistiken(): void
|
||||||
{
|
{
|
||||||
$db = getDatabase();
|
$db = getDatabase();
|
||||||
@@ -7870,7 +7895,7 @@ function spielerstatistiken(): void
|
|||||||
$query .= "\n ORDER BY leistungsindex DESC, quotient DESC, 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);
|
$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();
|
administrationFooter();
|
||||||
@@ -8030,7 +8055,7 @@ function spielerstatistik(): void
|
|||||||
JSON_sportsmanager::spielerstatistik($spielerstatistik_punkte);
|
JSON_sportsmanager::spielerstatistik($spielerstatistik_punkte);
|
||||||
} else {
|
} else {
|
||||||
HTML_sportsmanager::spielerstatistikenHeader($params->get('titel'), $params->get('beschreibung'), $saisons, $filter_saison_id, $id, $spiele, $spielerstatistik->min_spiele, $teams, $filter_teams);
|
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>
|
||||||
|
|
||||||
<td style="text-align: center" nowrap>
|
<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>
|
||||||
|
|
||||||
<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;
|
global $params;
|
||||||
if ($allein_angezeigt) {
|
if ($allein_angezeigt) {
|
||||||
@@ -6934,13 +6948,23 @@ static function spielerstatistik($spielerstatistik, $spielerstatistik_punkte, $a
|
|||||||
<th nowrap title="<?php echo Text::_('COM_SPORTSMANAGER_DEFEATS'); ?>">
|
<th nowrap title="<?php echo Text::_('COM_SPORTSMANAGER_DEFEATS'); ?>">
|
||||||
<strong><?php echo Text::_('COM_SPORTSMANAGER_DEFEATS_SHORTCUT'); ?></strong>
|
<strong><?php echo Text::_('COM_SPORTSMANAGER_DEFEATS_SHORTCUT'); ?></strong>
|
||||||
</th>
|
</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
|
<th nowrap
|
||||||
title="<?php echo Text::_('COM_SPORTSMANAGER_GOALS'); ?>">
|
title="<?php echo Text::_($einheit_lang); ?>">
|
||||||
<strong><?php echo Text::_('COM_SPORTSMANAGER_GOALS_SHORTCUT'); ?> +</strong>
|
<strong><?php echo Text::_($einheit_kurz); ?> +</strong>
|
||||||
</th>
|
</th>
|
||||||
<th nowrap
|
<th nowrap
|
||||||
title="<?php echo Text::_('COM_SPORTSMANAGER_GOALS'); ?>">
|
title="<?php echo Text::_($einheit_lang); ?>">
|
||||||
<strong><?php echo Text::_('COM_SPORTSMANAGER_GOALS_SHORTCUT'); ?> -</strong>
|
<strong><?php echo Text::_($einheit_kurz); ?> -</strong>
|
||||||
</th>
|
</th>
|
||||||
</tr>
|
</tr>
|
||||||
<?php
|
<?php
|
||||||
|
|||||||
@@ -5774,7 +5774,7 @@ class HTML_sportsmanager_admin
|
|||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td nowrap>
|
<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"
|
name="spiel_<?php echo $spiel_nr; ?>_heim" size="1"
|
||||||
onChange="zeilen_anzeigen();"
|
onChange="zeilen_anzeigen();"
|
||||||
aria-label="<?php echo Text::sprintf('COM_SPORTSMANAGER_ARIA_LABEL_GAME_NUMBER_HOME', $spiel_nr); ?>">
|
aria-label="<?php echo Text::sprintf('COM_SPORTSMANAGER_ARIA_LABEL_GAME_NUMBER_HOME', $spiel_nr); ?>">
|
||||||
@@ -5786,7 +5786,7 @@ class HTML_sportsmanager_admin
|
|||||||
</select>
|
</select>
|
||||||
</td>
|
</td>
|
||||||
<td nowrap>
|
<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"
|
name="spiel_<?php echo $spiel_nr; ?>_gast" size="1"
|
||||||
onChange="zeilen_anzeigen();"
|
onChange="zeilen_anzeigen();"
|
||||||
aria-label="<?php echo Text::sprintf('COM_SPORTSMANAGER_ARIA_LABEL_GAME_NUMBER_GUEST', $spiel_nr); ?>">
|
aria-label="<?php echo Text::sprintf('COM_SPORTSMANAGER_ARIA_LABEL_GAME_NUMBER_GUEST', $spiel_nr); ?>">
|
||||||
@@ -5799,7 +5799,7 @@ class HTML_sportsmanager_admin
|
|||||||
<label
|
<label
|
||||||
for="match_<?php echo $spiel_nr; ?>_starting_team"><?php echo Text::_('COM_SPORTSMANAGER_EDITION'); ?>
|
for="match_<?php echo $spiel_nr; ?>_starting_team"><?php echo Text::_('COM_SPORTSMANAGER_EDITION'); ?>
|
||||||
:</label>
|
:</label>
|
||||||
<select class="uk-select uk-form-width-large"
|
<select class="uk-select uk-form-width-medium"
|
||||||
name="spiel_<?php echo $spiel_nr; ?>_auflage"
|
name="spiel_<?php echo $spiel_nr; ?>_auflage"
|
||||||
id="match_<?php echo $spiel_nr; ?>_starting_team"
|
id="match_<?php echo $spiel_nr; ?>_starting_team"
|
||||||
size="1">
|
size="1">
|
||||||
@@ -5855,7 +5855,7 @@ class HTML_sportsmanager_admin
|
|||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td nowrap>
|
<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"
|
name="verknuepfung_<?php echo $verknuepfung_nr; ?>_doppel"
|
||||||
size="1"
|
size="1"
|
||||||
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_GAME_LINK_DOUBLE'); ?>">
|
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_GAME_LINK_DOUBLE'); ?>">
|
||||||
@@ -5868,7 +5868,7 @@ class HTML_sportsmanager_admin
|
|||||||
</select>
|
</select>
|
||||||
</td>
|
</td>
|
||||||
<td nowrap>
|
<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"
|
name="verknuepfung_<?php echo $verknuepfung_nr; ?>_einzel1"
|
||||||
size="1"
|
size="1"
|
||||||
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_GAME_LINK_SINGLE'); ?>">
|
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_GAME_LINK_SINGLE'); ?>">
|
||||||
@@ -5881,7 +5881,7 @@ class HTML_sportsmanager_admin
|
|||||||
</select>
|
</select>
|
||||||
</td>
|
</td>
|
||||||
<td nowrap>
|
<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"
|
name="verknuepfung_<?php echo $verknuepfung_nr; ?>_einzel2"
|
||||||
size="1"
|
size="1"
|
||||||
aria-label="<?php echo Text::_('COM_SPORTSMANAGER_ARIA_LABEL_GAME_LINK_SINGLE'); ?>">
|
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_SETS="Sätze"
|
||||||
COM_SPORTSMANAGER_POINT="Punkt"
|
COM_SPORTSMANAGER_POINT="Punkt"
|
||||||
COM_SPORTSMANAGER_POINTS="Punkte"
|
COM_SPORTSMANAGER_POINTS="Punkte"
|
||||||
|
COM_SPORTSMANAGER_SETS_SHORTCUT="S"
|
||||||
COM_SPORTSMANAGER_POINTS_SHORTCUT="P"
|
COM_SPORTSMANAGER_POINTS_SHORTCUT="P"
|
||||||
COM_SPORTSMANAGER_ONE_POINT="1 Punkt"
|
COM_SPORTSMANAGER_ONE_POINT="1 Punkt"
|
||||||
COM_SPORTSMANAGER_NUMBER_POINTS="%d Punkte"
|
COM_SPORTSMANAGER_NUMBER_POINTS="%d Punkte"
|
||||||
@@ -170,7 +171,7 @@ COM_SPORTSMANAGER_GAME_POINTS="Spielpunkte"
|
|||||||
COM_SPORTSMANAGER_GAME_POINTS_SHORTCUT="SP"
|
COM_SPORTSMANAGER_GAME_POINTS_SHORTCUT="SP"
|
||||||
COM_SPORTSMANAGER_SUFFIX_ONE_TEAM=" (eine Mannschaft)"
|
COM_SPORTSMANAGER_SUFFIX_ONE_TEAM=" (eine Mannschaft)"
|
||||||
COM_SPORTSMANAGER_SUFFIX_TEAMS_TOGETHER=" (Mannschaften zusammen)"
|
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_DIFFERENCE_IN_POINTS="Differenz Spielpunkte"
|
||||||
COM_SPORTSMANAGER_POINTS_RATIO="Verhältnis Spielpunkte"
|
COM_SPORTSMANAGER_POINTS_RATIO="Verhältnis Spielpunkte"
|
||||||
COM_SPORTSMANAGER_SCHEDULE_DATE="Zeitpunkt"
|
COM_SPORTSMANAGER_SCHEDULE_DATE="Zeitpunkt"
|
||||||
|
|||||||
@@ -161,6 +161,7 @@ COM_SPORTSMANAGER_GOALS_SHORTCUT="G"
|
|||||||
COM_SPORTSMANAGER_SETS="Sets"
|
COM_SPORTSMANAGER_SETS="Sets"
|
||||||
COM_SPORTSMANAGER_POINT="Point"
|
COM_SPORTSMANAGER_POINT="Point"
|
||||||
COM_SPORTSMANAGER_POINTS="Points"
|
COM_SPORTSMANAGER_POINTS="Points"
|
||||||
|
COM_SPORTSMANAGER_SETS_SHORTCUT="S"
|
||||||
COM_SPORTSMANAGER_POINTS_SHORTCUT="P"
|
COM_SPORTSMANAGER_POINTS_SHORTCUT="P"
|
||||||
COM_SPORTSMANAGER_ONE_POINT="1 point"
|
COM_SPORTSMANAGER_ONE_POINT="1 point"
|
||||||
COM_SPORTSMANAGER_NUMBER_POINTS="%d points"
|
COM_SPORTSMANAGER_NUMBER_POINTS="%d points"
|
||||||
@@ -170,7 +171,7 @@ COM_SPORTSMANAGER_GAME_POINTS="Game points"
|
|||||||
COM_SPORTSMANAGER_GAME_POINTS_SHORTCUT="GP"
|
COM_SPORTSMANAGER_GAME_POINTS_SHORTCUT="GP"
|
||||||
COM_SPORTSMANAGER_SUFFIX_ONE_TEAM=" (one team)"
|
COM_SPORTSMANAGER_SUFFIX_ONE_TEAM=" (one team)"
|
||||||
COM_SPORTSMANAGER_SUFFIX_TEAMS_TOGETHER=" (teams together)"
|
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_DIFFERENCE_IN_POINTS="Difference in game points"
|
||||||
COM_SPORTSMANAGER_POINTS_RATIO="Game points ratio"
|
COM_SPORTSMANAGER_POINTS_RATIO="Game points ratio"
|
||||||
COM_SPORTSMANAGER_SCHEDULE_DATE="Appointment date"
|
COM_SPORTSMANAGER_SCHEDULE_DATE="Appointment date"
|
||||||
|
|||||||
Reference in New Issue
Block a user