[1130 Aufrufe]

5.14 Hooks: member

In diesem Abschnitt beschäftigen wir uns mit den Hooks für die Mitglieder.

Hook: activateAccount

Der activateAccount Hook wird aufgerufen, wenn ein Forntend-Mitglied aktiviert wird.

Registrierung

# /src/Ctocb/Example/Resources/config/services.yml
services:

  # Hooks
  Ctocb\Example\Classes\Contao\Hooks\ExampleHook:
    public: true
    tags:
      - { name: contao.hook, hook: activateAccount, method: handleHook, priority: 1024 }

Klasse

<?php

namespace Ctocb\Example\Classes\Contao\Hooks;

use Contao\Module;
use Contao\MemberModel;

class ExampleHook {

    public function handleHook(MemberModel $member, Module $module): void
    {
        // Do something ...
    }
}

Parameter:

Parameter Typ Beschreibung
$member \Contao\MemberModel Instanz des MemberModels des aktivierten Accounts
$module \Contao\Module Instanz des Moduls, dass die Aktivierung ausgelöst hat

Rückgabewert:

keiner

Referenz im Contao Core: \Contao\ModuleRegistration#L553-L561

Hook: checkCredentials

Der checkCredentials Hook wird aufgerufen, wenn ein Login fehlschlägt, weil das Passwort falsch eingegeben wurde. Dieser Hook ermöglicht die individuelle Prüfung der Zugangsdaten (z. B. über einen externen Dienst).

Registrierung

# /src/Ctocb/Example/Resources/config/services.yml
services:

  # Hooks
  Ctocb\Example\Classes\Contao\Hooks\ExampleHook:
    public: true
    tags:
      - { name: contao.hook, hook: checkCredentials, method: handleHook, priority: 1024 }

Klasse

<?php

namespace Ctocb\Example\Classes\Contao\Hooks;

use Contao\User;

class ExampleHook {

    public function handleHook(string $username, string $credentials, User $user): bool
    {
        // Custom method of checking credentials (e.g. external service)
        if ($this->customCredentialsCheck($username, $credentials)) {
            // More custom logic ...

            return true;
        }

        return false;
    }
}

Parameter:

Parameter Typ Beschreibung
$username string Der eingegebene Benutzername
$credentials string Das eingegebene Passwort
$user \Contao\User Instanz des Models des Users mit dem eingegebenen Nutzernamen

Rückgabewert:

Typ Beschreibung
bool Wenn die Zugangsdaten gültig sind, muss true zurückgegeben werden, sonst false

Referenz im Contao Core: \Contao\CoreBundle\Security\Authentication\Provider\AuthenticationProvider#L111-L133

Hook: closeAccount

Der closeAccount Hook wird aufgerufen, wenn ein Nutzer seinen Account schließt.

Registrierung

# /src/Ctocb/Example/Resources/config/services.yml
services:

  # Hooks
  Ctocb\Example\Classes\Contao\Hooks\ExampleHook:
    public: true
    tags:
      - { name: contao.hook, hook: closeAccount, method: handleHook, priority: 1024 }

Klasse

<?php

namespace Ctocb\Example\Classes\Contao\Hooks;

use Contao\Module;

class ExampleHook {

    public function handleHook(int $userId, string $mode, Module $module): void
    {
        // Do something ...
    }
}

Parameter:

Parameter Typ Beschreibung
$userId int Id des Benutzers, der seinen Account schließt
$mode string Art der Schließung (close_deactivate oder close_delete)
$module \Contao\Module Instanz des Moduls das die Aktion ausgelöst hat

Rückgabewert:

keiner

Referenz im Contao Core: \Contao\ModuleCloseAccount#L93-L101

Hook: createNewUser

Der createNewUser Hook wird aufgerufen, wenn ein Nutzer einen Account anlegt.

Registrierung

# /src/Ctocb/Example/Resources/config/services.yml
services:

  # Hooks
  Ctocb\Example\Classes\Contao\Hooks\ExampleHook:
    public: true
    tags:
      - { name: contao.hook, hook: createNewUser, method: handleHook, priority: 1024 }

Klasse

<?php

namespace Ctocb\Example\Classes\Contao\Hooks;

use Contao\Module;

class ExampleHook {

    public function handleHook(int $userId, array $userData, Module $module): void
    {
        // Do something ...
    }
}

Parameter:

Parameter Typ Beschreibung
$userId integer Id des Nutzers, der den Account anlegt
$userData array Die in das Registrierungsformular eingegebenen Daten
$module \Contao\Module Instanz des Module über das die Daten angelegt wurde

Rückgabewert:

keiner

Referenz im Contao Core: \Contao\ModuleRegistration#L426-L434

Hook: importUser

Der importUser Hook wird aufgerufen, wenn ein Benutzername nicht in der Datenbank gefunden wird. Der Hook ermöglicht es, den Nutzer aus anderen Quellen zu importieren und in der Datenbank von Contao anzulegen.

Dieser Hook ist veraltet und kann unter Contao 5 nicht mehr verwendet werden!

Registrierung

# /src/Ctocb/Example/Resources/config/services.yml
services:

  # Hooks
  Ctocb\Example\Classes\Contao\Hooks\ExampleHook:
    public: true
    tags:
      - { name: contao.hook, hook: importUser, method: handleHook, priority: 1024 }

Klasse

<?php

namespace Ctocb\Example\Classes\Contao\Hooks;

class ExampleHook {

    public function handleHook(string $username, string $password, string $table): void
    {
        // Do something ...
    }
}

Parameter:

Parameter Typ Beschreibung
$username string Der eingegebene Benutzername
$password string Das eingegebene Passowrt
$table string Name der Tabelle in der der Benutzername gesucht wurde (tl_member oder tl_user)

Rückgabewert:

Typ Beschreibung
bool Wenn der Nutzer in die Tabelle eingefügt wurde, muss true zurückgegeben werden, sonst false

Referenz im Contao Core: \Contao\User#L655-L688

Hook: postAuthenticate

Der postAuthenticate Hook wird aufgerufen, nach dem sich ein Nutzer autentifiziert hat.

Dieser Hook ist veraltet und kann unter Contao 5 nicht mehr verwendet werden!

Registrierung

# /src/Ctocb/Example/Resources/config/services.yml
services:

  # Hooks
  Ctocb\Example\Classes\Contao\Hooks\ExampleHook:
    public: true
    tags:
      - { name: contao.hook, hook: postAuthenticate, method: handleHook, priority: 1024 }

Klasse

<?php

namespace Ctocb\Example\Classes\Contao\Hooks;

use Contao\User;

class ExampleHook {

    public function handleHook(User $user): void
    {
        // Do something ...
    }
}

Parameter:

Parameter Typ Beschreibung
$user \Contao\User Instanz des Nutzerobjekts

Rückgabewert:

keiner

Referenz im Contao Core: \Contao\CoreBundle\Security\User\ContaoUserProvider#L140-L154

Hook: postLogin

Der postLogin Hook wird nach dem Einloggen eines Nutzers aufgerufen.

Dieser Hook ist veraltet und kann unter Contao 5 nicht mehr verwendet werden!

Registrierung

# /src/Ctocb/Example/Resources/config/services.yml
services:

  # Hooks
  Ctocb\Example\Classes\Contao\Hooks\ExampleHook:
    public: true
    tags:
      - { name: contao.hook, hook: postLogin, method: handleHook, priority: 1024 }

Klasse

<?php

namespace Ctocb\Example\Classes\Contao\Hooks;

use Contao\User;
use Contao\FrontendUser;

class ExampleHook {

    public function handleHook(User $user): void
    {
        if ($user instanceof FrontendUser) {
            // Do something with the front end user $user  
        }
    }
}

Parameter:

Parameter Typ Beschreibung
$user \Contao\User Instanz des Nutzerobjekts

Rückgabewert:

keiner

Referenz im Contao Core: \Contao\CoreBundle\Security\Authentication\AuthenticationSuccessHandler#L112-L128

Hook: postLogout

Der postLogout Hook wird nach dem Ausloggen eines Nutzers aufgerufen.

Dieser Hook ist veraltet und kann unter Contao 5 nicht mehr verwendet werden!

Registrierung

# /src/Ctocb/Example/Resources/config/services.yml
services:

  # Hooks
  Ctocb\Example\Classes\Contao\Hooks\ExampleHook:
    public: true
    tags:
      - { name: contao.hook, hook: postLogout, method: handleHook, priority: 1024 }

Klasse

<?php

namespace Ctocb\Example\Classes\Contao\Hooks;

use Contao\User;
use Contao\FrontendUser;

class ExampleHook {

    public function handleHook(User $user): void
    {
        if ($user instanceof FrontendUser) {
            // Do something with the front end user $user  
        }
    }
}

Parameter:

Parameter Typ Beschreibung
$user \Contao\User Instanz des Nutzerobjekts

Rückgabewert:

keiner

Referenz im Contao Core: \Contao\CoreBundle\Security\Logout\LogoutHandler#L64-L82

Hook: setNewPassword

Der setNewPassword Hook wurde bereits unter "Hooks: backend" besprochen.

Hook: updatePersonalData

Der updatePersonalData Hook wird aufgerufen, wenn ein Frontendnutzer seine eigenen Daten aktualisiert.

Es sit zu beachten, dass die Datenbank bereits aktualisiert wurde, wenn der Hook aufgerufen wird.

Registrierung

# /src/Ctocb/Example/Resources/config/services.yml
services:

  # Hooks
  Ctocb\Example\Classes\Contao\Hooks\ExampleHook:
    public: true
    tags:
      - { name: contao.hook, hook: updatePersonalData, method: handleHook, priority: 1024 }

Klasse

<?php

namespace Ctocb\Example\Classes\Contao\Hooks;

use Contao\FrontendUser;
use Contao\Module;

class ExampleHook {

    public function handleHook(FrontendUser $member, array $data, Module $module): void
    {
        // Do something ...
    }
}

Parameter:

Parameter Typ Beschreibung
$member \Contao\FrontendUser Instanz des Nutzerobjekts
$data array Die in das Formular eingegebenen Daten
$module \Contao\Module Instanz des Module über das die Änderung ausgelöst wurde

Rückgabewert:

keiner

Referenz im Contao Core: \Contao\ModulePersonalData#L333-L341