5.3 Hooks: automator
In diesem Abschnitt beschäftigen wir uns mit den Hooks für die Automatisierung.
Hook: generateXmlFiles
Der generateXmlFiles Hook wird aufgerufen, wenn eine XML-Datei generiert wird. Es gibt keine Parameter und es wird kein Rückgabewert erwartet.
Registrierung
# /src/Ctocb/Example/Resources/config/services.yml
services:
# Hooks
Ctocb\Example\Classes\Contao\Hooks\ExampleHook:
public: true
tags:
- { name: contao.hook, hook: generateXmlFiles, method: handleHook, priority: 1024 }
Klasse
<?php
namespace Ctocb\Example\Classes\Contao\Hooks;
class ExampleHook {
public function handleHook(): void
{
// Do something …
}
}
Parameter:
keine
Rückgabewert:
keiner
Referenz im Contao Core: \Contao\Automator.php#L412-L420
Hook: getSearchablePages
Dieser Hook ist seit Contao 4.11 veraltet und kann unter Contao 5 nicht mehr verwendet werden!
Der getSearchablePages Hook wird aufgerufen, wenn der
Suchindex neu berechnet wird. Als Rückgabewert wird das bearbeitete Array $pages
erwartet.
Registrierung
# /src/Ctocb/Example/Resources/config/services.yml
services:
# Hooks
Ctocb\Example\Classes\Contao\Hooks\ExampleHook:
public: true
tags:
- { name: contao.hook, hook: getSearchablePages, method: handleHook, priority: 1024 }
Klasse
<?php
namespace Ctocb\Example\Classes\Contao\Hooks;
class ExampleHook {
public function handleHook(array $pages, $rootId = 0, bool $isSitemap = false, string $language = null): array
{
// Modify the $pages array …
return $pages;
}
}
Parameter:
Parameter | Typ | Beschreibung |
---|---|---|
$pages |
array |
Array mit Urls, die indexiert werden sollen |
$rootId |
int |
Id der Root-Seite (wird nicht immer übergeben) |
$isSitemap |
bool |
Ist der Wert true wird eine Sitemap erstellt (wird nicht immer übergeben) |
$language |
string| null |
Sprache der Root-Seite (wird nicht immer übergeben) |
Rückgabewert:
keiner
Referenz im Contao Core: \Contao\RebuildIndex#L95-L103 und \Contao\Automator#L363-L371
Hook: removeOldFeeds
Der removeOldFeeds Hook wird aufgerufen, wenn alte XML-Dateien entfernt werden. Es gibt keine Parameter und es wird ein Array mit den Namen der Feeds, die nicht gelöscht werden sollen erwartet. Wenn keine Feeds erhalten bleiben sollen, muss ein leeres Array zurückgegeben werden.
Registrierung
# /src/Ctocb/Example/Resources/config/services.yml
services:
# Hooks
Ctocb\Example\Classes\Contao\Hooks\ExampleHook:
public: true
tags:
- { name: contao.hook, hook: removeOldFeeds, method: handleHook, priority: 1024 }
Klasse
<?php
namespace Ctocb\Example\Classes\Contao\Hooks;
class ExampleHook {
public function handleHook(): array
{
// Return the names of your custom feeds which should not be removed
return ['custom'];
}
}
Parameter:
keine
Rückgabewert:
keiner
Referenz im Contao Core: \Contao\Automator#L257-L265