Anmeldung
Lauftext
Ohne Zeitpunkte läuft der Text, bis er hier wieder abgeschaltet wird.
Plakat auf der Startseite
Das Plakat hängt leicht gedreht über dem großen Startseiten-Foto, bis es hier wieder abgeschaltet wird. „Bild entfernen“ hängt es nur ab – endgültig gelöscht wird rechts im Archiv.
Bisherige Plakate
- Plakate werden geladen …
Neue Neuigkeit
Vorhandene Beiträge
- Beiträge werden geladen …
Neuer Termin
Dieser Termin stammt aus dem Verbandssystem – der nächste Import überschreibt die Änderung.
Vorhandene Termine
- Termine werden geladen …
Neuer Link
Vorhandene Links
- Links werden geladen …
Gruppen
- Gruppen werden geladen …
Die Reihenfolge bestimmt die Anzeige auf der Links-Seite. Umbenennen ändert alle Links der Gruppe, Löschen entfernt die Gruppe samt all ihrer Links.
Neuer Verein
Dieser Verein wurde über die Schnittstelle geliefert – die nächste Lieferung überschreibt die Änderung.
Vereine auf der Karte
- Vereine werden geladen …
Öffentliche Seite: Billardvereine in Deutschland. Der eigene Verein steht fest auf der Karte und erscheint hier nicht.
Mannschaften importieren
Mannschaften in der Club Cloud
Liest die Mannschaften der auf der Verbandsseite angezeigten Saison aus und aktualisiert damit die Mannschaften-Seite. Nur die importierte Saison wird ersetzt – frühere Saisons bleiben abrufbar.
Vereine der Vereinskarte (DBU)
Gleicht die Vereinskarte jeden Sonntag um 3:00 Uhr mit dem Vereinsverzeichnis der Deutschen Billard-Union ab: neue Vereine mit Spiellokal kommen dazu, Spiellokal, Adresse, Telefon und Disziplinen werden aktualisiert. Namen, Homepages und von Hand gesetzte Koordinaten bleiben, gelöscht wird nichts.
Protokoll
- Protokoll wird geladen …
Neues Vorstandsmitglied
Die Liste erscheint auf der Vereinsseite im Abschnitt „Der Vorstand“. Dieselbe Person kann mehrere Ämter haben (je Amt ein Eintrag).
Vorstandsliste
- Vorstandsliste wird geladen …
Die Reihenfolge bestimmt die Anzeige auf der Vereinsseite.
Neue Beitragsklasse
Fußnote unter der Tabelle
Beitragsklassen
- Beitragsklassen werden geladen …
Die Reihenfolge bestimmt die Anzeige auf der Vereinsseite.
Neues Dokument
Die Dokumente erscheinen auf der Vereinsseite im Abschnitt „Dokumente“ als PDF-Downloads. Beim Bearbeiten ersetzt eine neu gewählte Datei die vorhandene; ohne Auswahl bleibt sie unverändert. Der Download-Dateiname ergibt sich aus dem Titel.
Vorhandene Dokumente
- Dokumente werden geladen …
Die Reihenfolge bestimmt die Anzeige auf der Vereinsseite. Ohne Dokumente verschwindet der Abschnitt dort ganz.
Seitenaufrufe
Aufrufe je Tag (letzte 30 Tage)
Gezählt werden anonyme Seitenaufrufe und Klicks auf die Abschnitts-Menüs (ein Zähler je Seite bzw. Abschnitt und Tag, ohne IP-Adressen oder Cookies) – keine eindeutigen Besucher. Die Summen und der Tagesverlauf zählen nur Seitenaufrufe; die Registerkarten zeigen die letzten 30 Tage.
Meistgelesene Beiträge
- Wird geladen …
Der Lesezähler zählt je Browser einmal (Merker im Browser selbst, keine serverseitige Wiedererkennung).
Spielberichte übermitteln
Spielberichte können als HTML direkt an die Schnittstelle geschickt werden und erscheinen sofort auf der Neuigkeitenseite:
curl -X POST "https://<server>/api/reports?category=POOL&externeId=<Spielkennung>" \
-H "Content-Type: text/html" \
-H "X-Api-Token: <Token>" \
--data-binary @spielbericht.html
Der Token wird auf dem Server über die Umgebungsvariable BGRW_REPORT_TOKEN festgelegt. Titel wird aus dem HTML übernommen (<title> oder erste Überschrift) oder per ?title=... gesetzt. Die optionale ?externeId=... ist der Schlüssel des anliefernden Systems: ein Bericht mit bekannter id wird aktualisiert statt neu angelegt, und dieselbe id verknüpft den Bericht mit dem zugehörigen Termin („Spielbericht lesen“ in der Terminliste).
Eingegangene Spielberichte erscheinen im Bereich „Neuigkeiten“ unter den vorhandenen Beiträgen und lassen sich dort bearbeiten oder löschen.
Termine übermitteln
Termine nimmt die Schnittstelle als JSON entgegen (gleicher Token wie bei den Spielberichten). Ein Termin mit bekannter externeId wird aktualisiert statt neu angelegt – der Import kann also einfach wiederholt werden:
curl -X POST "https://<server>/api/termine" \
-H "Content-Type: application/json" \
-H "X-Api-Token: <Token>" \
-d '{"externeId":"<Spielkennung>","typ":"LIGASPIEL","disziplin":"POOL",
"datum":"2026-10-03T13:00:00Z","liga":"Bezirksliga",
"eigeneMannschaft":"BGRW 1","gegner":"BC Beispiel 2",
"heimspiel":true,"spielnummer":"1017"}'
Pflichtfelder: typ (LIGASPIEL oder AUSRICHTUNG), disziplin (POOL oder CARAMBOL) und datum (ISO-8601, UTC). Ligaspiele brauchen liga, eigeneMannschaft, gegner und heimspiel; Ausrichtungen stattdessen name, dazu optional runde (VORRUNDE/ZWISCHENRUNDE/ENDRUNDE) und teilnehmer (Liste von Spielernamen).
Die externeId verknüpft den Termin mit dem Spielbericht: wird der Bericht später mit derselben id hochgeladen, zeigt die Terminliste „Spielbericht lesen“. Übermittelte Termine erscheinen im Bereich „Termine“ als „extern gepflegt“ und lassen sich dort auch bearbeiten – bis der nächste Import die Änderung überschreibt.
Termin löschen
Ein einzelner Termin wird über seine id entfernt (Feld id aus der Antwort beim Anlegen), bei Erfolg ist der HTTP Status 204:
curl -X DELETE "https://<server>/api/termine/<id>" \
-H "X-Api-Token: <Token>"
Das Sammellöschen (DELETE /api/termine ohne id) steht der Schnittstelle bewusst nicht offen – es ist Administratoren im Login-Bereich vorbehalten.
Vereine übermitteln
Vereine für die Karte nimmt die Schnittstelle als JSON entgegen (gleicher Token wie bei Spielberichten und Terminen). Ein Verein mit bekannter externeId – ohne externeId: mit bekannter Homepage – wird aktualisiert statt neu angelegt (HTTP 200 statt 201); ohne beides wird immer neu angelegt:
curl -X POST "https://<server>/api/billardvereine" \
-H "Content-Type: application/json" \
-H "X-Api-Token: <Token>" \
-d '{"externeId":"<Vereinskennung>","name":"BC Beispiel 1980 e.V.",
"url":"https://bc-beispiel.de","ort":"Krefeld",
"bundesland":"Nordrhein-Westfalen","spiellokal":"Billard-Sport-Etage",
"strasse":"Uerdinger Straße 2-8","plz":"47799","telefon":"02151 26344",
"disziplinen":["Pool","Carambol"]}'
Pflichtfelder: name, ort und bundesland (eines der 16 Bundesländer, ausgeschrieben). Optional url (Homepage, http/https) und telefon (Ziffern, Leerzeichen, + - / ( )). disziplinen ist eine Liste aus Pool, Carambol, Snooker und Kegelbillard (Karambol/Kegel werden umgesetzt). Optional das Spiellokal: spiellokal (Name), strasse (mit Hausnummer) und plz – aus der Adresse bestimmt der Server die Position auf der Karte (über OpenStreetMap); ohne Adresse oder wenn sie nicht gefunden wird, die Ortsmitte. Genaue Koordinaten lassen sich stattdessen als lat und lon (nur gemeinsam) mitschicken – sie haben Vorrang.
Mehrere Vereine auf einmal: dasselbe als JSON-Array an POST /api/billardvereine/import – alles oder nichts, die Fehlermeldung nennt den fehlerhaften Eintrag. Ohne Koordinaten dauert jeder Eintrag gut eine Sekunde (Takt des Ortsdienstes).
Verein ändern oder löschen
Über die id (Feld id aus der Antwort): PUT /api/billardvereine/<id> mit denselben Feldern ändert den Verein (die externeId bleibt dabei unverändert), DELETE entfernt ihn (HTTP 204):
curl -X DELETE "https://<server>/api/billardvereine/<id>" \
-H "X-Api-Token: <Token>"
E-Mails als Neuigkeiten abrufen
Ungelesene Mails freigegebener Absender werden automatisch als Neuigkeit (Kategorie Verein) veröffentlicht und im Postfach als gelesen markiert. Anhänge und eingebettete Bilder werden nicht übernommen.
Mails anderer Absender werden abgelehnt. Eine abgelehnte Mail lässt sich nachholen, indem sie im Postfach wieder als ungelesen markiert wird.
Zuletzt abgerufene Mails
- Protokoll wird geladen …
Kontaktformular
Neuer Benutzer
Redakteure pflegen Neuigkeiten, Termine, Links, Lauftext und Plakat. Administratoren können zusätzlich Benutzer verwalten.
Vorhandene Benutzer
- Benutzer werden geladen …