PHPackages                             contaobayern/contao-ertl-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. contaobayern/contao-ertl-bundle

ActiveContao-bundle

contaobayern/contao-ertl-bundle
===============================

email registration + token login for Contao CMS

04PHP

Since Mar 17Pushed 3y ago4 watchersCompare

[ Source](https://github.com/ContaoBayern/contao-ertl-bundle)[ Packagist](https://packagist.org/packages/contaobayern/contao-ertl-bundle)[ RSS](/packages/contaobayern-contao-ertl-bundle/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Contao Bayern ERTL Bundle
=========================

[](#contao-bayern-ertl-bundle)

E-Mail Registration + Token Login

Anforderungen nach Installation des Bundles
-------------------------------------------

[](#anforderungen-nach-installation-des-bundles)

### Parameter in config/parameters.yml ergänzen

[](#parameter-in-configparametersyml-ergänzen)

In der Datei `config/parameters.yml` die Parameter ergänzen, die das Bundle benötigt

```
parameters:
    # Parameter aus der Contao Installation
    database_host: ...
    database_port: ...
    database_user: ...
    database_password: ...
    database_name: ...
    secret: ...
    # Parameter für das Bundle (Beispiele)
    ertl_assign_groups.example.com: [1,2,3]
    ertl_assign_groups.example.org: [1,4]
    # Optionale Parameter:
    # Gültigkeitsdauer eines Tokens (im Bsp.: 14 Tage; Default wäre 7 Tage).
    ertl_token_lifetime: 1209600
    # E-Mails-Adressen bestimmter Domains nicht akzeptieren
    # (es erscheint eine entsprechenden Fehlermeldung im Registrierungsformular)
    ertl_rejected_domains:
        - t-online.de
        - web.de
        - gmail.com

```

### Fehlerseiten anlegen

[](#fehlerseiten-anlegen)

Bei einem gescheiterten Loginversuch mit einem ungültigen Token wird je nach Situation auf eine entsprechende Fehlerseite weitergeleitet. Dafür sollten `401` "not authenticated", `403` "access denied" und `404` "not found" Seiten im Seitenbaum existieren.

### Formular

[](#formular)

Das Formular muss mindestens ein Eingabefeld "E-Mail-Adresse" haben, das `email` heißen muss!

Weitere Felder werden beim Anlegen des Mitglieds, das eingelogt werden soll übernommen, sofern ihr Name einer Spalte in der Mitgliedertabelle `tl_member` entspricht. Bsp.: (`firstname`, `lastname`)

Zur Identifikation des Formulars muss ein verstecktes Formularfeld angelegt werden, das den Namen `ertl_login` und den Wert `9uetwrg7K83z7` hat.

Die Weiterleitungsseite für den Tokenlogin wird über den Loginlink gesteuert:

```
https://example.com/_login//

```

Die `` wird mittels eines verstecken Formular Felds festgelegt, das `redirecttopagewithid` heißen muss. Der zugehörige Wert ist die ID der gewünschten Seite. Ist dieses Feld nicht vorhanden, so wird zur Startseite weitergeleitet. Tip: Soll auf die Seite weitergeleitet werden, auf der sich das Formular befindet, so kann der Insert Tag `{{page::id}}` verwendet werden.

### Notifications

[](#notifications)

Damit User einen Loginlink zugeschickt bekommen, muss im Notification Center eine Notification vom Typ "ER+TL Registrierung" angelegt werden. In dieser kann über Simple Tokens auf die Formulardaten zugegriffen werden (insbes. `##form_email##` für den Empfänger der E-Mail). Der Loginlink steht über das Simple Token `##loginlink##` zur Verfügung.

Ein Beispiel für den Text der E-Mail:

```
Hallo ##form_firstname## ##form_lastname##

Dein Loginlink für ##domain## lautet

##loginlink##

```

### Features

[](#features)

- Beim Löschen eines Members werden die zugehörigen `tl_member_login_token`-Records gelöscht
- Wird ein Member im Backend deaktiviert, so ist der Login unterbunden (bei Verwendung des zugehörigen Loginlinks erhalten User einen Fehler `403`)

TODOs
-----

[](#todos)

Cron Jobs
---------

[](#cron-jobs)

- `tl_member` und `tl_member_token` "purgen" via noch zu erstellender `contao-console` Commands

###  Health Score

14

—

LowBetter than 2% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity3

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity22

Early-stage or recently created project

 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.

### 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 (23 commits)")

### Embed Badge

![Health badge](/badges/contaobayern-contao-ertl-bundle/health.svg)

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

PHPackages © 2026

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