5.19 Hooks: page
In diesem Abschnitt beschäftigen wir uns mit den Hooks für die Seiten.
Hook: generateFrontendUrl
Der generateFrontendUrl Hook wurde bereits unter "Hooks: controller" besprochen.
Hook: generatePage
Der generateFrontendUrl Hook wird aufgerufen, bevor
das Haputlayput (fe_page
) verarbeitet wird.
Registrierung
# /src/Ctocb/Example/Resources/config/services.yml
services:
# Hooks
Ctocb\Example\Classes\Contao\Hooks\ExampleHook:
public: true
tags:
- { name: contao.hook, hook: generatePage, method: handleHook, priority: 1024 }
Klasse
<?php
namespace Ctocb\Example\Classes\Contao\Hooks;
use Contao\PageRegular;
use Contao\LayoutModel;
use Contao\PageModel;
class ExampleHook {
public function handleHook(PageModel $pageModel, LayoutModel $layout, PageRegular $pageRegular): void
{
// Do something ...
}
}
Parameter:
Parameter | Typ | Beschreibung |
---|---|---|
$pageModel |
\Contao\PageModel |
Instanz des Models der aktuellen Seite |
$layout |
\Contao\LayoutModel |
Instanz des aktiven Seitenlayouts |
$pageRegular |
\Contao\PageRegular |
Instanz des aktuellen Seitentyps |
Rückgabewert:
keiner
Referenz im Contao Core: \Contao\PageRegular#L193-L201
Hook: getPageLayout
Der getPageLayout Hook wird aufgerufen, wenn eine normale Seite generiert wird.
Registrierung
# /src/Ctocb/Example/Resources/config/services.yml
services:
# Hooks
Ctocb\Example\Classes\Contao\Hooks\ExampleHook:
public: true
tags:
- { name: contao.hook, hook: getPageLayout, method: handleHook, priority: 1024 }
Klasse
<?php
namespace Ctocb\Example\Classes\Contao\Hooks;
use Contao\PageRegular;
use Contao\LayoutModel;
use Contao\PageModel;
class ExampleHook {
public function handleHook(PageModel $pageModel, LayoutModel $layout, PageRegular $pageRegular): void
{
// Modify the page or layout object
}
}
Parameter:
Parameter | Typ | Beschreibung |
---|---|---|
$pageModel |
\Contao\PageModel |
Instanz des Models der aktuellen Seite |
$layout |
\Contao\LayoutModel |
Instanz des aktiven Seitenlayouts |
$pageRegular |
\Contao\PageRegular |
Instanz des aktuellen Seitentyps |
Rückgabewert:
keiner
Referenz im Contao Core: \Contao\PageRegular#L244-L252 und https://github.com/contao/core/issues/4736
Hook: getPageStatusIcon
Der getPageStatusIcon Hook wurde bereits unter "Hooks: controller" besprochen.
Hook: indexPage
Der indexPage Hook wird aufgerufen, wenn der Inhalt einer Seite zum Suchindex hinzugefügt wird.
Registrierung
# /src/Ctocb/Example/Resources/config/services.yml
services:
# Hooks
Ctocb\Example\Classes\Contao\Hooks\ExampleHook:
public: true
tags:
- { name: contao.hook, hook: indexPage, method: handleHook, priority: 1024 }
Klasse
<?php
namespace Ctocb\Example\Classes\Contao\Hooks;
class ExampleHook {
public function handleHook(string $content, array $pageData, array &$indexData): void
{
// Modify $indexData which will eventually be stored in tl_search
}
}
Parameter:
Parameter | Typ | Beschreibung |
---|---|---|
$content |
string |
Inhalt der Seite |
$pageData |
array |
Array mit den Daten der indexierten Seite |
$indexData |
array |
Array mit den gesammelten Daten |
Rückgabewert:
Keiner, da $indexData
per Referenz übergeben wird.
Referenz im Contao Core: \Contao\Search#L128-L135
Hook: loadPageDetails
Der loadPageDetails Hook wird aufgerufen, wenn die Details einer Seite geladen werden.
Dieser Hook wurde in Contao 4.8 hinzugefügt!
Registrierung
# /src/Ctocb/Example/Resources/config/services.yml
services:
# Hooks
Ctocb\Example\Classes\Contao\Hooks\ExampleHook:
public: true
tags:
- { name: contao.hook, hook: loadPageDetails, method: handleHook, priority: 1024 }
Klasse
<?php
namespace Ctocb\Example\Classes\Contao\Hooks;
use Contao\PageModel;
class ExampleHook {
public function handleHook(array $parentModels, PageModel $page): void
{
// Add additional data from the root page to the processed page
if (count($parentModels) > 0) {
$rootPage = end($parentModels);
$page->myCustomVariable = $rootPage->myCustomRootVariable;
}
}
}
Parameter:
Parameter | Typ | Beschreibung |
---|---|---|
$parentModels |
array |
Array mit den Daten aller Elternseiten der untersuchten Seite |
$page |
\Contao\PageModel |
Instanz des Models der Seite |
Rückgabewert:
Keiner, da $page
per Referenz übergeben wird.
Referenz im Contao Core: \Contao\PageModel#L1021-L1035