diff --git a/tv.php b/tv.php index aa19700..f970766 100644 --- a/tv.php +++ b/tv.php @@ -33,8 +33,9 @@ function render_message_box($message) { 'warning' => 'warning', 'error' => 'danger' ]; - $type = $typeMap[$message['type']] ?? 'secondary'; - return ""; + $type = $typeMap[$message['type'] ?? ''] ?? 'secondary'; + $text = htmlspecialchars($message['message'] ?? '', ENT_QUOTES, 'UTF-8'); + return ""; } ?> @@ -67,88 +68,176 @@ function render_message_box($message) { +
-
- -
-
- -
-
Letzte Ergebnisse
-
- Noch keine Ergebnisse vorhanden

"; - } else { - $lauf = null; - $latest = array_reverse(array_slice($results, -10)); - foreach ($latest as $res) { - if ($lauf !== $res['lauf']) { - echo "

Lauf {$res['lauf']}

"; - $lauf = $res['lauf']; - } - echo "
{$res['title']}
"; - foreach (['bahn1', 'bahn2', 'bahn3'] as $bahn) { - $boot = $res[$bahn]['boot']; - $zeit = $res[$bahn]['zeit']; - echo ucfirst($bahn) . ": $boot - $zeit
"; - } - echo "
"; - } - } - ?> -
-
- -
-
Nächste Rennen
-
- - {$rennen['name']} ({$rennen['zeit']})
- Bahn 1: {$rennen['bahn1']}
- Bahn 2: {$rennen['bahn2']}
- Bahn 3: {$rennen['bahn3']}
-
"; - } - ?> -
-
-
-
-
-
- Alle Ergebnisse & Rennpläne Live und als App unter apps.sport-am-tankumsee.de oder den QR Code Scannen -
-
-
- QR Code -
-
+
+
+ +
+ + +
+
Letzte Ergebnisse
+ +
+ Noch keine Ergebnisse vorhanden

"; + } else { + $lauf = null; + $latest = array_reverse(array_slice($results, -10)); + + foreach ($latest as $res) { + + if ($lauf !== ($res['lauf'] ?? null)) { + echo "

Lauf " . + htmlspecialchars($res['lauf'] ?? '', ENT_QUOTES, 'UTF-8') . + "

"; + $lauf = $res['lauf'] ?? null; + } + + echo "
"; + + echo "" . + htmlspecialchars($res['title'] ?? '', ENT_QUOTES, 'UTF-8') . + "
"; + + if (!empty($res['bahn1'])) { + $boot = $res['bahn1']['boot'] ?? ''; + $zeit = $res['bahn1']['zeit'] ?? ''; + + echo "Bahn 1: " . + htmlspecialchars($boot, ENT_QUOTES, 'UTF-8') . + " - " . + htmlspecialchars($zeit, ENT_QUOTES, 'UTF-8') . + "
"; + } + + if (!empty($res['bahn2'])) { + $boot = $res['bahn2']['boot'] ?? ''; + $zeit = $res['bahn2']['zeit'] ?? ''; + + echo "Bahn 2: " . + htmlspecialchars($boot, ENT_QUOTES, 'UTF-8') . + " - " . + htmlspecialchars($zeit, ENT_QUOTES, 'UTF-8') . + "
"; + } + + if (!empty($res['bahn3'])) { + $boot = $res['bahn3']['boot'] ?? ''; + $zeit = $res['bahn3']['zeit'] ?? ''; + + echo "Bahn 3: " . + htmlspecialchars($boot, ENT_QUOTES, 'UTF-8') . + " - " . + htmlspecialchars($zeit, ENT_QUOTES, 'UTF-8') . + "
"; + } + + echo "
"; + } + } + ?> +
+
+ + +
+
Nächste Rennen
+ +
+ "; + + echo "" . + htmlspecialchars($rennen['name'] ?? '', ENT_QUOTES, 'UTF-8') . + " (" . + htmlspecialchars($rennen['zeit'] ?? '', ENT_QUOTES, 'UTF-8') . + ")
"; + + if (isset($rennen['bahn1'])) { + echo "Bahn 1: " . + htmlspecialchars($rennen['bahn1'], ENT_QUOTES, 'UTF-8') . + "
"; + } + + if (isset($rennen['bahn2'])) { + echo "Bahn 2: " . + htmlspecialchars($rennen['bahn2'], ENT_QUOTES, 'UTF-8') . + "
"; + } + + if (isset($rennen['bahn3'])) { + echo "Bahn 3: " . + htmlspecialchars($rennen['bahn3'], ENT_QUOTES, 'UTF-8') . + "
"; + } + + echo "
"; + } + ?> +
+
+ + + +
+ +
+
+ + Alle Ergebnisse & Rennpläne Live und als App unter + apps.sport-am-tankumsee.de oder den QR Code Scannen + +
+
+ +
+ QR Code +
+ +
+ + + +