5.24 Hooks: template
In diesem Abschnitt beschäftigen wir uns mit den Hooks für die Templates.
Hook: compileArticle
Der compileArticle Hook wurde bereits unter "Hooks: article" besprochen.
Hook: modifyFrontendPage
Der modifyFrontendPage Hook wir aufgerufen, wenn ein Frontendtemplate ausgegeben wird.
Es ist zu beachten, dass der Hook erst nach dem Ersetzen der InsertTags aufgerufen
wird. Wird ein Hook benötigt, der vor dem Ersetzen der InsertTags aufgerufen werden soll, kann der
outputFrontendTemplate
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: modifyFrontendPage, method: handleHook, priority: 1024 }
Klasse
<?php
namespace Ctocb\Example\Classes\Contao\Hooks;
class ExampleHook {
public function handleHook(string $buffer, string $templateName): string
{
if ('fe_page' === $templateName) {
// Modify $buffer
}
return $buffer;
}
}
Parameter:
Parameter | Typ | Beschreibung |
---|---|---|
$buffer |
string |
Inhalt des Template |
$templateName |
string |
Name des Templates |
Rückgabewert:
Typ | Beschreibung |
---|---|
string |
Inhalt des Template |
Referenz im Contao Core: \Contao\FrontendTemplate#L132-L140 und https://github.com/contao/core/issues/4291
Hook: outputBackendTemplate
Der outputBackendTemplate Hook wir aufgerufen, wenn ein Backendtemplate ausgegeben wird.
Registrierung
# /src/Ctocb/Example/Resources/config/services.yml
services:
# Hooks
Ctocb\Example\Classes\Contao\Hooks\ExampleHook:
public: true
tags:
- { name: contao.hook, hook: outputBackendTemplate, method: handleHook, priority: 1024 }
Klasse
<?php
namespace Ctocb\Example\Classes\Contao\Hooks;
class ExampleHook {
public function handleHook(string $buffer, string $templateName): string
{
if ('be_main' === $templateName) {
// Modify $buffer
}
return $buffer;
}
}
Parameter:
Parameter | Typ | Beschreibung |
---|---|---|
$buffer |
string |
Inhalt des Template |
$templateName |
string |
Name des Templates |
Rückgabewert:
Typ | Beschreibung |
---|---|
string |
Inhalt des Template |
Referenz im Contao Core: \Contao\BackendTemplate#L141-L149
Hook: outputFrontendTemplate
Der outputFrontendTemplate Hook wir aufgerufen, wenn ein Frontendtemplate ausgegeben wird.
Es ist zu beachten, dass der Hook vor dem Ersetzen der InsertTags aufgerufen
wird. Wird ein Hook benötigt, der erst nach dem Ersetzen der InsertTags aufgerufen werden soll, kann der
modifyFrontendPage
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: outputFrontendTemplate, method: handleHook, priority: 1024 }
Klasse
<?php
namespace Ctocb\Example\Classes\Contao\Hooks;
class ExampleHook {
public function handleHook(string $buffer, string $templateName): string
{
if ('fe_page' === $templateName) {
// Modify $buffer
}
return $buffer;
}
}
Parameter:
Parameter | Typ | Beschreibung |
---|---|---|
$buffer |
string |
Inhalt des Template |
$templateName |
string |
Name des Templates |
Rückgabewert:
Typ | Beschreibung |
---|---|
string |
Inhalt des Template |
Referenz im Contao Core: \Contao\FrontendTemplate#L118-L126
Hook: parseArticles
Der parseArticles Hook wurde bereits unter "Hooks: modules" besprochen.
Hook: parseBackendTemplate
Der parseBackendTemplate Hook wir aufgerufen, wenn ein Backendtemplate 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: parseBackendTemplate, method: handleHook, priority: 1024 }
Klasse
<?php
namespace Ctocb\Example\Classes\Contao\Hooks;
class ExampleHook {
public function handleHook(string $buffer, string $templateName): string
{
if ('be_main' === $templateName) {
// Modify $buffer
}
return $buffer;
}
}
Parameter:
Parameter | Typ | Beschreibung |
---|---|---|
$buffer |
string |
Inhalt des Template |
$templateName |
string |
Name des Templates |
Rückgabewert:
Typ | Beschreibung |
---|---|
string |
Inhalt des Template |
Referenz im Contao Core: \Contao\BackendTemplate#L35-L43
Hook: parseFrontendTemplate
Der parseFrontendTemplate Hook wir aufgerufen, wenn ein Frontendtemplate 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: parseFrontendTemplate, method: handleHook, priority: 1024 }
Klasse
<?php
namespace Ctocb\Example\Classes\Contao\Hooks;
use Contao\FrontendTemplate;
class ExampleHook {
public function handleHook(string $buffer, string $templateName, FrontendTemplate $template): string
{
if ('ce_text' === $templateName) {
// Modify $buffer
}
return $buffer;
}
}
Parameter:
Parameter | Typ | Beschreibung |
---|---|---|
$buffer |
string |
Inhalt des Template |
$templateName |
string |
Name des Templates |
$template |
\Contao\FrontendTemplate |
Instanz des Template |
Den Parameter $template
gibt es erst ab Contao 4.9.21!
Rückgabewert:
Typ | Beschreibung |
---|---|
string |
Inhalt des Template |
Referenz im Contao Core: \Contao\FrontendTemplate#L45-L53
Hook: parseTemplate
Der parseTemplate Hook wir aufgerufen, bevor ein Template 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: parseTemplate, method: handleHook, priority: 1024 }
Klasse
<?php
namespace Ctocb\Example\Classes\Contao\Hooks;
use Contao\Template;
class ExampleHook {
public function handleHook(Template $template): void
{
if ('fe_page' === $template->getName() || 0 === strpos($template->getName(), 'fe_page_')) {
$template->foobar = 'foobar';
}
}
}
Parameter:
Parameter | Typ | Beschreibung |
---|---|---|
$template |
\Contao\Template |
Instanz des Template |
Rückgabewert:
keiner
Referenz im Contao Core: \Contao\Template#L290-L298