inserttag funktioniert auf normalen Seiten, wirft aber Fehler in Event teasern
Ich übernehme Eventdaten aus einem externen Planungssystem. Dabei schreibe ich weitere Metadaten in den Teasertext. Zum Beispiel
Bei rückfragen bitte {{bgk-phone::1234456}} anrufen
Wenn ich das auf einer Seite ausgebe ist alles gut, das inserttag wird verarbeitet und es entsteht nirgends eine Fehlermeldung.
Wenn ih das im Teaser eines Events ausgebe, kommt wird das inserttag ebenfalls korrekt aufgelöst, ich bekomme aber im Systemlog eine Fehlermeldung.
In einem Nachrihtenteaser tritt das Problem nicht auf.
hier die Fehlermeldung:
ID: 30168
Datum: 07.08.2020 12:53
Ursprung: Frontend
Kategorie: ERROR
Benutzer: anon.
Details: Unknown insert tag {{bgk-phone:12234}}
Funktion: Contao\InsertTags::doReplace
IP-Adresse: 217.87.52.0
Browser: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36
Die Methode zur Auflösung ist
PHP-Code:
class BGKInsertTagListener
{
public function onReplaceInsertTags(string $tag)
{
$chunks = explode('::', $tag);
$methods = [
"bgk-phone" => "handlephone",
];
$handler = $methods[$chunks[0]];
if (isset($handler)) {
return $this->$handler($chunks);
} else {
return false;
}
}
private function handlephone($chunks)
{
$phone = $chunks[1];
$result = "<span title=\"Telefon Kontaktperson\" class=\"icon bgk-fon\">{$phone}</span>";
return $result;
}
}
$GLOBALS['TL_HOOKS']['replaceInsertTags'][] = array(
'App\Eventlistener\BGKInsertTagListener',
'onReplaceInsertTags'
);
Lesezeichen