5.2 Hooks: article
In diesem Abschnitt beschäftigen wir uns mit den Hooks für die Artikel.
Hook: compileArticle
Der compileArticle Hook wird aufgerufen, wenn ein Modul vom Typ Artikel gerendert wird.
Registrierung
# /src/Ctocb/Example/Resources/config/services.yml
services:
# Hooks
Ctocb\Example\Classes\Contao\Hooks\ExampleHook:
public: true
tags:
- { name: contao.hook, hook: compileArticle, method: handleHook, priority: 1024 }
Klasse
<?php
namespace Ctocb\Example\Classes\Contao\Hooks;
use Contao\Module;
use Contao\FrontendTemplate;
class ExampleHook {
public function handleHook(FrontendTemplate $template, array $data, Module $module): void
{
$template->customContent = '<p>This will be available in mod_article.html5 via $this->customContent</p>';
}
}
Parameter:
Parameter | Typ | Beschreibung |
---|---|---|
$template |
\Contao\FrontendTemplate |
Die Instanz des Templates |
$data |
array |
Das Array mit der Konfiguration des Moduls |
$module |
\Contao\Module |
Die Instanz des Moduls |
Rückgabewert:
keiner
Referenz im Contao Core: \Contao\ModuleArticle#L258-L266
Hook: getArticle
Der getArticle Hook wird aufgerufen, wenn ein Artikel geladen wird. Er erlaub das Überschreiben der Konfigruation des Artikels.
Registrierung
# /src/Ctocb/Example/Resources/config/services.yml
services:
# Hooks
Ctocb\Example\Classes\Contao\Hooks\ExampleHook:
public: true
tags:
- { name: contao.hook, hook: getArticle, method: handleHook, priority: 1024 }
Klasse
<?php
namespace Ctocb\Example\Classes\Contao\Hooks;
use Contao\ArticleModel;
class ExampleHook {
public function handleHook(ArticleModel $article): void
{
$article->tstamp = \time();
}
}
Parameter:
Parameter | Typ | Beschreibung |
---|---|---|
$article |
\Contao\ArticleModel |
Die Instanz des Artikels |
Rückgabewert:
keiner
Referenz im Contao Core: \Contao\Controller#L404-L411
Hook: getArticles
Der getArticles erlaubt das Ersetzen des Inhalts eines
Artikels. Wird ein String zurückgegeben, wird kein weiterer Hook dieses Typs aufgerufen. Wird der Inhalt nicht ersetzt
muss null
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: getArticles, method: handleHook, priority: 1024 }
Klasse
<?php
namespace Ctocb\Example\Classes\Contao\Hooks;
class ExampleHook {
public function handleHook(int $pageId, string $column): ?string
{
if (10 === (int) $pageId && 'main' === $column) {
// Generate your custom articles content here
$customArticlesContent = 'TEST';
return $customArticlesContent;
}
return null;
}
}
Parameter:
Parameter | Typ | Beschreibung |
---|---|---|
$pageId |
int |
Id der Elternseite der Artikel |
$column |
string |
Name der Spalte, in der der Artikel ausgegeben werden soll |
Rückgebewert:
Typ | Beschreibung |
---|---|
string| null |
Individueller Inhalt, der den Inhalt des Artikels überschreiben soll, oder null |
Referenz im Contao Core: \Contao\Controller#L223-L235
Hook: printArticleAsPdf
Der printArticleAsPdf wird aufgrrufen, wenn ein Artikel als PDF exportiert werden soll. Mit diesem Hook kann die PDF-Erstellung von Contao überschrieben werden.
Registrierung
# /src/Ctocb/Example/Resources/config/services.yml
services:
# Hooks
Ctocb\Example\Classes\Contao\Hooks\ExampleHook:
public: true
tags:
- { name: contao.hook, hook: printArticleAsPdf, method: handleHook, priority: 1024 }
Klasse
<?php
namespace Ctocb\Example\Classes\Contao\Hooks;
use Contao\ModuleArticle;
class ExampleHook {
public function handleHook(string $articleContent, ModuleArticle $module): void
{
// Trigger your own PDF engine and exit
exit;
}
}
Parameter:
Parameter | Typ | Beschreibung |
---|---|---|
$articleContent |
string |
Inhalt des Artikels |
$module |
\Contao\ModuleArticle |
Instanz des Moduls des Artikels |
Rückgabewert:
keiner
Referenz im Contao Core: \Contao\ModuleArticle#L296-L304