schachbulle / contao-chesstournament-bundle
Verwaltet Schachturniere mit Teilnehmern, Runden und Ergebnissen für Contao 4.13 und Contao 5. Wird nicht mehr gepflegt.
Package info
github.com/Samson1964/contao-chesstournament-bundle
Type:contao-bundle
pkg:composer/schachbulle/contao-chesstournament-bundle
Requires
- php: ^5.6 || ^7.0
- codefog/contao-haste: *
- contao/core-bundle: ^4
Requires (Dev)
Conflicts
- contao/core: *
- contao/manager-plugin: <2.0 || >=3.0
This package is auto-updated.
Last update: 2026-08-01 11:29:23 UTC
README
Diese Erweiterung wird nicht mehr gepflegt.
Nachfolger ist schachbulle/contao-schachturnier-bundle. Es kann alles, was hier beschrieben ist, und darüber hinaus Kreuztabellen, Fortschrittstabellen, Ranglisten mit Feinwertungen und Termine — also genau die Anzeigeformate, die hier nie umgesetzt wurden.
Die letzte veröffentlichte Fassung ist 0.0.2 vom 30.11.2023 und läuft nur unter Contao 4 mit PHP 7. Im Repository liegt eine ungetaggte Portierung auf PHP 8 und Contao 4.13/5; sie ist lauffähig, aber nicht veröffentlicht.
Contao-Erweiterung zur Verwaltung von Schachturnieren: Teilnehmer, Paarungen, Ergebnisse und Partien im PGN-Format. Ein eingebauter Paarungsgenerator erstellt die Paarungen eines Rundenturniers nach dem Standardsystem, ein Inhaltselement gibt die Teilnehmerliste im Frontend aus.
Frank Hoppe
Anforderungen
- PHP 7.4 oder neuer (PHP 8 wird unterstützt)
- Contao 4.13 LTS oder Contao 5
Installation
composer require schachbulle/contao-chesstournament-bundle
Anschließend im Contao Manager bzw. über contao:migrate die Datenbank
aktualisieren. Angelegt werden die drei Tabellen tl_chesstournament,
tl_chesstournament_players und tl_chesstournament_results sowie sieben
zusätzliche Felder in tl_content.
Hinweis zum Update von 0.0.x
- Die Abhängigkeit zu
codefog/contao-hasteist entfallen. Wird Haste von keiner anderen Erweiterung mehr gebraucht, kann es aus dem Projekt entfernt werden. - Das Backend-Modul hieß intern
chesscompetitionund heißt jetztchesstournament. Wer Backend-Benutzergruppen auf das Modul berechtigt hat, muss diese Berechtigung einmal neu setzen (System → Benutzergruppen → Modulzugriff).
Backend
Die Verwaltung liegt unter Inhalte → Schachturniere. Sie ist dreistufig aufgebaut: Turnier → Teilnehmer → Ergebnisse.
Turniere
Die oberste Ebene führt die Turniere auf, das zuletzt beendete steht oben. Je Turnier werden Titel, Beginn und Ende erfasst. Über das Auge-Symbol wird ein Turnier veröffentlicht oder zurückgezogen.
Die Schaltflächen der Zeile im Einzelnen:
| Symbol | Bedeutung |
|---|---|
| Stift | Führt in die Teilnehmerliste des Turniers |
| Kopfzeile | Öffnet die Turnierdaten selbst (Titel, Zeitraum) |
| Kopie | Dupliziert das Turnier |
| Papierkorb | Löscht das Turnier samt Teilnehmern und Ergebnissen |
| Auge | Veröffentlichen oder zurückziehen |
| Lupe | Zeigt alle Felder des Datensatzes |
Teilnehmer
Je Teilnehmer werden Nachname, Vorname, akademischer Titel, Land, Verein, nationale Wertungszahl (DWZ), FIDE-Wertungszahl (Elo), FIDE-Titel und wahlweise ein Bild erfasst.
Wichtig ist die Reihenfolge der Liste: Sie wird per Drag-and-drop festgelegt und bestimmt die Startnummer, die in eckigen Klammern vor jedem Namen steht. Mit genau diesen Startnummern rechnet der Paarungsgenerator. Am Zeilenende zeigt ein Symbol, ob ein Spielerbild hinterlegt ist.
Über der Liste stehen zwei zusätzliche Schaltflächen:
- Ergebnisse — wechselt zur Ergebnisliste desselben Turniers
- Paarungsgenerator — erzeugt die Paarungen, siehe unten
Paarungsgenerator
Der Paarungsgenerator erstellt die Paarungen aller Runden eines Rundenturniers nach dem Standardsystem: Jeder spielt genau einmal gegen jeden. Bei gerader Teilnehmerzahl entstehen n-1 Runden, bei ungerader n Runden — dort ist in jeder Runde einer spielfrei, und über das ganze Turnier gesehen genau einmal jeder.
Für jede Paarung entsteht ein Datensatz in der Ergebnisliste, mit Runde, Brett sowie Weiß und Schwarz, aber noch ohne Ergebnis.
Achtung: Der Generator löscht zuvor alle vorhandenen Paarungen des Turniers, einschließlich der bereits eingetragenen Ergebnisse, PGN-Daten und Kommentare. Er gehört an den Anfang eines Turniers, nicht in dessen Verlauf. Vor dem Ausführen fragt das Backend deshalb nach.
Da die Startnummern aus der Reihenfolge der Teilnehmerliste stammen, führt ein nachträgliches Umsortieren bei erneutem Aufruf zu anderen Paarungen. Sind weniger als zwei Teilnehmer erfasst, passiert nichts und es erscheint ein Hinweis.
Ergebnisse
Die Ergebnisliste ist nach Runde und Brett sortiert. Je Paarung lassen sich erfassen:
- Runde und Brett
- Datum und Uhrzeit des Partiebeginns
- Weiß und Schwarz — zur Auswahl stehen nur Teilnehmer desselben Turniers
- Ergebnis aus einer festen Liste (siehe unten)
- die Partie im PGN-Format
- ein öffentlicher Kommentar, HTML und Insert-Tags sind erlaubt
In der Listenansicht steht zwischen beiden Namen das Ergebnis, ersatzweise ein Strich. Ist ein Ergebnis eingetragen, verrät der Zusatz „PGN“ dahinter durch seine Farbe, ob auch die Partie hinterlegt ist: grün ja, rot nein.
Die auswählbaren Ergebnisse:
| Wert | Bedeutung |
|---|---|
1:0, 0:1 |
Sieg am Brett |
½:½ |
Remis |
+:-, -:+ |
Sieg kampflos |
=:= |
beide kampflos |
0:0 |
Schiedsrichterentscheidung, beide null |
H:H |
Hängepartie |
½:0, 0:½, ½:1, 1:½ |
Schiedsrichterentscheidungen |
Inhaltselement „Schachturnier“
Unter den Inhaltselementen erscheint die Gruppe Schach-Elemente mit dem Element Schachturnier. Einstellungen:
| Feld | Bedeutung |
|---|---|
| Turnier | Das auszugebende Turnier |
| Anzeigeformat | Welche Daten ausgegeben werden, siehe unten |
| Runde | Nur beim Format „Ergebnisse (eine Runde)“; angeboten werden die im Turnier vorhandenen Rundennummern |
| Verein / DWZ / Elo / Land anzeigen | Blendet die jeweilige Spalte der Teilnehmerliste ein oder aus |
Anzeigeformate
Umgesetzt ist bislang nur die Teilnehmerliste. Die übrigen Formate (Kreuztabelle, Fortschrittstabelle, Paarungen, Ergebnisse aller Runden, Ergebnisse einer Runde) sind angelegt, aber noch ohne Funktion; sie sind in der Auswahl entsprechend gekennzeichnet und geben nichts aus.
Wer Kreuztabellen und Feinwertungen braucht, ist mit
schachbulle/contao-schachturnier-bundle besser bedient.
Templates
| Template | Verwendung |
|---|---|
ce_chesstournament_players |
Teilnehmerliste |
ce_chesstournament |
Grundtemplate der übrigen Anzeigeformate |
Ein eigenes Template lässt sich am Inhaltselement unter Template-Einstellungen hinterlegen; es hat dann Vorrang vor beiden.
Verfügbare Templatevariablen
Das Template erhält vier Schalter aus den Elementeinstellungen …
| Variable | Inhalt |
|---|---|
$this->view_verein |
Spalte „Verein“ anzeigen |
$this->view_nwz |
Spalte „DWZ“ anzeigen |
$this->view_elo |
Spalte „Elo“ anzeigen |
$this->view_land |
Spalte „Land“ anzeigen |
… sowie in $this->tabelle einen Eintrag je Teilnehmer:
| Feld | Inhalt |
|---|---|
nummer |
Startnummer, entspricht der Reihenfolge im Backend |
name |
FIDE-Titel, Vorname und Nachname, zusammengesetzt |
titel |
FIDE-Titel allein, etwa IM |
land |
Zweistelliges Länderkürzel in Kleinbuchstaben, etwa de |
verein |
Verein des Teilnehmers |
nwz |
Nationale Wertungszahl (DWZ) |
elo |
FIDE-Wertungszahl |
bild |
Pfad zum Spielerbild, leer wenn keines hinterlegt ist |
Die Werte stammen unverändert aus der Datenbank und sind von Contao bereits
beim Speichern maskiert worden; sie können im Template direkt ausgegeben
werden. bild ist ein Dateipfad und gehört in ein src-Attribut, nicht in die
Ausgabe.
Für die Länderkürzel liefert die Erweiterung Flaggenbilder mit. Sie liegen
unter bundles/contaochesstournament/images/flags/xx.png und lassen sich in
einem eigenen Template so einbinden:
<img src="bundles/contaochesstournament/images/flags/<?= $item['land'] ?>.png" alt="<?= $item['land'] ?>">
Sprachen
Die Erweiterung bringt ausschließlich deutsche Sprachdateien mit. In einem Backend, das auf eine andere Sprache eingestellt ist, bleiben die Beschriftungen leer.
Bekannte Grenzen
- Von den sechs Anzeigeformaten des Inhaltselements ist nur die Teilnehmerliste umgesetzt.
- Der Veröffentlichungsschalter wirkt bislang nur im Backend als Merkmal: Die Teilnehmerliste im Frontend gibt alle Teilnehmer des Turniers aus, unabhängig davon, ob sie veröffentlicht sind. Bestandsinstallationen haben das Feld nie gesetzt; eine Auswertung würde dort auf einen Schlag alle Listen leeren.
- Der Paarungsgenerator beherrscht nur das Standardsystem für Rundenturniere, kein Schweizer System und keine Mannschaftskämpfe.
Entwicklung
vendor/bin/phpunit
Die Tests decken die Paarungsberechnung in src/Helper/Rundensystem.php ab;
sie kommen ohne Contao aus.
Verwendete Grafiken
bundles/contaochesstournament/images/icon.png— https://www.iconarchive.com/show/black-and-blue-add-on-icons-by-icondrawer/black-chess-icon.htmlbundles/contaochesstournament/images/player.png— https://www.iconarchive.com/show/silky-line-user-icons-by-custom-icon-design/men-2-icon.htmlbundles/contaochesstournament/images/result.png— https://www.iconarchive.com/show/ndroid-icons-by-kocco/calculator-icon.htmlbundles/contaochesstournament/images/pairs.png— https://www.fatcow.com/free-icons