PHPackages                             schachbulle/contao-schachturnier-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. schachbulle/contao-schachturnier-bundle

ActiveContao-bundle[Utility &amp; Helpers](/categories/utility)

schachbulle/contao-schachturnier-bundle
=======================================

Verwaltet Schachturniere in Contao: Teilnehmer, Runden, Paarungen, Termine und Ergebnisse, mit Paarungsgenerator, Ranglisten, Kreuztabellen und Feinwertungen.

3.0.0(2w ago)058LGPL-3.0-or-laterPHPPHP ^7.4 || ^8.0

Since Mar 7Pushed 2w ago1 watchersCompare

[ Source](https://github.com/Samson1964/contao-schachturnier-bundle)[ Packagist](https://packagist.org/packages/schachbulle/contao-schachturnier-bundle)[ Docs](https://github.com/Samson1964/contao-schachturnier-bundle)[ RSS](/packages/schachbulle-contao-schachturnier-bundle/feed)WikiDiscussions master Synced 1w ago

READMEChangelogDependencies (22)Versions (34)Used By (0)

Schachturnier-Verwaltung für Contao
===================================

[](#schachturnier-verwaltung-für-contao)

Contao-Erweiterung zur Verwaltung und Ausgabe von Schachturnieren: Teilnehmer, Rundentermine, Paarungen und Ergebnisse. Ein Paarungsgenerator erstellt die Runden eines Rundenturniers, das Frontend gibt Teilnehmerlisten, Paarungen, Ranglisten mit Feinwertungen, Kreuz- und Fortschrittstabellen aus.

**Frank Hoppe**

Anforderungen
-------------

[](#anforderungen)

- PHP 7.4 oder neuer (PHP 8 wird unterstützt)
- Contao 4.13 LTS oder Contao 5

Installation
------------

[](#installation)

```
composer require schachbulle/contao-schachturnier-bundle

```

Anschließend im Contao Manager bzw. über `contao:migrate` die Datenbank aktualisieren.

### Hinweis zum Update auf 3.0.0

[](#hinweis-zum-update-auf-300)

- Die Abhängigkeiten zu `codefog/contao-haste` und `components/flag-icon-css`sind entfallen. Werden sie von keiner anderen Erweiterung mehr gebraucht, können sie aus dem Projekt entfernt werden.
- Die Länderflaggen liegen jetzt im Bundle selbst. Der Symlink `web/bundles/flag-icon-css`, den frühere Fassungen zur Laufzeit angelegt haben, wird nicht mehr gebraucht und kann gelöscht werden.
- Wer die Flaggen in einem eigenen Template über die CSS-Klassen `flag-icon flag-icon-xx` angesprochen hat, muss auf das neue `img`-Element mit der Klasse `flagge` umstellen.

Backend
-------

[](#backend)

Die Verwaltung liegt unter *Inhalte → Schachturniere* und ist zweistufig: Turnier → Teilnehmer, Paarungen und Termine.

### Turnier

[](#turnier)

FeldBedeutungTitelName des TurniersTurnierartRundenturnier, Doppelrundenturnier oder K.o.-Turnier / Schweizer SystemTurnierbeginn / -endeZeitraum, je mit einem Schalter, ob das Datum im Frontend erscheintWertungenReihenfolge der Wertungen, nach denen die Rangliste sortiert wird (siehe unten)Ausgeschiedene bei Feinwertungen ignorierenPartien gegen ausgeschiedene Spieler fließen nicht in Sonneborn-Berger, Buchholz und Direkten Vergleich der übrigen Spieler einAufsteiger / AbsteigerAnzahl der Plätze, die in Ranglisten grün bzw. rot markiert werdenRelegationsplätzeGelb markierte Plätze, Eingaben wie `7,9,11-13`FotogrößenGetrennte Bildgrößen für Tabellen und ErgebnislistenVeröffentlicht / KomplettSichtbarkeit und Vermerk, dass alle Daten erfasst sindAus der Turnierzeile führen drei Schaltflächen in die Unterlisten: **Termine**, **Teilnehmer** und **Paarungen**.

### Wertungen und Rangliste

[](#wertungen-und-rangliste)

Die Rangliste sortiert nach der im Turnier eingestellten *Reihenfolge* der Wertungen. Zur Auswahl stehen:

WertungBedeutungZwei-Punkte-SystemSieg = 1, Remis = ½Drei-Punkte-SystemSieg = 3, Remis = 1Sonneborn-Berger-WertungSumme der Punkte der besiegten Gegner, halbe bei RemisAnzahl der SiegeBuchholz-WertungSumme der Punkte aller GegnerDirekter VergleichErgebnisse der Spieler untereinander, die in allen vorherigen Wertungen gleichauf liegenSpieler, die in **allen** Wertungen der Reihenfolge exakt gleichauf liegen, erhalten denselben Platz; die Zählung springt entsprechend weiter (1, 2, 2, 4).

### Teilnehmer

[](#teilnehmer)

Je Teilnehmer werden Vor- und Nachname, Startnummer, DWZ, Elo, Titel, Land, Verein und wahlweise ein Foto erfasst. Dazu kommen:

FeldBedeutungStartnummerBestimmt die Reihenfolge in Tabellen und die Paarungen des GeneratorsWertung der PartienWie gespielte und offene Partien gewertet werdenFreilosDer Eintrag ist ein Platzhalter; ausgegeben wird nur der NachnameAusgeschiedenDer Name wird durchgestrichenHerkunftWas der Spieler in der Vorsaison war; erscheint als Kurzform in Klammern hinter dem NamenAufsteiger / AbsteigerEinzelne Spieler abweichend von der Turniereinstellung markierenKann nicht auf-/absteigenNimmt den Spieler von der automatischen Markierung ausDie **Startnummern müssen lückenlos von 1 an vergeben sein**, sonst verweigert der Paarungsgenerator die Arbeit.

### Paarungsgenerator

[](#paarungsgenerator)

Über der Teilnehmer- und der Paarungsliste steht die Schaltfläche *Paarungsgenerator*. Sie erzeugt die Paarungen aller Runden 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. Bei einem **Doppelrundenturnier** entstehen im Anschluss dieselben Paarungen noch einmal mit vertauschten Farben und fortlaufenden Rundennummern.

> **Achtung:** Der Generator löscht zuvor **alle** vorhandenen Partien des Turniers, einschließlich der eingetragenen Ergebnisse, PGN-Daten und Bemerkungen. Er gehört an den Anfang eines Turniers, nicht in dessen Verlauf.

Bei der Turnierart *K.o.-Turnier / Schweizer System* und bei fehlenden Startnummern bricht er mit einer Meldung ab, ohne etwas zu ändern.

### Paarungen

[](#paarungen)

Je Partie werden Runde, Brett, Datum, beide Spieler, das Ergebnis, eine Bemerkung und wahlweise die Partie im PGN-Format erfasst. Unter *Absagen*lassen sich Absagen und Verschiebungen festhalten; im Frontend wird eine Absage nur dann als „(E)" markiert, wenn sie aktiv und der jüngste Eintrag ist.

### Termine

[](#termine)

Je Runde ein Datum. Die Paarungsliste im Frontend stellt es über die jeweilige Runde.

Inhaltselement „Schachturnier"
------------------------------

[](#inhaltselement-schachturnier)

Unter den Inhaltselementen erscheint die Gruppe *Schach-Elemente* mit dem Element *Schachturnier*.

FeldBedeutungTurnierDas auszugebende TurnierModusAnzeigeformat, siehe untenAusgaben für die Tab-NavigationNur beim Modus *Tab-Navigation*: welche Ausgaben als Tabs erscheinen und in welcher ReihenfolgeRundeGrenzt Paarungen und Tabellen auf eine Runde ein; leer = alle RundenOptionenWelche Spalten erscheinen: Foto, DWZ, Elo, Land, VereinFeinwertungen ausblendenBlendet einzelne im Turnier aktivierte Wertungen in diesem Element ausErgebnisse ausblendenGibt die Paarungen ohne Ergebnisse aus### Anzeigeformate

[](#anzeigeformate)

ModusAusgabeTeilnehmerlisteAlle Teilnehmer in Startnummern-ReihenfolgePaarungen/ErgebnisseAlle Runden mit Brett, Datum, beiden Spielern und ErgebnisRanglistePlatzierung mit Punkten und allen aktivierten FeinwertungenKreuztabelle (nach Nummer / nach Rang)Jeder gegen jeden, Zeilen nach Startnummer oder nach PlatzFortschrittstabelle (nach Nummer / nach Rang)Kumulierter Punktstand nach jeder RundeTab-NavigationMehrere der obigen Ausgaben als Tabs, ohne JavaScript (reines CSS)Die Tabellen zeigen alle im Turnier aktivierten Feinwertungen als Spalten in der Wertungsreihenfolge.

Templates
---------

[](#templates)

Jede Ausgabe besteht aus einem Rahmentemplate `ce_schachturnier_*` und einem Partial `schachturnier_*`, das die eigentliche Tabelle enthält. So lässt sich eine Tabelle anpassen, ohne den Rahmen anzufassen.

RahmenPartialAusgabe`ce_schachturnier_teilnehmer``schachturnier_teilnehmer`Teilnehmerliste`ce_schachturnier_paarungen``schachturnier_paarungen`Paarungen`ce_schachturnier_rangliste``schachturnier_rangliste`Rangliste`ce_schachturnier_kreuztabelle``schachturnier_kreuztabelle`Kreuztabelle`ce_schachturnier_fortschritt``schachturnier_fortschritt`Fortschrittstabelle`ce_schachturnier_tabs`—Tab-Navigation, bindet die Partials ein`ce_schachturnier`—GrundtemplateEin eigenes Template lässt sich am Inhaltselement unter *Template-Einstellungen* hinterlegen.

### Templatevariablen

[](#templatevariablen)

Alle Ausgaben erhalten:

VariableInhalt`$this->view_foto`, `view_land`, `view_elo`, `view_dwz`, `view_verein`Welche Spalten erscheinen sollen`$this->wertungsspalten`Die anzuzeigenden Feinwertungen in Wertungsreihenfolge`$this->turnierdatum`Aufbereiteter Turnierzeitraum`$this->tabelle`Die Daten der jeweiligen AusgabeDie Felder eines Teilnehmers in `$this->tabelle` heißen `nummer`, `name`, `titel`, `land`, `verein`, `dwz`, `elo`, `bild` und `css`; dazu kommen je nach Ausgabe `platz`, die Wertungsfelder (`2punkte`, `sobe`, `buch`, `siege`, `direkt`) sowie `partien` bzw. `fortschritt`.

`land` und `bild` enthalten fertiges HTML. Zahlenwerte der Wertungen werden im Template über `Helper::formatWertung()` formatiert, damit halbe Punkte als `½` erscheinen.

Länderflaggen
-------------

[](#länderflaggen)

Die Flaggen liegen als SVG unter `bundles/contaoschachturnier/images/flags/xx.svg` und stammen aus dem Projekt [flag-icon-css](https://github.com/lipis/flag-icon-css) (MIT-Lizenz, die Lizenzdatei liegt im selben Verzeichnis). Ausgegeben wird ein `img`-Element mit der CSS-Klasse `flagge`. Für ein Länderkürzel ohne mitgelieferte Flagge bleibt die Spalte leer.

Sprachen
--------

[](#sprachen)

Die Erweiterung bringt ausschließlich deutsche Sprachdateien mit. In einem Backend, das auf eine andere Sprache eingestellt ist, bleiben die Beschriftungen leer.

Entwicklung
-----------

[](#entwicklung)

Die Feinwertungen sind ohne Contao testbar:

```
php tests/DirekterVergleichTest.php

```

Der Test deckt Sonneborn-Berger, Buchholz, den Direkten Vergleich, geteilte Plätze, die Relegationsmarkierung und die Zahlenformatierung ab.

Offene Punkte
-------------

[](#offene-punkte)

Siehe [TODO.md](TODO.md).

###  Health Score

48

—

FairBetter than 94% of packages

Maintenance96

Actively maintained with recent releases

Popularity10

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity66

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~50 days

Recently: every ~29 days

Total

33

Last Release

18d ago

Major Versions

0.3.4 → 1.0.02023-11-24

1.0.0 → 2.0.02024-05-21

2.4.1 → 3.0.02026-08-01

PHP version history (3 changes)0.0.1PHP ^5.6 || ^7.0

2.0.0PHP ^5.6 || ^7.0 || ^8.0

3.0.0PHP ^7.4 || ^8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/53ee29e676dd83ca6683e27788cc7143a46d2bc1e10945ae37730bd4fec0c29c?d=identicon)[Samson1964](/maintainers/Samson1964)

---

Top Contributors

[![Samson1964](https://avatars.githubusercontent.com/u/4542730?v=4)](https://github.com/Samson1964 "Samson1964 (32 commits)")

---

Tags

contaoschachturnierpaarungenranglistekreuztabelle

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/schachbulle-contao-schachturnier-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/schachbulle-contao-schachturnier-bundle/health.svg)](https://phpackages.com/packages/schachbulle-contao-schachturnier-bundle)
```

###  Alternatives

[easycorp/easyadmin-bundle

Admin generator for Symfony applications

4.3k18.3M430](/packages/easycorp-easyadmin-bundle)[contao-community-alliance/dc-general

Universal data container for Contao

1581.4k93](/packages/contao-community-alliance-dc-general)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
