schachbulle / contao-schiedsrichter-bundle
Verwaltet Schiedsrichterlizenzen mit Stufen, Laufzeiten und Verlängerungen.
Package info
github.com/Samson1964/contao-schiedsrichter-bundle
Type:contao-bundle
pkg:composer/schachbulle/contao-schiedsrichter-bundle
Requires
- php: ^7.4 || ^8.0
- contao/core-bundle: ^4.13 || ^5.0
- doctrine/dbal: ^3.6 || ^4.0
- schachbulle/contao-helper-bundle: ^2.0
- symfony/config: ^5.4 || ^6.0 || ^7.0
- symfony/dependency-injection: ^5.4 || ^6.0 || ^7.0
- symfony/http-foundation: ^5.4 || ^6.0 || ^7.0
- symfony/http-kernel: ^5.4 || ^6.0 || ^7.0
- symfony/routing: ^5.4 || ^6.0 || ^7.0
Requires (Dev)
- contao/manager-plugin: ^2.0
- phpunit/phpunit: ^9.5 || ^10.5
Suggests
None
Provides
None
Conflicts
- contao/core: *
- contao/manager-plugin: <2.0 || >=3.0
Replaces
None
README
Verwaltet die Lizenzen der Schachschiedsrichter: Stufen, Laufzeiten und Verlängerungen. Die Stammdaten kommen aus der Datenbank des Ergebnisdienstes und werden von dort übernommen; im Frontend lässt sich daraus eine Liste der aktuell lizenzierten Schiedsrichter ausgeben.
Anforderungen
- PHP 7.4 bis 8.4
- Contao 4.13 LTS oder Contao 5
- Zugang zur Ergebnisdienst-Datenbank mit der Tabelle
sr-person
Installation
Über den Contao Manager nach schachbulle/contao-schiedsrichter-bundle suchen,
oder auf der Kommandozeile:
composer require schachbulle/contao-schiedsrichter-bundle
Anschließend die Datenbank aktualisieren (Contao Manager, Systemwartung, oder
vendor/bin/contao-console contao:migrate).
Einrichtung
Im Backend unter Einstellungen im Abschnitt Schiedsrichter eintragen:
| Feld | Bedeutung |
|---|---|
| Host | Server der Ergebnisdienst-Datenbank |
| Datenbank | Name der Ergebnisdienst-Datenbank |
| Benutzer, Passwort | Zugangsdaten dazu |
| Newsletter-Verteiler | Der Verteiler, dessen Empfänger gepflegt werden sollen |
| Newsletter Zwangs-E-Mail | Adresse, die immer Empfänger bleibt |
| Newsletter Zugangs-Token | Kennwort für den Aufruf des Abgleichs von aussen, mindestens 16 Zeichen |
Ein brauchbares Token erzeugt zum Beispiel:
php -r "echo bin2hex(random_bytes(16)), PHP_EOL;"
Benutzung
Backend-Modul
Unter Inhalte → Schiedsrichter stehen alle Datensätze. Der Knopf Import holt den aktuellen Stand aus dem Ergebnisdienst: Vorhandene Datensätze werden aktualisiert, unbekannte neu angelegt. Wer im Ergebnisdienst nicht mehr auftaucht, wird nicht gelöscht, sondern nur auf nicht veröffentlicht gesetzt.
Gesucht wird der Reihe nach über die Personenkennziffer, die FIDE-Kennung und die Lizenznummer — in dieser Reihenfolge, weil die Personenkennziffer am beständigsten ist und die Lizenznummer bei einer Höherstufung wechselt.
Frontend-Modul „Schiedsrichterliste"
Zeigt alle veröffentlichten Schiedsrichter mit gültiger Lizenz als Tabelle (Nachname, Vorname, Ort, Lizenz, letzte Änderung). Als gültig gilt, wessen Prüfung höchstens zehn und wessen Ausbildung höchstens fünf Jahre zurückliegt; ein nicht erfasstes Datum schließt niemanden aus.
Das Aussehen lässt sich über eine eigene Fassung des Templates
mod_schiedsrichter.html5 anpassen.
Newsletter-Abgleich
Die Adresse
https://example.org/schiedsrichter/newsletter-synchronisation?token=DASTOKEN
trägt alle aktiven und ruhenden Schiedsrichter in den eingestellten Verteiler ein und entfernt alle übrigen Empfänger. Sie ist zum Aufruf per Cronjob gedacht und verlangt deshalb keine Anmeldung im Backend — stattdessen schützt sie das Zugangs-Token aus den Einstellungen. Ohne hinterlegtes Token weist der Abgleich jeden Aufruf ab, damit der Verteiler nicht versehentlich ungeschützt läuft.
Wer das Token nicht im Zugriffsprotokoll des Webservers stehen haben möchte, schickt es stattdessen als Kopfzeile:
curl -H "X-Schiedsrichter-Token: DASTOKEN" https://example.org/schiedsrichter/newsletter-synchronisation
Die Antwort nennt nur Stückzahlen; die Schiedsrichter ohne hinterlegte Adresse stehen im Systemprotokoll, ebenso der Grund für einen abgewiesenen Aufruf.
Der Verteiler wird ausschließlich aus dem Ergebnisdienst gespeist — von Hand eingetragene Empfänger entfernt der Abgleich wieder.
Umstieg von Version 1.x
Version 2.0.0 läuft unter Contao 4.13 und Contao 5. Beim Umstieg ist zu beachten:
codefog/contao-hasteist keine Abhängigkeit mehr. Der Umschalter in der Liste kommt jetzt vom Contao-Kern. Wenn keine andere Erweiterung Haste braucht, kann das Paket entfernt werden.- Die beiden PHP-Dateien unter
public/bundles/contaoschiedsrichter/sind entfallen. An ihrer Stelle stehen Routen. Die alten Adressen…/bundles/contaoschiedsrichter/Import.phpund…/bundles/contaoschiedsrichter/NewsletterSynchronisation.phpfunktionieren weiterhin, weil sie als zusätzliche Routen nachgebildet sind — aber nur, wenn die alten Dateien wirklich weg sind. Wo Contao die Bundle-Dateien kopiert statt verlinkt, bleiben sie beim Update liegen und müssen von Hand auspublic/bundles/contaoschiedsrichter/(bzw.web/bundles/…) entfernt werden. Solange sie dort liegen, liefert der Webserver sie unmittelbar aus und Symfony sieht den Aufruf gar nicht. - Der Import verlangt jetzt eine Anmeldung im Backend. Vorher war die Adresse für jeden erreichbar.
- Der Newsletter-Abgleich verlangt ein Token. Nach dem Update zuerst in den
Einstellungen ein Newsletter Zugangs-Token eintragen und den Cronjob um
?token=DASTOKENergänzen — sonst läuft der Abgleich nicht mehr an. Der Grund steht dann im Systemprotokoll.
Entwickler
Frank Hoppe
Lizenz
LGPL-3.0-or-later