[1327 Aufrufe]

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