schachbulle/contao-chesstournament-bundle

This package is abandoned and no longer maintained. The author suggests using the schachbulle/contao-schachturnier-bundle package instead.

Verwaltet Schachturniere mit Teilnehmern, Runden und Ergebnissen für Contao 4.13 und Contao 5. Wird nicht mehr gepflegt.

Maintainers

Package info

github.com/Samson1964/contao-chesstournament-bundle

Type:contao-bundle

pkg:composer/schachbulle/contao-chesstournament-bundle

Transparency log

Statistics

Installs: 10

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

0.0.2 2023-11-30 07:55 UTC

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-haste ist entfallen. Wird Haste von keiner anderen Erweiterung mehr gebraucht, kann es aus dem Projekt entfernt werden.
  • Das Backend-Modul hieß intern chesscompetition und heißt jetzt chesstournament. 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