[2869 Aufrufe]
Hook:
Hook:
Hooks: config
In diesem Abschnitt beschäftigen wir uns mit den Hooks für die Konfiguration.
Hook: getAttributesFromDca
Der getAttributesFromDca Hook wird aufgerufen, wenn Attribute eines Widgets aud dem Data Contaiern Array ausgelesen werden.
Registrierung
# /src/Ctocb/Example/Resources/config/services.yml
services:
# Hooks
Ctocb\Example\Classes\Contao\Hooks\ExampleHook:
public: true
tags:
- { name: contao.hook, hook: getAttributesFromDca, method: handleHook, priority: 1024 }
Klasse
<?php
namespace Ctocb\Example\Classes\Contao\Hooks;
class ExampleHook {
public function handleHook(array $attributes, $context = null): array
{
// Modify $attributes here ...
return $attributes
}
}
Parameter:
Parameter | Typ | Beschreibung |
---|---|---|
$attributes |
array |
Array mit den Attributen aus dem DCA |
$context |
\Contao\DataContainer|\Contao\Module|null |
Instanz des DataContaiers, des Moduls oder null |
Rückgabewert:
Typ | Beschreibung |
---|---|
array |
Das überarbeitet Array mit den Attributen |
Referenz im Contao Core: \Contao\Widget#L1407-L1414
Hook: getCountries
Dieser Hook ist veraltet und kann unter Contao 5 nicht mehr verwendet werden! Unter Contao 5 gibt es stattdessen den Contao\CoreBundle\Intl\Countries
Service.
Der getCountries Hook wird aufgerufen, wenn die Liste der Länder geladen wird. Er erlaubt das Verändern der Liste.
Registrierung
# /src/Ctocb/Example/Resources/config/services.yml
services:
# Hooks
Ctocb\Example\Classes\Contao\Hooks\ExampleHook:
public: true
tags:
- { name: contao.hook, hook: getCountries, method: handleHook, priority: 1024 }
Klasse
<?php
namespace Ctocb\Example\Classes\Contao\Hooks;
class ExampleHook {
public function handleHook(array &$translatedCountries, array $allCountries): void
{
// Codes for the european countries
$europeanCountryCodes = ['de', 'at', 'ch' /*, ... */];
// Remove all non-european countries
$translatedCountries = array_intersect_key($translatedCountries, array_flip($europeanCountryCodes));
}
}
Parameter:
Parameter | Typ | Beschreibung |
---|---|---|
translatedCountries |
array |
Array mit den Ländern |
$allCountries |
array |
Array mit allen Ländern aus countries.php |
Rückgabewert:
Keiner, da das Array translatedCountries
per Referenz übergeben wird.
Referenz im Contao Core: \Contao\System#L521-L528 und countries.php