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 MemberModel s 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