[841 Aufrufe]

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