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. [Utility &amp; Helpers](/categories/utility)
4. /
5. fiedsch/ranking-bundle

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

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

Contao Bundle: Rankingturniere

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

Since Mar 17Pushed 3mo 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 2w 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

46

—

FairBetter than 92% of packages

Maintenance58

Moderate activity, may be stable

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

132d 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

41668.4k162](/packages/codefog-contao-haste)[metamodels/core

MetaModels core

9956.1k68](/packages/metamodels-core)[codefog/contao-news_categories

News Categories bundle for Contao Open Source CMS

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

Node bundle for Contao Open Source CMS

3075.6k5](/packages/terminal42-contao-node)[terminal42/contao-folderpage

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

18153.4k10](/packages/terminal42-contao-folderpage)[terminal42/contao-url-rewrite

URL Rewrite bundle for Contao Open Source CMS

15100.0k3](/packages/terminal42-contao-url-rewrite)

PHPackages © 2026

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