PHPackages                             wapplersystems/fe-registration - 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. wapplersystems/fe-registration

ActiveTypo3-cms-extension[Utility &amp; Helpers](/categories/utility)

wapplersystems/fe-registration
==============================

14.0.1(3mo ago)031GPL-2.0+PHP

Since Apr 14Pushed 2mo ago2 watchersCompare

[ Source](https://github.com/WapplerSystems/t3-fe-registration)[ Packagist](https://packagist.org/packages/wapplersystems/fe-registration)[ Docs](https://wappler.systems)[ RSS](/packages/wapplersystems-fe-registration/feed)WikiDiscussions release/v14 Synced 1w ago

READMEChangelogDependencies (4)Versions (4)Used By (0)

EXT:fe\_registration
====================

[](#extfe_registration)

Frontend-Registrierung mit Double-Opt-In für TYPO3 v14. Die Extension stellt ein `feregistration_registration`-Content-Element bereit, das ein per **EXT:form** definiertes Registrierungsformular rendert und nach E-Mail-Bestätigung einen `fe_users`-Datensatz anlegt.

Schnellinstallation
-------------------

[](#schnellinstallation)

```
composer require wapplersystems/fe-registration
ddev exec vendor/bin/typo3 cache:flush
ddev exec vendor/bin/typo3 database:updateschema
```

Anschließend Site-Set `wapplersystems/fe-registration` in `config/sites//config.yaml` als Dependency eintragen, damit alle Finisher- und Validator-Defaults geladen werden:

```
dependencies:
  - wapplersystems/fe-registration
```

Aufbau eines Registrierungs-Formulars
-------------------------------------

[](#aufbau-eines-registrierungs-formulars)

1. Eine Form-YAML unter `EXT:meinpaket/Resources/Private/Forms/` anlegen – z. B. basierend auf `EXT:fe_registration/Configuration/Yaml/Forms/Standard.form.yaml`.
2. Pflichtfelder: mindestens ein `Email`-Feld und ein `EmailConfirmation`-Feld. Das `EmailConfirmation`-Feld trennt Pre-Confirmation (Daten erfassen, Bestätigungs-Mail senden) von Post-Confirmation (Daten aus Confirmation- Request laden, `fe_users` anlegen).
3. Finisher-Block mit ConfirmationRequest + ConfirmationEmail, plus optional CompleteRegistration / FeUser / NewsletterSubscription – siehe Beispiel unten.

### Mindest-Finisher-Block

[](#mindest-finisher-block)

```
finishers:
  -
    identifier: ConfirmationRequest
    options:
      preConfirmation: true
      confirmationRequestPid: 304          # sysfolder für tx_feregistration_domain_model_confirmationrequest
  -
    identifier: ConfirmationEmail
    options:
      preConfirmation: true
      subject: 'Bitte bestätigen Sie Ihre E-Mail-Adresse'
      recipients:
        '{email}': '{firstName} {lastName}'
      senderAddress: 'no-reply@example.com'
      senderName: 'Beispiel GmbH'
      templateName: Confirmation
      templateRootPaths:
        890: 'EXT:fe_registration/Resources/Private/Templates/Email/'
      format: html
  -
    identifier: CompleteRegistration
    options:
      pid: 77                                # sysfolder für fe_users
  -
    identifier: FeUser
    options:
      pid: 77
```

> **Wichtig:** Die `preConfirmation: true`-Markierung sorgt dafür, dass `ConfirmationRequest` und `ConfirmationEmail` nur beim ersten Submit ausgeführt werden. Beim Klick auf den Bestätigungslink (Post-Confirmation) entfernt `RegistrationPatchFormFactory` markierte Finisher automatisch, damit kein zweiter Confirmation-Request entsteht.

Content-Element konfigurieren
-----------------------------

[](#content-element-konfigurieren)

Im Backend ein Content-Element vom Typ **"Frontend User Registration"**anlegen. Im Reiter *Plugin Options*:

FeldBeschreibung`settings.form`YAML-Form, die gerendert werden soll`settings.forward`Seite, auf die nach erfolgreichem Abschluss weitergeleitet wird`settings.identifierFieldName`Form-Feld, dessen Wert `fe_users.username` wird (Dropdown, aus YAML)`settings.emailFieldName`Form-Feld, das die Empfänger-Mailadresse liefert (Dropdown, aus YAML)`settings.confirmationRequestPid`Sysfolder für Confirmation-Requests`settings.feUserStoragePid`Sysfolder für neu angelegte `fe_users``settings.usergroups`Welche `fe_groups` der neue User automatisch zugeordnet bekommt`settings.feUserMustConfirmed`Wenn aktiv, bleibt der `fe_users`-Datensatz `disable=1` bis ein Admin freigibt`identifierFieldName` und `emailFieldName` werden im Backend als **Dropdown**mit den verfügbaren Form-Feldern der unter `settings.form` gewählten YAML befüllt. Nach Auswahl einer neuen Form muss der Datensatz einmal gespeichert werden, damit die Dropdowns aktualisiert erscheinen (TYPO3-Standardverhalten: *"Refresh required"*-Dialog).

URL-Beautification per Route Enhancer
-------------------------------------

[](#url-beautification-per-route-enhancer)

Damit der Bestätigungslink in der Form `/registrierung/confirm/` statt mit GET-Parameter erscheint, im Site-Konfig folgenden `routeEnhancer` eintragen (Page-ID auf die Seite mit dem Registrierungs-CE anpassen):

```
routeEnhancers:
  FeRegistration:
    type: Extbase
    limitToPages:
      - 330                              # Page-ID des Registrierungs-CEs
    extension: fe_registration
    plugin: Registration
    routes:
      -
        routePath: '/confirm/{hash}'
        _controller: 'Registration::confirm'
        _arguments:
          hash: hash
    defaultController: 'Registration::new'
    aspects:
      hash:
        type: PersistedFieldValueMapper
        tableName: tx_feregistration_domain_model_confirmationrequest
        routeFieldName: confirmation_hash
```

Mail-Transport
--------------

[](#mail-transport)

Der Versand läuft über den TYPO3-Mailer (`$GLOBALS['TYPO3_CONF_VARS']['MAIL']`). Für lokale Tests bietet sich Mailpit (SMTP `localhost:1025`) an. In Produktion typischerweise SMTP-Auth, Sendmail oder `WapplerSystems\MicrosoftGraphMailer\Mailer\GraphTransport`.

Aufräumen abgelaufener Confirmation-Requests
--------------------------------------------

[](#aufräumen-abgelaufener-confirmation-requests)

```
ddev exec vendor/bin/typo3 fe-registration:cleanup-expired-confirmation-requests
```

Im Scheduler einplanen, damit nicht bestätigte Anfragen nicht ewig liegen bleiben.

Debugging
---------

[](#debugging)

- `EXT:claude_diagnostics` installieren — `ts:setup` / `ts:constants` / `database:query` helfen beim Inspect der Plugin-Settings.
- TYPO3-Log unter `var/log/typo3_*.log` zeigt Finisher-Exceptions (`Failed to execute finisher` mit Stacktrace).
- Mailpit (`https://.ddev.site:8026`) zeigt alle ausgehenden Mails.

###  Health Score

35

—

LowBetter than 77% of packages

Maintenance83

Actively maintained with recent releases

Popularity8

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity36

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.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

116d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/a944bb90af783b13d74049f2d8adcff598f4e7cb0aad9d7040a6af0bb8c23984?d=identicon)[svewap](/maintainers/svewap)

---

Top Contributors

[![svewap](https://avatars.githubusercontent.com/u/1734738?v=4)](https://github.com/svewap "svewap (82 commits)")

---

Tags

typo3typo3-cms-extensiontypo3-extensiontypo3

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/wapplersystems-fe-registration/health.svg)

```
[![Health](https://phpackages.com/badges/wapplersystems-fe-registration/health.svg)](https://phpackages.com/packages/wapplersystems-fe-registration)
```

###  Alternatives

[typo3/cms-styleguide

TYPO3 extension to showcase TYPO3 Backend capabilities

105768.9k39](/packages/typo3-cms-styleguide)[georgringer/news

News system - Versatile news system based on Extbase &amp; Fluid and using the latest technologies provided by TYPO3 CMS.

2845.4M137](/packages/georgringer-news)[wapplersystems/form_extended

Multi upload field, sender addresses in site config, new field types and other

1323.9k6](/packages/wapplersystems-form-extended)[typo3/cms-composer-installers

TYPO3 CMS Installers

6115.0M71](/packages/typo3-cms-composer-installers)[typo3/coding-standards

A set of coding guidelines for any TYPO3-related project or extension

673.2M689](/packages/typo3-coding-standards)[eliashaeussler/typo3-form-consent

Extension for TYPO3 CMS that adds double opt-in functionality to EXT:form

15100.9k](/packages/eliashaeussler-typo3-form-consent)

PHPackages © 2026

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