Billard Scoreboard Dokumentation v4.5

Diese Dokumentation enthält alle Schritte zur Installation sowie Erklärungen zur Tischansteuerung, UI-Logik, Training-Features und OBS-Integration.

Neu in Version 4.5:

1 Voraussetzungen

2 System-Installation

sudo apt update
sudo apt install nginx php8.3-fpm php8.3-sqlite3 -y

3 Ordnerstruktur

/var/www/billard/ ├── index.php # Haupt-Anwendung ├── api.php # Backend API ├── monitor_de.php # Live-Monitor (Deutsch) ├── monitor_en.php # Live-Monitor (Englisch) ├── obs_small.php # OBS Overlay klein (Style 1) ├── obs_small_2.php # OBS Overlay klein (Style 2) ├── obs_small_3.php # OBS Overlay klein (Style 3) ├── obs_small_4.php # OBS Overlay klein (Style 4) ├── obs_big.php # OBS Overlay groß (Style 1) ├── obs_big_2.php # OBS Overlay groß (Style 2) ├── obs_big_3.php # OBS Overlay groß (Style 3) ├── obs_big_4.php # OBS Overlay groß (Style 4) ├── help_de.html # Dokumentation (Deutsch) ├── help_en.html # Documentation (English) ├── scoreboard_logo.svg # Logo ├── billiard_data.db # SQLite Datenbank ├── tables.json # Live-Tischdaten ├── config.php # Konfiguration (PIN, OBS_INTERVAL, Icons, Legal, Login) ├── legal_de.php # Rechtstexte Deutsch (Impressum, Datenschutz) ├── legal_en.php # Legal texts English (Legal Notice, Privacy) │ ├── /obs/ # OBS Textdateien (auto-generiert) │ ├── table1_player1.txt │ ├── table1_score1.txt │ └── ... │ ├── /assets/ │ ├── /css/ │ │ └── styles.css # Komplettes CSS │ └── /js/ │ ├── app.js # Basis-Logik │ ├── game.js # Spiel-Funktionen │ └── training.js # Training-Funktionen │ ├── /logos/ # Vereins-Logos für OBS │ ├── BC Berlin.png │ ├── BC Bremen.png │ └── [Vereinsname].png │ ├── /EO/ # Equal Offense Bilder │ └── EO_*.svg │ └── /regeln/ # Regel-Grafiken (SVG) ├── /8ball/ │ └── 8ball_1.svg # 8-Ball Aufbau ├── /9ball/ │ └── 9ball_1.svg # 9-Ball Aufbau ├── /10ball/ │ └── 10_ball.svg # 10-Ball Aufbau └── /14_1/ └── Aufbau_[1-7]_[1-2].svg # 14/1 Wiederaufbau-Beispiele
sudo mkdir -p /var/www/billard/assets/css
sudo mkdir -p /var/www/billard/assets/js
sudo mkdir -p /var/www/billard/logos

4 Rechte vergeben

Achtung: SQLite ist eine Datei. PHP muss im gesamten Ordner schreiben dürfen.
sudo chown -R www-data:www-data /var/www/billard
sudo chmod -R 775 /var/www/billard

oder z.B.:

sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 775 /var/www/html

je nachdem wo die Dateien liegen.

5 Nginx Konfiguration

Konfigurationspfad: /etc/nginx/sites-available/default

server {
    listen 80;
    root /var/www/billard;
    index index.php index.html;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
    }
}
sudo nginx -t
sudo systemctl restart nginx

6 URL-Übersicht

AnsichtURLBeschreibung
Scoreboard http://[IP]/ Haupt-Anwendung für Spieler
Monitor (DE) http://[IP]/monitor_de.php Live-Anzeige aller Tische (Deutsch)
Monitor (EN) http://[IP]/monitor_en.php Live-Anzeige aller Tische (Englisch)
OBS Small http://[IP]/obs_small.php?Tisch=1 OBS Overlay klein - Style 1
OBS Small 2 http://[IP]/obs_small_2.php?Tisch=1 OBS Overlay klein - Style 2 (schwarze Scores, roter Streifen)
OBS Small 3 http://[IP]/obs_small_3.php?Tisch=1 OBS Overlay klein - Style 3 (blaue Scores)
OBS Small 4 http://[IP]/obs_small_4.php?Tisch=1 OBS Overlay klein - Style 4 (Bordeaux/Maroon)
OBS Big http://[IP]/obs_big.php?Tisch=1 OBS Overlay groß - Style 1
OBS Big 2 http://[IP]/obs_big_2.php?Tisch=1 OBS Overlay groß - Style 2 (geteilte Streifen, Logos)
OBS Big 3 http://[IP]/obs_big_3.php?Tisch=1 OBS Overlay groß - Style 3 (Logos, blaue Scores)
OBS Big 4 http://[IP]/obs_big_4.php?Tisch=1 OBS Overlay groß - Style 4 (Bordeaux/Maroon, Logos)
Hilfe (DE) http://[IP]/help_de.html Diese Dokumentation (Deutsch)
Help (EN) http://[IP]/help_en.html Documentation (English)

7 Tisch-Steuerung via URL

ParameterVerhalten
index.php Freie Auswahl: Tisch 1-8 wählbar im Setup
index.php?Tisch=0 Admin-Modus: Tisch-Auswahl ausgeblendet
index.php?Tisch=1 Fixer Modus: Tisch fest vorgegeben (1-8)

Farbschema via URL NEU

Das Farbschema kann direkt über einen URL-Parameter gesetzt werden. Sowohl deutsche als auch englische Bezeichnungen werden akzeptiert:

Parameter (DE)Parameter (EN)Farbschema
?theme=gelb ?theme=yellow Standard (Gelb/Gold)
?theme=blau ?theme=blue Blau/Cyan
?theme=gruen ?theme=green Grün
?theme=weiss ?theme=white Hell/Light Mode

Sprache via URL NEU

Die Sprache kann direkt über einen URL-Parameter gesetzt werden:

ParameterSprache
?lang=de Deutsch
?lang=en Englisch
Tipp: Parameter können kombiniert werden, z.B. http://[IP]/?Tisch=1&theme=blau&lang=en

8 OBS Studio Integration NEU

Einrichtung in OBS

  1. In OBS: Quellen → + → Browser
  2. Name eingeben (z.B. "Scoreboard Tisch 1")
  3. URL eingeben: http://[SERVER-IP]/obs_big.php?Tisch=1
  4. Breite: 1400 (big) oder 700 (small)
  5. Höhe: 150 (big) oder 100 (small)
  6. "Benutzerdefiniertes CSS" leer lassen
  7. "Aktualisieren wenn Szene aktiv" aktivieren

Empfohlene Größen

VersionBreiteHöheVerwendung
obs_small.php 700 px 100 px Kompakte Anzeige, Ecke des Streams
obs_small_2.php 700 px 120 px Getrennte Felder, schwarze Scores, roter Streifen
obs_small_3.php 700 px 120 px Getrennte Felder, blaue Scores
obs_small_4.php 500 px 120 px Bordeaux/Maroon Design, kompakt
obs_big.php 1400 px 150 px Vollbreite, unterer Bildschirmrand
obs_big_2.php 1400 px 180 px Geteilte Streifen (Name/Verein), Logos, rote Akzente
obs_big_3.php 1400 px 150 px Logos, blaue Scoreboxen
obs_big_4.php 1200 px 150 px Bordeaux/Maroon Design, Logos, gelbe Akzente

Vereins-Logos einrichten

Logos werden automatisch angezeigt, wenn eine PNG-Datei mit dem exakten Vereinsnamen existiert:

# Logo-Ordner erstellen
sudo mkdir -p /var/www/billard/logos

# Logos hochladen (Beispiele)
/var/www/billard/logos/BC Berlin.png
/var/www/billard/logos/BC Bremen.png
/var/www/billard/logos/Imperium.png
Tipp: Logo-Dateien sollten quadratisch sein (z.B. 200x200 px) mit transparentem Hintergrund (PNG). Der Dateiname muss exakt dem Vereinsnamen entsprechen!
Problemlösung OBS: Falls das Scoreboard in OBS nicht vollständig angezeigt wird:

9 Spielzeit & Header-Anzeige NEU v4.2

Während eines laufenden Spiels werden im Header die Disziplin und die laufende Spielzeit angezeigt.

Funktionen

Tipp: Die Spielzeit wird auch an die OBS-Textdateien übermittelt (als Startzeit).

10 OBS Textdateien NEU v4.2

Zusätzlich zu den Browser-Overlays werden automatisch einzelne TXT-Dateien im Ordner /obs/ generiert. Diese können als Browser-Quellen in OBS eingebunden werden.

Verfügbare Dateien pro Tisch

DateiInhaltBeispiel
table1_discipline.txtDisziplin14/1
table1_raceto.txtRace to100
table1_player1.txtSpieler 1 NameMax Mustermann
table1_player2.txtSpieler 2 NameJohn Doe
table1_club1.txtVerein Spieler 1BC Berlin
table1_club2.txtVerein Spieler 2BC Bremen
table1_score1.txtPunkte Spieler 142
table1_score2.txtPunkte Spieler 238
table1_innings1.txtAufnahmen Spieler 112
table1_innings2.txtAufnahmen Spieler 211
table1_highseries1.txtHöchstserie Spieler 115
table1_highseries2.txtHöchstserie Spieler 29
table1_series1.txtLaufende Serie Spieler 13
table1_series2.txtLaufende Serie Spieler 20
table1_gd1.txtGD Spieler 13.50
table1_gd2.txtGD Spieler 23.45
table1_starttime.txtStartzeit14:30:00
table1_matchtime.txtSpielzeit (HH:MM)01:23
table1_balls1.txtVersenkte Kugeln Spieler 1 (One Pocket / Bank Pool)5
table1_balls2.txtVersenkte Kugeln Spieler 2 (One Pocket / Bank Pool)3
table1_runout1.txtRunouts Spieler 12
table1_runout2.txtRunouts Spieler 21

Einrichtung in OBS (Browser-Quelle)

Die empfohlene Methode ist die Verwendung einer Browser-Quelle mit dem Plugin xObsBrowserAutoRefresh:

  1. Plugin xObsBrowserAutoRefresh installieren
  2. In OBS: Quellen → + → Browser
  3. URL eingeben: http://[SERVER-IP]/obs/table1_score1.txt
  4. Breite/Höhe nach Bedarf anpassen
  5. Benutzerdefiniertes CSS für die Textformatierung eintragen:
body {
    background-color: rgba(0, 0, 0, 0);
    color: #ffffff;
    font-family: "Arial";
    font-size: 40px;
    font-weight: bold;
    text-shadow: 2px 2px 4px #000000;
    overflow: hidden;
}
  1. Rechtsklick auf die Browser-Quelle → Filter
  2. Über + den Filter "Browser Auto-refresh" hinzufügen
  3. Intervall auf 15 Sekunden stellen
Tipp: Über das CSS können Schriftart, Größe, Farbe und Schatten frei angepasst werden. Jede Textdatei kann als eigene Browser-Quelle mit individuellem Styling eingebunden werden.

CSS mit Textausrichtung

Um den Text vertikal zentriert und horizontal ausgerichtet darzustellen, folgende CSS-Varianten verwenden:

Text linksbündig:

body {
    background-color: rgba(0, 0, 0, 0);
    color: #ffffff;
    font-family: "Arial";
    font-size: 40px;
    font-weight: bold;
    text-shadow: 2px 2px 4px #000000;
    overflow: hidden;
    margin: 0;
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

Text zentriert:

body {
    background-color: rgba(0, 0, 0, 0);
    color: #ffffff;
    font-family: "Arial";
    font-size: 40px;
    font-weight: bold;
    text-shadow: 2px 2px 4px #000000;
    overflow: hidden;
    margin: 0;
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
}

Text rechtsbündig:

body {
    background-color: rgba(0, 0, 0, 0);
    color: #ffffff;
    font-family: "Arial";
    font-size: 40px;
    font-weight: bold;
    text-shadow: 2px 2px 4px #000000;
    overflow: hidden;
    margin: 0;
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: flex-end;
}
Hinweis: Die Dateien werden alle 15 Sekunden aktualisiert (konfigurierbar über OBS_INTERVAL in config.php). Der Ordner /obs/ wird automatisch erstellt.
matchtime: Zeigt die verstrichene Spielzeit im Format HH:MM (ohne Sekunden). Wird nur bei laufendem Spiel berechnet, sonst "-".
balls: Zeigt die Ball-Zählung nur bei One Pocket und Bank Pool Disziplinen (z.B. "5/8 - 3/8"). Bei allen anderen Disziplinen wird "-" ausgegeben.
Tipp: Die Textdateien sind ideal für individuelle OBS-Layouts, bei denen Name, Score und Statistiken frei positioniert werden sollen.

11 Winner-/Wechselbreak

Bei 8-Ball, 9-Ball und 10-Ball kann im Setup der Break-Modus gewählt werden:

ModusVerhalten
Wechselbreak Der Anstoß wechselt nach jeder Aufnahme (+ oder -) zum anderen Spieler
Winnerbreak Der Gewinner eines Racks behält den Anstoß (wechselt nur bei +)

Ablauf

  1. Im Setup Disziplin wählen (8-Ball, 9-Ball oder 10-Ball)
  2. Break-Modus auswählen (Wechselbreak oder Winnerbreak)
  3. Beim Klick auf SPIEL STARTEN erscheint das Popup "Wer beginnt mit dem Anstoß?"
  4. Spieler auswählen - der aktive Spieler wird mit schwarzem Rahmen markiert
  5. Bei REMATCH wird erneut gefragt, wer beginnt
Tipp: Bei Spielende werden alle Eingabe-Buttons deaktiviert. Nur Undo und Restart bleiben aktiv.

12 Hilfe-Buttons (Regeln & Aufbau)

Alle Disziplinen (14/1, 8-Ball, 9-Ball, 10-Ball) haben einen Hilfe-Button (blaues Fragezeichen) in der Steuerungsleiste.

Inhalte pro Disziplin

DisziplinSeitenBesonderheiten
14/1 Endlos 5 Regelseiten + 7 Beispiele Wiederaufbau-Beispiele mit Vorher/Nachher-SVGs
8-Ball 4 Regelseiten Aufbaubild (SVG) direkt auf der "Aufbau & Anstoß"-Seite
9-Ball 4 Regelseiten Aufbaubild (SVG) direkt auf der "Aufbau & Anstoß"-Seite
10-Ball 4 Regelseiten Aufbaubild (SVG) direkt auf der "Aufbau & Anstoß"-Seite
Tipp: Die Aufbau-SVGs liegen im Ordner /regeln/. Das Popup ist scrollbar und hat Vor/Zurück-Buttons zur Navigation.

13 GD (Gesamtdurchschnitt)

Der GD (Gesamtdurchschnitt = Punkte / Aufnahmen) wird bei 14/1-Spielen an mehreren Stellen angezeigt:

OrtAnzeigeBeschreibung
Laufendes Spiel GD: X.XX Live-GD in der Stats-Zeile unter dem Score (Aufn | Serie | HS | GD)
Spielerbilanz Bester GD: X.XX Höchster jemals erreichter GD auf der Spielerkarte
Champions Bester GD Neue Champion-Karte für den Spieler mit dem höchsten GD
Historie Aufnahmen: X / HS: X / GD: X.XX GD pro Spieler in jedem 14/1-Eintrag der Spielhistorie
Berechnung: GD = Punkte / Aufnahmen (auf 2 Dezimalstellen gerundet). Der beste GD wird bei Spielende automatisch gespeichert.

14 14/1 Verlauf (Spieler-Statistik)

Jeder Spieler hat nun ein Verlaufsdiagramm für seine 14/1 Spiele. Das Diagramm zeigt die Entwicklung von Höchstserie und GD über die letzten 20 Partien.

So öffnest du den Verlauf

  1. Navigiere zur Spieler-Datenbank
  2. Klicke auf eine Spielerkarte
  3. Im Popup auf "14/1 Verlauf" (blauer Button) klicken

Diagramm-Erklärung

ElementFarbeY-AchseBeschreibung
Höchstserie Grün Links (0-100) Beste Serie pro Spiel
GD Blau Rechts (0-20) Gesamtdurchschnitt pro Spiel
X-Achse - - Letzte 20 Spiele (-20 bis 0)

Statistik-Box

Unter dem Diagramm werden folgende Werte angezeigt:

Tipp: Der Verlauf zeigt nur 14/1-Spiele. Bei Spielern ohne 14/1-Historie erscheint "Keine 14/1 Spiele gefunden."

15 Mehrsprachigkeit (i18n)

Das Scoreboard unterstützt nun vollständige Mehrsprachigkeit. Die Sprache kann jederzeit in der Sidebar umgeschaltet werden.

Unterstützte Sprachen

SpracheCodeDatei
Deutschde/assets/lang/de.json
Englischen/assets/lang/en.json

Sprachwechsel

  1. Sidebar öffnen (Burger-Menü)
  2. Unten auf DE oder EN klicken
  3. Die gesamte UI wird sofort übersetzt
Tipp: Die Spracheinstellung wird im Browser gespeichert und beim nächsten Besuch automatisch wiederhergestellt.

16 14/1 Live-Aufnahmen

Während eines 14/1-Spiels kann jederzeit eine Übersicht aller bisherigen Aufnahmen angezeigt werden.

So öffnest du die Übersicht

  1. Während eines 14/1-Spiels
  2. Klicke auf den History-Button (Uhr-Symbol) in der Steuerungsleiste
  3. Ein Popup zeigt alle bisherigen Aufnahmen mit Punkten und Zwischenständen

Angezeigte Informationen

SpalteBeschreibung
Aufn.Nummer der Aufnahme
Punkte (links)Punkte von Spieler 1 in dieser Aufnahme
StandAktueller Zwischenstand nach der Aufnahme
Punkte (rechts)Punkte von Spieler 2 in dieser Aufnahme
Tipp: Ideal zur Kontrolle während des Spiels und für Schiedsrichter.

17 Neue Disziplinen

Rotation

61 Punkte-Spiel mit der 3-Foul-Regel. Verliert ein Spieler 3 Fouls in Folge, verliert er das Spiel.

One Pocket

Kugeln in die eigene Tasche versenken. Standardziel: 8 Kugeln.

Bank Pool 9-Ball

Nur Bankshots erlaubt. Ziel: 5 Kugeln.

Bank Pool 15-Ball

Nur Bankshots mit allen 15 Kugeln. Ziel: 8 Kugeln.

Doppel-Modi

8-Ball, 9-Ball und 10-Ball können als Doppel (2 vs 2) gespielt werden. Die Teamnamen werden automatisch kombiniert.

18 Equal Offense Training

Pool 14/1 Level (1-4)

LevelFehlerGDZielMaximum
Level 124120150
Level 216120150
Level 3012120150
Level 4017170200
Level 4 - Besonderheiten (v3.5):

9-Ball Level (1-3)

LevelFehlerStartbälleZielMaximum
Level 1244090
Level 2166090
Level 3099090

Bowlliards NEU

Bowling-Wertung auf dem Pooltisch. Einzelspieler-Training mit klassischer Bowling-Punkteberechnung.

EigenschaftWert
Frames10
Kugeln pro Frame10
Max. Versuche pro Frame2 (Frame 10: bis zu 3)
Maximalpunktzahl300 (12 Strikes)

Wertung

ErgebnisSymbolPunkte
StrikeX (rot)10 + nächste 2 Würfe
Spare/ (blau)10 + nächster 1 Wurf
OpenZahlSumme der versenkten Kugeln

10. Frame Sonderregeln

Tipp: Die Bowling-Scorecard zeigt alle 10 Frames mit laufenden Summen. Der aktive Ball wird hervorgehoben.

19 PIN-System

PIN-TypStandardVerwendung
Master-PIN 12345 Spieler verwalten, Stats löschen, History-Einträge löschen
Spieler-PIN 000000 Training starten
Achtung: Master-PIN ändern in assets/js/app.js (Zeile 7): masterPin: "12345"

20 API-Endpunkte

EndpunktBeschreibung
api.php?action=load Alle Spielerdaten laden
api.php?action=save Daten speichern (POST)
api.php?action=get_tables Live-Tischdaten für Monitor/OBS
api.php?action=update_table Tisch-Update senden (POST)

21 Fehlersuche

ProblemLösung
HTTP 500 Schreibrechte prüfen (Schritt 4)
OBS zeigt nichts Browser-Quelle Breite erhöhen, CSS leer lassen
Logo nicht sichtbar Dateiname muss exakt dem Vereinsnamen entsprechen
Training-Buttons reagieren nicht Browser-Konsole (F12) prüfen, training.js vollständig?
Debug-Befehle:
sudo tail -f /var/log/nginx/error.log - Fehler-Log

22 Backup (Server)

# Backup erstellen
cd /var/www
sudo tar -czf billard-backup-$(date +%Y%m%d).tar.gz billard/

# Backup wiederherstellen
sudo tar -xzf billard-backup-20250127.tar.gz

23 In-App Backup & Restore NEU v4.3

Direkt in der App können alle Daten als JSON-Datei exportiert und wieder importiert werden.

Backup erstellen

  1. Navigiere zur Spieler-Datenbank
  2. Klicke auf "Backup" (Download-Icon)
  3. Eine JSON-Datei wird heruntergeladen: billard-backup-YYYY-MM-DD.json

Backup importieren

  1. Klicke auf "Restore" (Upload-Icon)
  2. Gib den Master-PIN ein
  3. Wähle die JSON-Backup-Datei aus
  4. Bestätige den Import - alle Daten werden überschrieben

Enthaltene Daten

Achtung: Beim Import werden alle bestehenden Daten überschrieben! Vorher ein Backup erstellen.

24 Rangliste NEU v4.3

Die Rangliste zeigt alle Spieler in einer sortierbaren Tabelle.

Sortieroptionen

SortierungBeschreibung
SiegquoteWin% (Standard) - Spieler mit weniger als 5 Spielen werden ausgegraut
SiegeAnzahl gewonnener Spiele
HöchstserieBeste Serie (HS)
Bester GDBester Gesamtdurchschnitt

Angezeigte Spalten

25 Spieler-Statistiken NEU v4.3

Detaillierte Statistiken pro Spieler, erreichbar über das Spieler-Action-Popup.

So öffnest du die Statistiken

  1. Navigiere zur Spieler-Datenbank
  2. Klicke auf eine Spielerkarte
  3. Im Popup auf "Statistiken" klicken

Enthaltene Informationen

BereichInhalt
ÜbersichtWin%, Gesamtspiele, Siege, Niederlagen
Win-StreaksAktuelle Serie (Siege/Niederlagen), Beste Siegesserie
Pro DisziplinSiege, Niederlagen, Höchstserie, GD - aufgeschlüsselt nach 14/1, 8-Ball, 9-Ball usw.
Head-to-HeadBilanz gegen jeden Gegner (W / L)

Win% auf Spielerkarten

Die Siegquote wird direkt auf jeder Spielerkarte angezeigt (bei mindestens 1 Spiel). Spieler mit 3+ Siegen in Folge erhalten ein grünes Streak-Badge (z.B. "5W").

Win% Champion

Im Champions-Bereich wird der Spieler mit der besten Siegquote angezeigt (mindestens 5 Spiele erforderlich).

26 Spieler-Vergleich NEU v4.3

Zwei Spieler können direkt miteinander verglichen werden.

So öffnest du den Vergleich

  1. Navigiere zur Spieler-Datenbank
  2. Klicke auf "Vergleich" (Waage-Icon)
  3. Wähle zwei Spieler aus den Dropdowns

Verglichene Werte

KategorieBeschreibung
Win%Siegquote
Siege / NiederlagenGesamtanzahl
HöchstserieBeste Serie
Bester GDGesamtdurchschnitt
Head-to-HeadDirekte Bilanz gegeneinander
Tipp: Der bessere Wert in jeder Kategorie wird grün hervorgehoben.

27 History-Verbesserungen NEU v4.3

Filter

Einträge können gefiltert werden:

CSV Export

Die Spielhistorie kann als CSV-Datei exportiert werden (Semikolon-getrennt, UTF-8 mit BOM für Excel).

Enthaltene Spalten: Datum, Disziplin, Race, Spieler 1, Spieler 2, Ergebnis 1, Ergebnis 2, Gewinner

28 Trainings-Fortschrittsdiagramm NEU v4.3

Zeigt die Entwicklung der Trainingsergebnisse als Liniendiagramm.

So öffnest du das Diagramm

  1. Klicke auf eine Spielerkarte
  2. Im Popup auf "Trainingsverlauf" klicken
  3. Wähle eine Übung aus dem Dropdown

Diagramm-Elemente

Tipp: Das Diagramm nutzt Chart.js und zeigt nur Übungen an, für die Ergebnisse vorliegen.

29 Spiel abbrechen NEU v4.4

Im Popup-Menü (Werkzeug-Icons) steht ein neuer Button zum Abbrechen des laufenden Spiels zur Verfügung.

Funktionsweise

  1. Während eines Spiels auf den Werkzeug-Button (Schraubenschlüssel) klicken
  2. Im Popup erscheint neben Restart, Undo und Hilfe ein neues Abbrechen-Icon (Kreuz)
  3. Nach Klick wird ein Bestätigungs-Popup angezeigt
  4. Bei Bestätigung wird das Spiel beendet - ohne dass Werte in die Statistik/Bilanz übernommen werden
Wichtig: Bei Abbruch werden keine Ergebnisse gespeichert - weder Siege/Niederlagen noch Höchstserien oder GD-Werte. Das Spiel wird so behandelt, als hätte es nicht stattgefunden.

30 Icon-Konfiguration NEU v4.4

In der config.php kann das Aussehen der Buttons konfiguriert werden.

Einstellungen

KonstanteWerteBeschreibung
ICON_STYLE 'round' / 'square' Runde Icons (Standard) oder quadratische Icons mit abgerundeten Ecken
ICON_3D true / false 3D-Schatten (Neumorphism-Effekt) aktivieren oder deaktivieren (Standard: flach)

Beispiel config.php

define('ICON_STYLE', 'square');   // 'round' oder 'square'
define('ICON_3D', true);          // true = 3D-Schatten, false = flach
Tipp: Die Einstellungen wirken sich auf alle Buttons der Anwendung aus (Score-Buttons, Steuerungsleiste, Training). Der 3D-Effekt passt sich automatisch an das gewählte Farbschema (Dark/Light) an.

31 Impressum & Datenschutz NEU v4.4

Über das Seitenmenü können Impressum und Datenschutzerklärung aufgerufen werden. Die Seiten enthalten Mustertexte, die angepasst werden sollten.

Aktivierung

In der config.php:

define('SHOW_LEGAL', true);   // true = sichtbar, false = ausgeblendet

Zugang

  1. Sidebar öffnen (Burger-Menü)
  2. Unterhalb von "Vollbild" erscheinen die Links Impressum und Datenschutz
  3. Auf den jeweiligen Link klicken
Wichtig: Die Seiten enthalten Mustertexte mit einem Hinweis-Banner. Die Texte müssen an die eigenen Angaben angepasst werden. Die deutschen Texte befinden sich in legal_de.php, die englischen in legal_en.php. Bei Sprachwechsel werden die Texte automatisch umgeschaltet.

32 Login-System NEU v4.5

Die Startseite (index.php) kann optional mit einem Login geschützt werden. Es gibt zwei Login-Methoden: Admin-Login und Spieler-Login.

Aktivierung

In der config.php:

define('REQUIRE_LOGIN', true);    // true = Login erforderlich, false = kein Login
define('LOGIN_USER', 'admin');    // Admin-Benutzername
define('LOGIN_PASS', 'billard'); // Admin-Passwort

Admin-Login

Mit den in config.php definierten Zugangsdaten (LOGIN_USER / LOGIN_PASS) kann sich der Administrator anmelden.

Spieler-Login

Spieler können sich mit ihrem Namen und ihrer PIN anmelden, sofern die Checkbox "Login Startpage" im Spieler-Editor aktiviert ist.

  1. Navigiere zur Spieler-Datenbank
  2. Spieler bearbeiten (Stift-Icon)
  3. Checkbox "Login Startpage" aktivieren
  4. Speichern

Login-Formular

Logout

In der Sidebar erscheint ein Logout-Button (nur sichtbar wenn Login aktiv ist). Klick darauf beendet die Session.

Wichtig: Nur die Startseite (index.php) wird geschützt. Monitor-Seiten, OBS-Overlays und Hilfe-Seiten bleiben frei zugänglich.
Tipp: Bei REQUIRE_LOGIN = false (Standard) ist kein Login erforderlich und der Logout-Button wird ausgeblendet.

Version History


Pro Billiard Scoreboard System v4.5 | Entwickelt für Billard-Spieler