PHPackages                             fiedsch/ranking-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. fiedsch/ranking-bundle

ActiveContao-bundle

fiedsch/ranking-bundle
======================

Contao Bundle: Rankingturniere

3.2.1(2mo ago)11161[2 issues](https://github.com/fiedsch/contao-ranking-bundle/issues)MITPHPPHP ^8.3

Since Mar 17Pushed 2mo ago1 watchersCompare

[ Source](https://github.com/fiedsch/contao-ranking-bundle)[ Packagist](https://packagist.org/packages/fiedsch/ranking-bundle)[ RSS](/packages/fiedsch-ranking-bundle/feed)WikiDiscussions main Synced 2d ago

READMEChangelogDependencies (1)Versions (30)Used By (0)

Ranking Turniere
================

[](#ranking-turniere)

Verwaltung von Ergebnissen einer Turnierserie, die

- an verschiedenen Tagen
- an verschiedenen Orten
- mit jeweils unterscheidlichen Teilnehmerzahlen

gespielt wird. Eine solches Veranstaltung bezeichnen wir als "Ranking-Event".

Ergebnis soll eine Gesamttabelle sein, die sich aus den Punkten ergibt, die ein Spieler bei seinen Teilnahmen an Ranking-Events erzielt hat.

Punktevergabe
-------------

[](#punktevergabe)

Abhängig von der der erreichten Platzierung und der Teilnehmerzahl beim jeweiligen Ranking-Event werden unterschiedliche Punkte vergeben.

- TODO Punkteschlüssel dokumentieren und konfigurierbar machen

Datenstrukturen
---------------

[](#datenstrukturen)

An Orte/Veranstalter/"Rankings" (`tl_ranking`) finden Rankingevents (`tl_rankingevent`) statt, an denen Spieler Ergebnissse (`tl_rankingresult`) erzielen.

Damit ergibt sich folgende hierarchische Datenstrutur:

```
tl_ranking: id, name
tl_rankingevent: id, pid=tl_ranking.id, datum
tl_rankingresult: id, pid=tl_rankingevent.id, spieler=tL_rankingplayer.id
tL_rankingplayer: id, name

```

### `tl_member` vs `tl_rankingplayer`

[](#tl_member-vs-tl_rankingplayer)

- Die Verwendung von `tl_member` erscheint zunächst naheliegend.
- ABER: Bei Integration auf einer Site, die auch das [contao-ligaverwaltung-bundle](https://github.com/fiedsch/contao-ligaverwaltung-bundle) verwendet, tauchen die nur für Rankinga angelegten Mitglieder an vielen Stellen zur Auswahl auf, wo sie keinen Sinn ergeben. Zudem werden wesentlich weniger Datenfelder benötigt, als sie in `tl_member`bereitgestellt werden.
- Die Verwendung einer eigenen Tabelle (`tl_rankingplayer`), die extra für diesen Zweck angelegt wird umgeht diese Probleme. Vorteil zudem: wir könnten als `name` ein einzelnes Feld definieren, das Vor- und Nachnamen oder ein Pseudonym enthält.
- Nachteil: bereits existierende Mitglieder (Ligamanager-Spieler) müssen erneut angelegt werden. (Hier könnte aber einmalig ein Skript Einräge aus `tl_member` auslesen und in `tl_rankingplayer` eintragen).

Datenerfassung
--------------

[](#datenerfassung)

- neues "Rankingevent" anlegen (entspricht eingegangenem Ergebnisbericht)
- Für jede Zeile einen neues "Ranking-Rseult" als Kindelement anlegen
    - Spieler auswählen
    - Platz eintragen (die Punkte werden automatisch berechnet, da sie sich aus einem festen Punkteschlüssel ergeben).

Implementierung
---------------

[](#implementierung)

- DCA
    - `tl_ranking`
    - `tl_rankingevent`
    - `tl_rankingresult`
    - `tl_rankingplayer`
- Frontendmodule:
    - Rankingtabelle (insgesamt und optional für ein "Ranking")
    - Frontendmodul "Ergebnisse übermitteln"? (Großes Thema dürfte hier wohl die eindeutige Benennung der Spieler sein. Z.B. untescheidliche Schreibweisen des gleichen Namens, oder "Andreas" vs. "Fiedsch" vs. ... für die gleiche Person. Wir können aber die Namen nicht aus einem Dropdown auswählen lassen, da neue Spieler jederzeit hinzu kommen können ohne sich vorher registrieren zu müssen. Idee: evtl. alle bereits reg. Spieler als Daten auf der Seite und ein Textfeld mit Autocomplete, das aber auch vollkommen neue Namen zulässt. Neue Namen könnten wir dann automatisch in der DB als neue `tl_rankingplayer`-Records anlegen. Bei Duplikaten müssten dann Datenkorrekturen stattfinden: (1) doppelten "Rankingplayer" löschen und (2) die id im "Rankingresult" einsetzen. Das sollte mittels filtern und "mehrere bearbeiten" relativ zügig gehen. (Dazu evtl. die `tl_rankingresult` losgelöst von der hierarchischen Datenstruktur als eigene Backend-Menüpunkt anbieten?

###  Health Score

48

—

FairBetter than 94% of packages

Maintenance65

Regular maintenance activity

Popularity12

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity89

Battle-tested with a long release history

 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 ~103 days

Recently: every ~3 days

Total

29

Last Release

85d ago

Major Versions

0.3 → 1.0.02022-09-09

1.0.4 → 2.0.02023-05-12

2.0.1 → 3.0.02024-09-14

PHP version history (5 changes)0.0.1PHP ^7.0

0.2.0PHP ^7.0||^8.0

1.0.0PHP ^8.0

3.0.0PHP ^8.2

3.1.0PHP ^8.3

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/5047601?v=4)[Andreas Fieger](/maintainers/fiedsch)[@fiedsch](https://github.com/fiedsch)

---

Top Contributors

[![fiedsch](https://avatars.githubusercontent.com/u/5047601?v=4)](https://github.com/fiedsch "fiedsch (52 commits)")

---

Tags

contaorankingturnier

### Embed Badge

![Health badge](/badges/fiedsch-ranking-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/fiedsch-ranking-bundle/health.svg)](https://phpackages.com/packages/fiedsch-ranking-bundle)
```

###  Alternatives

[codefog/contao-haste

haste extension for Contao Open Source CMS

42650.8k139](/packages/codefog-contao-haste)[madeyourday/contao-rocksolid-custom-elements

Create your own, nestable content elements using a modular system. End the WYSIWYG chaos with your own content elements.

50341.9k12](/packages/madeyourday-contao-rocksolid-custom-elements)[contao/manager-bundle

Provides the Contao Managed Edition

181.3M61](/packages/contao-manager-bundle)[codefog/contao-news_categories

News Categories bundle for Contao Open Source CMS

3183.3k6](/packages/codefog-contao-news-categories)[terminal42/contao-node

Node bundle for Contao Open Source CMS

3172.5k4](/packages/terminal42-contao-node)[terminal42/contao-folderpage

Provides a new page type for Contao that allows you to group pages into folders.

18147.9k9](/packages/terminal42-contao-folderpage)

PHPackages © 2026

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