[894 Aufrufe]

5.20 Hooks: routing

In diesem Abschnitt beschäftigen wir uns mit den Hooks für das Routing.

Hook: getPageIdFromUrl

Der getPageIdFromUrl Hook wird aufgerufen, wenn ein Url-Fragment ausgewertet wird.

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: getPageIdFromUrl, method: handleHook, priority: 1024 }

Klasse

<?php

namespace Ctocb\Example\Classes\Contao\Hooks;

class ExampleHook {

    public function handleHook(array $fragments): array
    {
        // Analyze the fragments
        if (true) { // check something usefull
            \Contao\Input::setGet('myFirstCustomGetParameter', $fragments[1]);
            \Contao\Input::setGet('mySecondCustomGetParameter', $fragments[2]);

            return [$fragments[0]];
        }

        return $fragments;
    }
}

Parameter:

Parameter Typ Beschreibung
$fragments array Array mit den Teilen der Url

Rückgabewert:

Typ Beschreibung
array Array mit den Teilen der Url

Referenz im Contao Core: \Contao\Frontend.php#L243-L250 und \Contao\CoreBundle\Routing\Matcher\LegacyMatcher#L150-L165

Hook: getRootPageFromUrl

Der getRootPageFromUrl Hook wird aufgerufen, wenn die Wurzelseite gesucht wird.

Registrierung

# /src/Ctocb/Example/Resources/config/services.yml
services:

  # Hooks
  Ctocb\Example\Classes\Contao\Hooks\ExampleHook:
    public: true
    tags:
      - { name: contao.hook, hook: getRootPageFromUrl, method: handleHook, priority: 1024 }

Klasse

<?php

namespace Ctocb\Example\Classes\Contao\Hooks;

use Contao\PageModel;

class ExampleHook {

    public function handleHook(): ?PageModel
    {
        // Do something
    }
}

Parameter:

keine

Rückgabewert:

Typ Beschreibung
\Contao\PageModel Instanz der gefundenen Wurzelseite

Referenz im Contao Core: \Contao\CoreBundle\Routing\RouteProvider#L507-L521