Formularvalidierung (PHP): Seitentitel der Fehlermeldungsseite ist nicht anpassbar
Wenn ich ein nicht korrekt ausgefülltes Formular absende, erscheint eine Fehlermeldungsseite, deren Seitentitel die Fehlermeldung "Das Formular konnte nicht gesendet werden" enthält.
Ich gehe davon aus, dass folgender PHP-Code in der form.php diese Fehlermeldung im Seitentitel erzeugt:
PHP-Code:
// Add a warning to the page title
if (
($doNotSubmit || $this->hasErrors())
&& !Environment::get('isAjaxRequest')
&& ($responseContext = System::getContainer()->get('contao.routing.response_context_accessor')->getResponseContext())
&& $responseContext->has(HtmlHeadBag::class)
) {
$htmlHeadBag = $responseContext->get(HtmlHeadBag::class);
$htmlHeadBag->setTitle($GLOBALS['TL_LANG']['ERR']['form'] . ' - ' . $htmlHeadBag->getTitle());
}
Normalerweise kann ich Fehlermeldungen in der contao/languages/default.php anpassen.
Um eine angepasste Fehlermeldung im Seitentitel der Fehlermeldungsseite zu erzeugen, habe ich folgenden Eintrag in die default.php eingetragen:
PHP-Code:
$GLOBALS['TL_LANG']['ERR']['form'] = 'Das Formular wurde nicht gesendet. Bitte Formulareinträge überprüfen.';
Wenn die Fehlermeldungsseite ausgegeben wird, erscheint aber weiterhin nur die Standard-Fehlermeldung "Das Formular konnte nicht gesendet werden". Die angepasste Fehlermeldung wird nicht angezeigt.
Woran liegt das?
"Clear Cache" hat geholfen
Normalerweise reicht es aus, über die Contao Backend Systemwartung den Cache zu leeren. Das geht wesentlich schneller als ein "Clear Cache" via Contao Manager.
In diesem speziellen Fall, ist aber tatsächlich ein "Clear Cache" notwendig, damit die Änderung wirksam wird.
Besten Dank für Deinen Hinweis auf die "Holzhammer-Methode", die noch etwas schneller ist als die Datenbereinigung via Systemwartung. Nur hatte ich danach eine Schrecksekunde, weil das Laden einer Seite nach Anwendung der "Holzhammer-Methode" länger als erwartet dauert.