schachbulle / contao-lizenzverwaltung-bundle
Lizenzverwaltung des Deutschen Schachbundes für Contao 4 und Contao 5. Mit Schnittstelle zum Lizenzmanagement (LiMS) des DOSB.
Package info
github.com/Samson1964/contao-lizenzverwaltung-bundle
Type:contao-bundle
pkg:composer/schachbulle/contao-lizenzverwaltung-bundle
Requires
- php: ^8.1
- ext-curl: *
- ext-json: *
- codefog/contao-haste: ^4.25 || ^5.4
- contao/core-bundle: ^4.13 || ^5.3
- menatwork/contao-multicolumnwizard-bundle: ^3.6
- phpoffice/phpspreadsheet: ^1.29 || ^2.0 || ^3.0
- schachbulle/contao-helper-bundle: ^2.0
- symfony/config: ^5.4 || ^6.0 || ^7.0
- symfony/console: ^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
- symfony/security-core: ^5.4 || ^6.0 || ^7.0
Requires (Dev)
- contao/manager-plugin: ^2.0
Suggests
None
Provides
None
Conflicts
- contao/core: *
- contao/manager-plugin: <2.0 || >=3.0
Replaces
None
This package is auto-updated.
Last update: 2026-09-15 13:28:07 UTC
README
Verwaltet die Trainer- und Ausbilderlizenzen des Deutschen Schachbundes in Contao und überträgt sie an das Lizenzmanagementsystem (LiMS) des Deutschen Olympischen Sportbundes.
Frank Hoppe
Voraussetzungen
| PHP | 8.1 bis 8.4 |
| Contao | 4.13 oder 5.3+ |
| Erweiterungen | curl, json |
Mitinstalliert werden codefog/contao-haste, menatwork/contao-multicolumnwizard-bundle,
schachbulle/contao-helper-bundle und phpoffice/phpspreadsheet.
Installation
composer require schachbulle/contao-lizenzverwaltung-bundle
Anschließend die Datenbank aktualisieren (Contao Manager oder
vendor/bin/contao-console contao:migrate).
Einrichtung
Unter System → Einstellungen, Bereich Lizenzverwaltung:
| Einstellung | Bedeutung |
|---|---|
| Ordner für die Lizenzdateien vom DOSB | Hier legt das Bundle die vom DOSB abgerufenen Urkunden als PDF ab. |
| Ordner für die versendeten Dateien | Hier landen die an die Referenten verschickten Excel-Listen. |
| Absender für E-Mail-Versand | In der Form Name <adresse@example.org>. |
| Signatur für E-Mail-Versand | Wird als Platzhalter ##lizenz_signatur## in die Vorlagen eingesetzt. |
| LiMS API-Adresse | Basisadresse der Schnittstelle, mit abschließendem Schrägstrich. |
| LiMS Benutzername / Passwort | Zugangsdaten für die Schnittstelle. |
| LiMS URL zum Lizenzmanagement | Adresse der Weboberfläche, für den Knopf „Ansehen“ am Datensatz. |
Ohne LiMS-Adresse laufen alle Abrufe ins Leere und vermerken das am Datensatz; die Verwaltung der Lizenzen im Backend funktioniert davon unabhängig.
Backend-Modul
Das Modul Inhalte → Lizenzverwaltung führt Personen, deren Lizenzen, die Verbandsreferenten, die E-Mail-Vorlagen und die Verbände.
- Lizenz erstellen/verlängern überträgt einen Datensatz an das LiMS und schreibt die vom DOSB vergebene Lizenznummer zurück.
- PDF abrufen holt die Urkunde in den Formaten DIN A4 und Karte und legt sie im Lizenzordner ab.
- Aktive Lizenzen zum DOSB exportieren überträgt alle Lizenzen, die seit der letzten Übertragung geändert wurden oder zuletzt einen Fehler ergaben — nacheinander, mit Fortschrittsanzeige.
- Excel-Export gibt genau die Datensätze aus, die in der Übersicht gerade zu sehen sind: Suche, Filter und Spezialfilter werden übernommen.
- E-Mail versenden verschickt die Lizenzurkunde an den Trainer, auf Wunsch mit Kopie an den Verbandsreferenten und Blindkopie an die DSB-Geschäftsstelle.
Der Spezialfilter über der Übersicht schränkt auf gültige, ungültige oder markierte Lizenzen ein, auf ungesendete E-Mails oder auf einen einzelnen Landesverband.
Frontend-Modul „Lizenzenliste“
Gibt die Personen mit einer gültigen Lizenz als Tabelle aus. Welche Lizenzarten erscheinen, legt die Moduleinstellung Lizenzart fest; Lizenzspalte anzeigen blendet die Lizenzart mit ein, Lizenz gültig bis Jahresende rundet das Gültigkeitsdatum in der Anzeige auf den 31. Dezember auf.
Template: mod_lizenzenliste.
Frontend-Modul „Trainerliste aus dem LiMS“
Gibt eine der vier öffentlichen Trainerlisten unmittelbar aus dem Lizenzmanagementsystem des DOSB aus. Die Tabellen der Lizenzverwaltung spielen dabei keine Rolle.
| Liste | Ausbildungsgänge im LiMS |
|---|---|
| A-Trainer | 515 (Leistungssport), 71011 (Breitensport) |
| B-Trainer | 514 (Leistungssport), 71010 (Breitensport) |
| C-Trainer | 513 (Leistungssport), 512 (Breitensport) |
| DOSB-Ausbilder | 49337 (Ausbilder-Zertifikat) |
Ausgegeben werden Nachname, Vorname, Verband und das Gültigkeitsdatum, sortiert nach Nachname und Vorname, darunter der Stand des Abrufs. Lizenz gültig bis Jahresende rundet das Datum in der Anzeige auf den 31. Dezember auf. Lizenzen, die das LiMS anonymisiert ausliefert, erscheinen nicht.
Voraussetzung sind die LiMS-Zugangsdaten in den Einstellungen.
Cache: Alle Lizenzen werden in einem Zug abgerufen und eine Woche lang im Contao-Cache gehalten; die vier Listen teilen sich diesen Abruf. Schlägt ein Abruf fehl, bleibt die letzte erfolgreiche Fassung sichtbar.
Täglicher Neuabruf: Ein Cronjob des Bundles ruft die Listen einmal täglich über
Contaos eigenen Cron neu ab. Der Vollabruf dauert rund 16 Sekunden; dank des Jobs wartet
kein Besucher darauf. Eine eigene Zeile in der Crontab des Servers ist nicht nötig.
Contao startet seinen Cron entweder über Seitenaufrufe — dann erst, nachdem die Antwort
an den Besucher gesendet ist — oder, falls eingerichtet, über den Systemcron
vendor/bin/contao-console contao:cron.
Von Hand lässt sich der Abruf jederzeit anstoßen:
vendor/bin/contao-console lizenzverwaltung:lims-trainerliste --frisch
--rohdaten zeigt zusätzlich den Aufbau der Antworten von /lookup und
/lookup_organisations, mit auf den Anfangsbuchstaben gekürzten Namen.
Template: mod_lims_trainerliste.
Quartalsversand an die Referenten
Referenten, bei denen Lizenzliste senden gesetzt ist, bekommen einmal je Quartal die Lizenzliste ihres Verbands als Excel-Datei, zusammen mit einer Aufstellung der Lizenzen, die in den nächsten sechs Monaten ablaufen.
Ausgelöst wird der Versand über einen Zeitplan (Cron) auf dem Server:
vendor/bin/contao-console lizenzverwaltung:trainerliste
| Schalter | Wirkung |
|---|---|
--dry-run |
Zeigt nur an, was geschehen würde. Es wird nichts verschickt und nichts geschrieben. |
--force, -f |
Verschickt auch dann, wenn im laufenden Quartal bereits versendet wurde. |
Ein täglicher Aufruf genügt: Der Befehl prüft je Referent selbst, ob im laufenden Quartal schon versendet wurde. Schlägt der Versand an einen Empfänger fehl, läuft er bei den übrigen weiter und meldet die Fehlschläge am Ende; das Versanddatum bleibt dann ungesetzt, sodass der nächste Lauf es erneut versucht.
Bis Fassung 4.3.6 wurde dafür die Adresse
bundles/contaolizenzverwaltung/Trainerliste.phpaufgerufen. Diese Datei gibt es nicht mehr; der Zeitplan muss auf den Konsolenbefehl umgestellt werden.
E-Mail-Vorlagen
Die Vorlagen liegen als Datensätze in der Lizenzverwaltung und sind vollständige
HTML-Dokumente. Verwertet wird beim Versand der Inhalt des body-Elements. Diese
Platzhalter stehen zur Verfügung:
| Platzhalter | Inhalt |
|---|---|
##css## |
Stilblock, den das Bundle beim Versand einsetzt |
##lizenz_title## |
Betreff der E-Mail |
##lizenz_vorname##, ##lizenz_nachname## |
Name des Trainers |
##lizenz_geschlecht## |
m oder w |
##lizenz_art## |
Lizenzart, etwa C-B |
##lizenz_nummer## |
DOSB-Lizenznummer |
##lizenz_content## |
Der redaktionelle Text der E-Mail |
##lizenz_signatur## |
Signatur aus den Einstellungen |
Routen
Zwei Routen bedienen den Stapelexport zum DOSB. Sie laufen im Backend-Bereich und verlangen einen angemeldeten Benutzer mit Zugriff auf das Modul „Lizenzverwaltung“:
/_lizenzverwaltung/lims/export/{id}— überträgt eine Lizenz/_lizenzverwaltung/lims/umzug/{id}— meldet eine Lizenz in einen Unterverband um
Sie sind nicht dafür gedacht, von Hand aufgerufen zu werden.
Hinweis zum Update auf Fassung 5.0.0
Wo Contao die Bundle-Dateien kopiert statt verlinkt, bleiben nach dem Update die alten
Skripte unter public/bundles/contaolizenzverwaltung/ liegen:
Trainerliste.php, ajaxRequest.php, ajaxRequestUmzug.php und
migration_c3-to-c4.php. Sie waren ohne Anmeldeprüfung erreichbar und gehören von Hand
gelöscht.
Lizenz
LGPL-3.0-or-later