5.23 Hooks: system
In diesem Abschnitt beschäftigen wir uns mit den Hooks für das System.
Hook: getCountries
Der getCountries Hook wurde bereits unter "Hooks: config" besprochen.
Hook: getLanguages
Der getLanguages Hook erlaubt das Ändern der Listen der im System vorhandenen Sprachen.
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: getLanguages, method: handleHook, priority: 1024 }
Klasse
<?php
namespace Ctocb\Example\Classes\Contao\Hooks;
class ExampleHook {
public function handleHook(array &$compiledLanguages, array $languages, array $langsNative, bool $installedOnly): void
{
// Make your changes to $compiledLanguages
}
}
Parameter:
Parameter | Typ | Beschreibung |
---|---|---|
$compiledLanguages |
array |
Array mit den Sprachen des Systems, diese Array kann verändert werden |
$languages |
array |
Array mit den Sprachen aus der Datei languages.php |
$langsNative |
array |
Array mit den nativen Sprachnamen, ebenfalls aus der Datei languages.php |
$installedOnly |
bool |
Bei true werden nur istallierte Sprachen zurückgegeben |
Rückgabewert:
Keiner, da $compiledLanguages
als Referenz übergeben wird.
Referenz im Contao Core: \Contao\System#L574-L581
Hook: initializeSystem
Der initializeSystem Hook wird aufgerufen, wenn das System initialisiert wurde. Er erlaubt sehr fürhe und umfangreiche Systemeingriffe.
Registrierung
# /src/Ctocb/Example/Resources/config/services.yml
services:
# Hooks
Ctocb\Example\Classes\Contao\Hooks\ExampleHook:
public: true
tags:
- { name: contao.hook, hook: initializeSystem, method: handleHook, priority: 1024 }
Klasse
<?php
namespace Ctocb\Example\Classes\Contao\Hooks;
class ExampleHook {
public function handleHook(): void
{
// Do something ...
}
}
Parameter:
keine
Rückgabewert:
keine
Referenz im Contao Core: \Contao\CoreBundle\Framework\ContaoFramework#L373-L377
Hook: loadDataContainer
Der loadDataContainer Hook wurde bereits unter "Hooks: dca" besprochen.
Hook: loadLanguageFile
Der loadLanguageFile Hook wird aufgerufen, wenn eine Sprachdagteie geladen wird.
Registrierung
# /src/Ctocb/Example/Resources/config/services.yml
services:
# Hooks
Ctocb\Example\Classes\Contao\Hooks\ExampleHook:
public: true
tags:
- { name: contao.hook, hook: loadLanguageFile, method: handleHook, priority: 1024 }
Klasse
<?php
namespace Ctocb\Example\Classes\Contao\Hooks;
class ExampleHook {
public function handleHook(string $name, string $currentLanguage, string $cacheKey): void
{
// Do something ...
}
}
Parameter:
Parameter | Typ | Beschreibung |
---|---|---|
$name |
string |
Name der Sprachdatei (z. B. tl_content ) |
$currentLanguage |
string |
Name der Sprache normalerweise wie in $GLOBALS['TL_LANGUAGE'] |
$cacheKey |
string |
Interner Schlüssel für den Cache |
Rückgabewert:
keiner
Referenz im Contao Core: \Contao\System#L438-L445
Hook: setCookie
Der setCookie Hook wird aufgerufen, wenn eine Sprachdagteie geladen wird.
Dieser Hook ist veraltet und kann unter Contao 6 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: setCookie, method: handleHook, priority: 1024 }
Klasse
<?php
namespace Ctocb\Example\Classes\Contao\Hooks;
class ExampleHook {
public function handleHook($cookie)
{
// Make sure the cookie is also valid for the whole domain
$cookie->strPath = '/';
return $cookie;
}
}
Parameter:
Parameter | Typ | Beschreibung |
---|---|---|
$cookie |
object |
stdClass mit den Eigenschaften des Cookies |
Rückgabewert:
Typ | Beschreibung |
---|---|
object |
stdClass mit den Eigenschaften des Cookies |
Aufbau des Objekts:
Name | Beschreibung |
---|---|
$cookie->strName |
Name des Cookies |
$cookie->varValue |
Wert des Cookies |
$cookie->intExpires |
Ablaufzeit in Sekungen ab dem Setzen des Cookies |
$cookie->strPath |
Relative Pfad, wenn Contao in einer Subdomain installiert ist |
$cookie->strDomain |
Domain des Cookies |
$cookie->blnSecure |
true oder false entscheidet, ob der Cookie nur für HTTPS zur Verfügung steht |
$cookie->blnHttpOnly |
Bei true wird der "httponly" Flag gesetzt |
Referenz im Contao Core: \Contao\System#L664-L671