Benutzermodule

Benutzermodule sind Module, die im Zusammenhang mit der Verwaltung von Frontend-Benutzern gebraucht werden. Dazu zählt beispielsweise die Registrierung neuer Mitglieder oder die An- bzw. Abmeldung bestehender Mitglieder.

Login-Formular

Das Frontend-Modul »Login-Formular« fügt der Webseite ein Formular hinzu, mit dem sich registrierte Mitglieder authentifizieren können.

Frontend-Ausgabe

Sobald ein Frontend-Benutzer angemeldet ist, wird statt des Anmeldeformulars automatisch eine Schaltfläche zum Abmelden angezeigt.

Frontend-Ausgabe

Berücksichtige also bei der CSS-Formatierung beide Zustände des Moduls, und denke auch daran, dass eventuell eine Fehlermeldung ausgegeben wird.

Autologin erlauben: Wenn du diese Option auswählst, können Mitglieder auf Wunsch angemeldet bleiben. Läuft eine Benutzersitzung ab, erstellt Contao automatisch eine neue Sitzung, ohne dass das Passwort dazu erneut eingegeben werden muss.

Weiterleitungsseite: Hier legst du fest, zu welcher Seite ein Mitglied nach erfolgreicher Anmeldung weitergeleitet wird. Diese Einstellung kannst du pro Benutzergruppe überschreiben, um eine gruppenspezifische Weiterleitung einzurichten.

Zur zuletzt besuchten Seite: Wenn du diese Option auswählst, wird der Frontend-Benutzer zur zuletzt besuchten Seite anstatt zur Weiterleitungsseite weitergeleitet.

Individuelles Template: Hier kannst du das Standard-Template mod_login überschreiben.

HTML-Ausgabe
Das Frontend-Modul generiert folgenden HTML-Code:

<!-- indexer::stop -->
<div class="mod_login login block">

    <form action="/_contao/login" id="tl_login" method="post">
        <div class="formbody">
            <input type="hidden" name="FORM_SUBMIT" value="tl_login">
            <input type="hidden" name="REQUEST_TOKEN" value="…">
            <input type="hidden" name="_target_path" value="…">
            <input type="hidden" name="_failure_path" value="…">
            <input type="hidden" name="_always_use_target_path" value="0">
            <div class="widget widget-text">
                <label for="username">Benutzername</label>
                <input type="text" name="username" id="username" class="text" value="" required>
            </div>
            <div class="widget widget-password">
                <label for="password">Passwort</label>
                <input type="password" name="password" id="password" class="text password" value="" required>
            </div>
            <div class="widget widget-checkbox">
                <fieldset class="checkbox_container">
                    <span>
                        <input type="checkbox" name="autologin" id="autologin" value="1" class="checkbox"> 
                        <label for="autologin">Angemeldet bleiben</label>
                    </span>
                </fieldset>
            </div>
            <div class="widget widget-submit">
                <button type="submit" class="submit">Anmelden</button>
            </div>
        </div>
    </form>

</div>
<!-- indexer::continue -->

Nachdem sich ein Mitglied angemeldet hat, ändert sich der HTML-Code wie folgt:

<!-- indexer::stop -->
<div class="mod_login logout block">

    <form action="/_contao/logout" id="tl_logout" method="post">
        <div class="formbody">
            <input type="hidden" name="FORM_SUBMIT" value="tl_logout">
            <input type="hidden" name="REQUEST_TOKEN" value="…">
            <input type="hidden" name="_target_path" value="…">
            <p class="login_info">
                Sie sind angemeldet als j.smith.<br>Ihre letzte Anmeldung war 2015-11-15 20:54. Willkommen zurück!
            </p>
            <div class="widget widget-submit">
                <button type="submit" class="submit">Abmelden</button>
            </div>
        </div>
    </form>

</div>
<!-- indexer::continue -->

Automatischer Logout

Das Frontend-Modul »Automatischer Logout« fügt der Webseite ein unsichtbares Modul hinzu, das einen angemeldeten Frontend-Benutzer automatisch abmeldet.

Sobald sich ein Mitglied im Frontend der Webseite angemeldet hat, erscheint im Hauptmenü auf der rechten Seite ein Logout-Link, mit dem es sich wieder abmelden kann. In Wirklichkeit handelt es sich dabei um zwei verschiedene Seiten in der Seitenstruktur, die einmal das Login- und einmal das Logout-Modul enthalten.

Weiterleitungsseite: Hier legst du fest, auf welche Seite ein Frontend-Benutzer nach der Abmeldung weitergeleitet wird.

Zur zuletzt besuchten Seite: Wenn du diese Option auswählst, wird das Mitglied zur zuletzt besuchten Seite anstatt zur Weiterleitungsseite weitergeleitet.

Das Modul erzeugt keine HTML-Ausgabe.

Personendaten

Das Frontend-Modul »Personendaten« fügt der Webseite ein Formular hinzu, mit dem ein Mitglied seine persönlichen Daten wie z. B. seine E-Mail-Adresse oder sein Passwort ändern kann. Dabei kannst du als Administrator genau festlegen, welche Felder bearbeitet werden dürfen und welche nicht.

Frontend-Ausgabe member_default

Frontend-Ausgabe member_grouped

Personendaten
Kontaktdaten
Zugangsdaten

Editierbare Felder: Hier kannst du die editierbaren Felder festlegen.

Editierbare Felder festlegen

Abonnierbare Newsletter: Wenn du die Contao Newsletter-Erweiterung verwendest, kannst du hier festlegen, welche Verteiler ein Mitglied abonnieren kann.

Weiterleitungsseite: Hier kannst du auswählen, auf welche Seite ein Mitglied nach dem Absenden der Änderungen weitergeleitet wird.

Formulartemplate: Hier wählst du das Template des Formulars aus.

Template Erklärung
member_default Die Eingabefelder werden untereinander aufgelistet.
member_grouped Die Eingabefelder werden mithilfe von Fieldsets gruppiert.

HTML-Ausgabe
Das Frontend-Modul generiert mit member_default folgenden HTML-Code:

<!-- indexer::stop -->
<div class="mod_personalData block">
 
    <form action="…" id="tl_member" method="post" enctype="application/x-www-form-urlencoded">
        <div class="formbody">
            <input type="hidden" name="FORM_SUBMIT" value="tl_member">
            <input type="hidden" name="REQUEST_TOKEN" value="…">
            <div class="fields">
                <div class="widget widget-text">
                    <label for="ctrl_firstname">
                        <span class="invisible">Pflichtfeld </span>Vorname<span class="mandatory">*</span>
                    </label>
                    <input type="text" name="firstname" id="ctrl_firstname" class="text" value="John" required maxlength="255">
                </div>
                <div class="widget widget-text">
                    <label for="ctrl_lastname">
                        <span class="invisible">Pflichtfeld </span>Nachname<span class="mandatory">*</span>
                    </label>
                    <input type="text" name="lastname" id="ctrl_lastname" class="text" value="Smith" required maxlength="255">
                </div>
                <div class="widget widget-text">
                    <label for="ctrl_email">
                        <span class="invisible">Pflichtfeld </span>E-Mail-Adresse<span class="mandatory">*</span>
                    </label>
                    <input type="email" name="email" id="ctrl_email" class="text" value="j.smith@example.com" required maxlength="255">
                </div>
                <div class="widget widget-password">
                    <label for="ctrl_password">Passwort</label>
                    <input type="password" name="password" id="ctrl_password" class="text password" value="">
                </div>
                <div class="widget widget-password confirm">
                    <label for="ctrl_password_confirm" class="confirm">Bestätigung</label>
                    <input type="password" name="password_confirm" id="ctrl_password_confirm" class="text password" value="">
                </div>
            </div>
            <div class="widget widget-submit">
                <button type="submit" class="submit">Daten speichern</button>
            </div>
        </div>
    </form>

</div>
<!-- indexer::continue -->

Das Frontend-Modul generiert mit member_grouped folgenden HTML-Code:

<!-- indexer::stop -->
<div class="mod_personalData block">

    <form action="…" id="tl_member" method="post" enctype="application/x-www-form-urlencoded">
        <div class="formbody">
            <input type="hidden" name="FORM_SUBMIT" value="tl_member">
            <input type="hidden" name="REQUEST_TOKEN" value="…">
            
            <fieldset>
                <legend>Personendaten</legend>
                <div class="widget widget-text">
                    <label for="ctrl_firstname">
                        <span class="invisible">Pflichtfeld </span>Vorname<span class="mandatory">*</span>
                    </label>
                    <input type="text" name="firstname" id="ctrl_firstname" class="text" value="John" required maxlength="255">
                </div>
                <div class="widget widget-text">
                    <label for="ctrl_lastname">
                        <span class="invisible">Pflichtfeld </span>Nachname<span class="mandatory">*</span>
                    </label>
                    <input type="text" name="lastname" id="ctrl_lastname" class="text" value="Smith" required maxlength="255">
                </div>
            </fieldset>
            
            <fieldset>
                <legend>Kontaktdaten</legend>
                <div class="widget widget-text">
                    <label for="ctrl_email">
                        <span class="invisible">Pflichtfeld </span>E-Mail-Adresse<span class="mandatory">*</span>
                    </label>
                    <input type="email" name="email" id="ctrl_email" class="text" value="j.smith@example.com" required maxlength="255">
                </div>
            </fieldset>

            <fieldset>
                <legend>Zugangsdaten</legend>          
                <div class="widget widget-password">
                    <label for="ctrl_password">Passwort</label>
                    <input type="password" name="password" id="ctrl_password" class="text password" value="">
                </div>
                <div class="widget widget-password confirm">
                    <label for="ctrl_password__confirm" class="confirm">Bestätigung</label>
                    <input type="password" name="password_confirm" id="ctrl_password_confirm" class="text password" value="">
                </div>
            </fieldset>
        
            <div class="widget widget-submit">
                <button type="submit" class="submit">Daten speichern</button>
            </div>
        </div>
    </form>

</div>
<!-- indexer::continue -->

Mitgliederregistrierung

Das Frontend-Modul »Mitgliederregistrierung« fügt der Webseite ein Formular hinzu, mit dem sich neue Mitglieder registrieren können und je nach Konfiguration automatisch ein Benutzerkonto für den geschützten Bereich erhalten.

Frontend-Ausgabe member_default

Frontend-Ausgabe member_grouped

Personendaten
Kontaktdaten
Zugangsdaten

Editierbare Felder: Hier kannst du festlegen, welche Felder ein neues Mitglied bei der Registrierung ausfüllen muss. Um die Anmeldung im Frontend zu ermöglichen, musst du mindestens die Felder Benutzername und Passwort aktivieren.

Abonnierbare Newsletter: Wenn du die Contao Newsletter-Erweiterung verwendest, kannst du hier festlegen, welche Verteiler ein Mitglied abonnieren kann.

Sicherheitsfrage deaktivieren: Hier kannst du die Sicherheitsfrage deaktivieren (nicht empfohlen). Seit Contao 4.4 wird diese Frage nur noch den Spambots »angezeigt«. Ohne Sicherheitsfrage ist es unter Umständen möglich, dass Spammer automatisiert Benutzerkonten erstellen und deine Webseite missbrauchen.

Mitgliedergruppen: Hier legst du die Gruppenmitgliedschaft des neuen Mitglieds fest.

Login erlauben: Wenn du diese Option auswählst, kann sich ein neues Mitglied nach der Registrierung im Frontend anmelden. Damit das funktioniert, muss das Registrierungsformular die Felder Benutzername und Passwort enthalten.

Ein Benutzerverzeichnis anlegen: Wenn du diese Option auswählst, wird bei der Registrierung automatisch ein neues Benutzerverzeichnis in einem Ordner deiner Wahl erstellt. Der Name des neuen Verzeichnisses wird aus dem Benutzernamen generiert.

Weiterleitungsseite: Hier legst du fest, auf welche Seite ein Mitglied nach der Registrierung weitergeleitet wird (z. B. auf die Seite mit dem Login-Formular).

Automatisierung der Mitgliederregistrierung

Du kannst den Registrierungsprozess auf Wunsch vollständig automatisieren. Ein neues Mitglied erhält dann bei der Registrierung eine E-Mail mit einem Bestätigungslink, mit dem es sein Konto selbstständig aktivieren kann.

Aktivierungsmail verschicken: Hier schaltest du die automatische Aktivierung ein.

Bestätigungsseite: Hier legst du fest, auf welche Seite ein Benutzer nach erfolgreicher Aktivierung seines Kontos weitergeleitet wird (z. B. die Login-Seite).

Aktivierungsmail: Gebe hier den Text der Aktivierungsmail ein. Du kannst Platzhalter im Format ##key## für alle Eingabefelder des Registrierungsformulars sowie die Platzhalter ##domain## für die Domain und ##link## für den Bestätigungslink verwenden.

Nachfolgend ein kurzes Beispiel:

Sehr geehrte(r) ##firstname## ##lastname##,

Vielen Dank für Ihre Registrierung auf ##domain##.

Bitte klicken Sie auf den Link, um Ihre Registrierung abzuschließen und Ihr Konto zu aktivieren:

##link##

Der Bestätigungslink ist 24 Stunden gültig.

Wenn Sie keinen Zugang angefordert haben, ignorieren Sie diese E-Mail bitte.

Ihr Administrator

Formulartemplate: Hier wählst du das Template des Formulars aus.

Template Erklärung
member_default Die Eingabefelder werden untereinander aufgelistet.
member_grouped Die Eingabefelder werden mithilfe von Fieldsets gruppiert.

HTML-Ausgabe
Das Frontend-Modul generiert mit member_default folgenden HTML-Code:

<!-- indexer::stop -->
<div class="mod_registration block">

    <form action="…" id="tl_registration" method="post" enctype="application/x-www-form-urlencoded">
        <div class="formbody">
            <input type="hidden" name="FORM_SUBMIT" value="tl_registration">
            <input type="hidden" name="REQUEST_TOKEN" value="…">
            <div class="fields">
                <div class="widget widget-text mandatory">
                    <label for="ctrl_firstname" class="mandatory">
                        <span class="invisible">Pflichtfeld </span>Vorname<span class="mandatory">*</span>
                    </label>
                    <input type="text" name="firstname" id="ctrl_firstname" class="text mandatory" value="" required maxlength="255">
                </div>
                <div class="widget widget-text mandatory">
                    <label for="ctrl_lastname" class="mandatory">
                        <span class="invisible">Pflichtfeld </span>Nachname<span class="mandatory">*</span>
                    </label>
                    <input type="text" name="lastname" id="ctrl_lastname" class="text mandatory" value="" required maxlength="255">
                </div>
                <div class="widget widget-text mandatory">
                    <label for="ctrl_email" class="mandatory">
                        <span class="invisible">Pflichtfeld </span>E-Mail-Adresse<span class="mandatory">*</span>
                    </label>
                    <input type="email" name="email" id="ctrl_email" class="text mandatory" value="" required maxlength="255">
                </div>
                <div class="widget widget-text mandatory">
                    <label for="ctrl_username" class="mandatory">
                        <span class="invisible">Pflichtfeld </span>Benutzername<span class="mandatory">*</span>
                    </label>
                    <input type="text" name="username" id="ctrl_username" class="text mandatory" value="" required maxlength="64">
                </div>
                <div class="widget widget-password mandatory">
                    <label for="ctrl_password" class="mandatory">
                        <span class="invisible">Pflichtfeld </span>Passwort<span class="mandatory">*</span>
                    </label>
                    <input type="password" name="password" id="ctrl_password" class="text password mandatory" value="" required>
                </div>
                <div class="widget widget-password confirm mandatory">
                    <label for="ctrl_password_confirm" class="confirm mandatory">
                        <span class="invisible">Pflichtfeld </span>Bestätigung<span class="mandatory">*</span>
                    </label>
                    <input type="password" name="password_confirm" id="ctrl_password_confirm" class="text password mandatory" value="" required>
                </div>
            </div>
            <div class="widget widget-submit">
                <button type="submit" class="submit">Registrieren</button>
            </div>
        </div>
    </form>

</div>
<!-- indexer::continue -->

Das Frontend-Modul generiert mit member_grouped folgenden HTML-Code:

<!-- indexer::stop -->
<div class="mod_registration block">

    <form action="…" id="tl_registration" method="post" enctype="application/x-www-form-urlencoded">
        <div class="formbody">
            <input type="hidden" name="FORM_SUBMIT" value="tl_registration">
            <input type="hidden" name="REQUEST_TOKEN" value="…">
            
            <fieldset>
                <legend>Personendaten</legend>              
                <div class="widget widget-text mandatory">
                    <label for="ctrl_firstname" class="mandatory">
                        <span class="invisible">Pflichtfeld </span>Vorname<span class="mandatory">*</span>
                    </label>
                    <input type="text" name="firstname" id="ctrl_firstname" class="text mandatory" value="" required maxlength="255">
                </div>
                <div class="widget widget-text mandatory">
                    <label for="ctrl_lastname" class="mandatory">
                        <span class="invisible">Pflichtfeld </span>Nachname<span class="mandatory">*</span>
                    </label>
                    <input type="text" name="lastname" id="ctrl_lastname" class="text mandatory" value="" required maxlength="255">
                </div>
            </fieldset>
            
            <fieldset>
                <legend>Kontaktdaten</legend>
                <div class="widget widget-text mandatory">
                    <label for="ctrl_email" class="mandatory">
                        <span class="invisible">Pflichtfeld </span>E-Mail-Adresse<span class="mandatory">*</span>
                    </label>
                    <input type="email" name="email" id="ctrl_email" class="text mandatory" value="" required maxlength="255">
                </div>
             </fieldset>
             
             <fieldset>
                <legend>Zugangsdaten</legend>
                <div class="widget widget-text mandatory">
                    <label for="ctrl_username" class="mandatory">
                        <span class="invisible">Pflichtfeld </span>Benutzername<span class="mandatory">*</span>
                    </label>
                    <input type="text" name="username" id="ctrl_username" class="text mandatory" value="" required maxlength="64">
                </div>
                <div class="widget widget-password mandatory">
                    <label for="ctrl_password" class="mandatory">
                        <span class="invisible">Pflichtfeld </span>Passwort<span class="mandatory">*</span>
                    </label>
                    <input type="password" name="password" id="ctrl_password" class="text password mandatory" value="" required>
                </div>
                <div class="widget widget-password confirm mandatory">
                    <label for="ctrl_password_confirm" class="confirm mandatory">
                        <span class="invisible">Pflichtfeld </span>Bestätigung<span class="mandatory">*</span>
                    </label>
                    <input type="password" name="password_confirm" id="ctrl_password_confirm" class="text password mandatory" value="" required>
                </div>
             </fieldset>
              
            <div class="widget widget-submit">
                <button type="submit" class="submit">Registrieren</button>
            </div>
        </div>
    </form>

</div>
<!-- indexer::continue -->

Passwort ändern

Das Frontend-Modul »Passwort ändern« fügt der Webseite ein Formular hinzu, das einen angemeldeten Frontend-Benutzer ermöglicht, sein Passwort zu ändern.

Frontend-Ausgabe

Weiterleitungsseite: Hier kannst du auswählen, auf welche Seite ein Mitglied nach dem Absenden der Änderungen weitergeleitet wird.

Individuelles Template: Hier kannst du das Standard-Template mod_changePassword überschreiben.

HTML-Ausgabe
Das Frontend-Modul generiert folgenden HTML-Code:

<!-- indexer::stop -->
<div class="mod_changePassword block">

    <form action="…" id="tl_change_password" method="post">
        <div class="formbody">
            <input type="hidden" name="FORM_SUBMIT" value="tl_change_password">
            <input type="hidden" name="REQUEST_TOKEN" value="…">
            <div class="fields">
                <div class="widget widget-text mandatory">
                    <label for="ctrl_oldpassword" class="mandatory">
                        <span class="invisible">Pflichtfeld </span>Altes Passwort<span class="mandatory">*</span>
                    </label>
                    <input type="password" name="oldpassword" id="ctrl_oldpassword" class="text password mandatory" value="" required>
                </div>
                <div class="widget widget-password mandatory">
                    <label for="ctrl_password" class="mandatory">
                        <span class="invisible">Pflichtfeld </span>Neues Passwort<span class="mandatory">*</span>
                    </label>
                    <input type="password" name="password" id="ctrl_password" class="text password mandatory" value="" required>
                </div>
                <div class="widget widget-password confirm mandatory">
                    <label for="ctrl_password_confirm" class="confirm mandatory">
                        <span class="invisible">Pflichtfeld </span>Bestätigung<span class="mandatory">*</span>
                    </label>
                    <input type="password" name="password_confirm" id="ctrl_password_confirm" class="text password mandatory" value="" required>
                </div>
            </div>
            <div class="widget widget-submit">
                <button type="submit" class="submit">Passwort ändern</button>
            </div>
        </div>
    </form>

</div>
<!-- indexer::continue -->

Passwort vergessen

Das Frontend-Modul »Passwort vergessen« fügt der Webseite ein Formular hinzu, mit dem ein Mitglied ein neues Passwort anfordern kann. Dazu verschickt Contao eine automatische E-Mail mit einem Bestätigungslink an die E-Mail-Adresse, die in dem jeweiligen Benutzerkonto gespeichert ist. Erst nach dem Anklicken dieses Bestätigungslinks ist die Eingabe eines neuen Passworts möglich.

Frontend-Ausgabe

Benutzernamen nicht abfragen: Wenn du diese Option auswählst, wird der Benutzername bei der Anforderung nicht abgefragt.

Sicherheitsfrage deaktivieren: Hier kannst du die Sicherheitsfrage deaktivieren (nicht empfohlen). Seit Contao 4.4 wird diese Frage nur noch den Spambots »angezeigt«. Ohne Sicherheitsfrage ist es unter Umständen möglich, dass Spammer automatisiert Benutzerkonten erstellen und deine Webseite missbrauchen.

Weiterleitungsseite: Hier legst du fest, auf welche Seite ein Benutzer nach dem Anfordern eines neuen Passworts weitergeleitet wird.

Bestätigungsseite: Hier legst du fest, auf welche Seite ein Benutzer nach erfolgreicher Erstellung eines neuen Passworts weitergeleitet wird.

Bestätigungsmail: Gebe hier den Text der Bestätigungsmail ein. Du kannst Platzhalter im Format ##key## für alle Benutzereigenschaften sowie die Platzhalter ##domain## für die aktuelle Domain und ##link## für den Bestätigungslink verwenden.

Eine Bestätigungsmail kann zum Beispiel wie folgt aussehen:

Sehr geehrte(r) ##firstname## ##lastname##,

Sie haben ein neues Passwort für ##domain## angefordert.

Bitte klicken Sie auf den Link, um das neue Passwort festzulegen:

##link##

Wenn Sie diese E-Mail nicht angefordert haben, kontaktieren Sie bitte den Administrator der Webseite.

Ihr Administrator

Individuelles Template: Hier kannst du das Standard-Template mod_lostPassword überschreiben.

HTML-Ausgabe
Das Frontend-Modul generiert folgenden HTML-Code:

<!-- indexer::stop -->
<div class="mod_lostPassword block">

    <form action="…" id="tl_lost_password" method="post">
        <div class="formbody">
        <input type="hidden" name="FORM_SUBMIT" value="tl_lost_password">
        <input type="hidden" name="REQUEST_TOKEN" value="…">
            <div class="fields">
                <div class="widget widget-text mandatory">
                    <label for="ctrl_username" class="mandatory">
                        <span class="invisible">Pflichtfeld </span>Benutzername<span class="mandatory">*</span>
                    </label>
                    <input type="text" name="username" id="ctrl_username" class="text mandatory" value="" required maxlength="64">
                </div>
                <div class="widget widget-text mandatory">
                    <label for="ctrl_email" class="mandatory">
                        <span class="invisible">Pflichtfeld </span>E-Mail-Adresse<span class="mandatory">*</span>
                    </label>
                    <input type="email" name="email" id="ctrl_email" class="text mandatory" value="" required maxlength="255">
                </div>
            </div>
            <div class="widget widget-submit">
                <button type="submit" class="submit">Neues Passwort anfordern</button>
            </div>
        </div>
    </form>

</div>
<!-- indexer::continue -->

Konto schließen

Das Frontend-Modul »Konto schließen« fügt der Webseite ein Formular hinzu, mit dem ein Mitglied sein Konto schließen kann. Je nach Konfiguration wird der Account dabei entweder nur deaktiviert oder komplett aus der Datenbank gelöscht.

Frontend-Ausgabe

Modus: Hier legst du fest, ob das jeweilige Konto beim Absenden des Formulars lediglich deaktiviert oder komplett aus der Datenbank gelöscht werden soll.

Weiterleitungsseite: Hier legst du fest, auf welche Seite ein Mitglied nach der Kontoschließung weitergeleitet wird. Die Zielseite darf nicht geschützt sein.

Individuelles Template: Hier kannst du das Standard-Template mod_closeAccount überschreiben.

HTML-Ausgabe
Das Frontend-Modul generiert folgenden HTML-Code:

<!-- indexer::stop -->
<div class="mod_closeAccount block">

    <form action="…" id="tl_close_account" method="post">
        <div class="formbody">
            <input type="hidden" name="FORM_SUBMIT" value="tl_close_account">
            <input type="hidden" name="REQUEST_TOKEN" value="…">
            <div class="fields">
                <div class="widget widget-text mandatory">
                    <label for="ctrl_password" class="mandatory">
                        <span class="invisible">Pflichtfeld </span>Passwort<span class="mandatory">*</span>
                    </label>
                    <input type="password" name="password" id="ctrl_password" class="text password mandatory" value="" required>
                </div>
            </div>
            <div class="widget widget-submit">
                <button type="submit" class="submit">Konto schließen</button>
            </div>
        </div>
    </form>

</div>
<!-- indexer::continue -->

Zwei-Faktor-Authentifizierung

Diese Funktion ist erst ab Contao 4.8 verfügbar.

Das Frontend-Modul »Zwei-Faktor-Authentifizierung« fügt der Webseite ein Formular hinzu, mit dem ein Mitglied die Zwei-Faktor-Authentifizierung aktivieren kann. Dieses Modul muss auf der in der Seitenstruktur unter Weitere Einstellungen bei Startpunkten ausgewählten Seite eingerichtet werden.

Frontend-Ausgabe

Bitte aktivieren Sie die Zwei-Faktor-Authentifizierung bevor Sie fortfahren.

Bitte scannen Sie den QR-Code mit Ihrer 2FA/TOTP-App.

Wenn Sie den QR-Code nicht scannen können, geben Sie stattdessen diesen Schlüssel ein:

YEXTWQFNZ5DJPZH7QTUN5U3WHBKIFAZG2O6VWYCUO7MRZENQTUVILUFRI23S6EIXCJ7PHT2L47QXY36SIQUUGR6A3ZP6VUMSHDED4KBYKAZCZJ5Q36AH6NRYELROIZL4EAZHBZLTPQ5HSW3ZSOTUH6IZWOBR7H5X4RHOTEHYVFKJ6THZB7XT3OREBEW5S5JET3TNOZIDBGJOI

Bitte geben Sie den von Ihrer 2FA/TOTP-App generierten Bestätigungscode ein.

Individuelles Template: Hier kannst du das Standard-Template mod_two_factor überschreiben.

HTML-Ausgabe
Das Frontend-Modul generiert folgenden HTML-Code:

<!-- indexer::stop -->
<div class="mod_two_factor two-factor block">
    
    <p class="error">Bitte aktivieren Sie die Zwei-Faktor-Authentifizierung bevor Sie fortfahren.</p>
    <p>Bitte scannen Sie den QR-Code mit Ihrer 2FA/TOTP-App.</p>
    
    <form action="" class="tl_two_factor_form" method="post">
        <div class="formbody">
            <input type="hidden" name="FORM_SUBMIT" value="tl_two_factor">
            <input type="hidden" name="REQUEST_TOKEN" value="_">
            <div class="qr-code">
                <img src="data:image/svg+xml;base64,…" alt>
            </div>
            <div class="widget">
                <p>Wenn Sie den QR-Code nicht scannen können, geben Sie stattdessen diesen Schlüssel ein:</p>
                <code style="word-break:break-all">…</code>
            </div>
            <div class="widget widget-text">
                <label for="verify">Bestätigungscode</label>
                <input type="text" name="verify" id="verify" class="text" value="" autocapitalize="off" autocomplete="off" required>
                <p class="help">Bitte geben Sie den von Ihrer 2FA/TOTP-App generierten Bestätigungscode ein.</p>
            </div>
            <div class="submit_container">
                <button type="submit" class="tl_submit">Aktivieren</button>
            </div>
        </div>
    </form>
  
</div>
<!-- indexer::continue -->