Kontaktseite: eigene /kontakt mit Hero + Formular
Neue /kontakt-Seite (Hero + wiederverwendete contact-form-Komponente, ohne Intro-Block). Behebt die bisher ins 404 laufenden "Kontakt aufnehmen"-CTAs. - contact-form: optionales $intro + Rücksprung-Slug $return (Hidden-Feld) - contact-submit: PRG-Redirect zur absendenden Seite, whitelist-validiert gegen routes.php (kein Open-Redirect) - Verlinkt im Footer-Rechtsbereich und im Menü "Der Verein" Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HGzc6GhWhmLJt1jC2q1SRZ
This commit is contained in:
24
app/pages/kontakt.php
Normal file
24
app/pages/kontakt.php
Normal file
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* Kontaktseite — Hero + Kontaktformular (dieselbe Komponente wie auf der Startseite).
|
||||
* Inhalte: data/kontakt.json (Single Source of Truth).
|
||||
*/
|
||||
$page = json_load('kontakt');
|
||||
|
||||
$meta = [
|
||||
'title' => 'Kontakt',
|
||||
'description' => 'Kontakt zum TSV 08 Kulmbach: Schreib uns über das Formular – zu Fußball, Turnen oder einem allgemeinen Anliegen. Wir melden uns so schnell wie möglich.',
|
||||
'og_image' => 'img/pages/vereinsgelaende-1600.jpg',
|
||||
'scripts' => ['form.js'],
|
||||
'schema' => page_schema([
|
||||
['name' => 'Startseite', 'slug' => ''],
|
||||
['name' => 'Kontakt', 'slug' => 'kontakt'],
|
||||
]),
|
||||
];
|
||||
|
||||
component('hero', ['hero' => $page['hero']]);
|
||||
// Kein Intro-Block: Der Hero liefert bereits Überschrift + Teaser, hier folgt nur das Formular.
|
||||
component('contact-form', ['return' => 'kontakt']);
|
||||
Reference in New Issue
Block a user