Frontend: Editorial-Relaunch der öffentlichen Strecke + Ausgaben-Routing

Öffentliche Seiten auf gemeinsames Editorial-Design (x-web.site-header/-footer,
Design-Tokens) und Ausgaben-Präfix /{edition}/ (de|en) umgestellt.

- Routing: neue Middleware SetEdition (Locale + URL::defaults), /{edition}-Gruppe
  in routes/web.php, Root-Redirect auf /de, 301 für Legacy-.html-URLs,
  Baseline-Default in AppServiceProvider.
- Neue URL-Schemata: /{edition}/press-release/{slug}, /{edition}/category/{slug}.
- Ausgabe = Sprache: DE/EN-Umschalter (Region/CH/AT entfernt); EditorialClock
  und Livewire-Komponenten sprachdynamisch.
- Detail-, Kategorie- und Veröffentlichen-Seite mit echten Daten neu aufgebaut.
- Suche aktiviert: Volt-Komponente livewire/web/search (Titel/Text/Keywords +
  Firma + Rubrik, Filter, Sortierung, Pagination, URL-Parameter q/category/sort).
- Rubriken-Navigation statt Übersichtsseite: Helper CategoryNavigation;
  web/kategorien.blade.php + Route entfernt (Legacy-301).
- Tests: Edition-Routing, Kategorie-Seite/-Navigation, Detail, Veröffentlichen,
  Suche, EditorialClock. Doku in "Echte öffentliche Unterseiten.md" aktualisiert.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Kevin Adametz 2026-06-16 16:39:28 +00:00
parent a0547208d3
commit 253141c6dc
64 changed files with 4457 additions and 2971 deletions

View file

@ -506,7 +506,17 @@ Fünf Test-Szenarien rund um die Hub-Landing:
4. **`shows the brand-context banner when arriving from presseecho`** `?from=presseecho` triggert den Banner inkl. Link „Zurück zu presseecho.de".
5. **`shows the brand-context banner when arriving from businessportal24`** `?from=businessportal24` triggert den Banner für BP24.
**Stand:** 11 Web-Tests grün (BP24 3 + Presseecho 3 + Hub 5 = 79 Assertions). Gesamt-Suite: 220/221 (der eine Fail `ApiDocumentationTest` ist vorbestehend wegen fehlender `docs/api/v1.yml` und nicht UI-bezogen).
### Datei: `tests/Feature/Web/ReleaseDetailTest.php`
Fünf Szenarien rund um die Detailseite:
1. **`businessportal24 release detail renders the editorial shell with real data`** Titel, Lead/Subtitle, Newsroom, Rubrik, Pressekontakt, Boilerplate, Schlagwörter und sanitisierter Fließtext.
2. **`release detail counts a hit`** `hits` wird beim Aufruf um 1 erhöht.
3. **`release detail returns 404 for drafts and unknown slugs`** Entwürfe und unbekannte Slugs liefern 404.
4. **`release detail does not expose releases from another portal`** Portal-Trennung: presseecho-Release ist auf BP24 nicht abrufbar, auf presseecho schon.
5. **`release detail shows more from newsroom and related releases`** „Mehr von [Newsroom]" + „Verwandte Meldungen".
**Stand:** Web-Tests grün (BP24 3 + Presseecho 3 + Hub 5 + Detailseite 5 + Canonical/Meta). Gesamt-Suite: 612 grün, 1 skipped.
---
@ -567,6 +577,7 @@ vendor/bin/pint --dirty --format agent
| 17 | 13.05.2026 | `PressekontoHubHomeTest` (5 Szenarien inkl. Brand-Context-Banner-Conditional). Vite-Config + ThemeHelper + `web-master`-Fonts (Inter Tight + JetBrains Mono ohne Serif) für `pressekonto` ergänzt. | ✅ |
| 18 | 13.05.2026 | **Brand-Mark-Konvention etabliert** (Feintuning Marken-Schreibweise): keine TLD am Marken­schriftzug, Akzent farblich vom Basis-Wort abgesetzt. Single Source of Truth `<x-web.brand-mark>` (Marken-Tabelle inkl. Standard- und On-Dark-Akzentfarben, Serif/Sans-Switch). `config/domains.php` umgestellt (`presseecho`: `name=presse`/`accent=echo`; `pressekonto`: `name=presse`/`accent=konto`; Footer-Legal & Meta-Texte ohne TLD). Hub-Komponenten und Hub-View durchgehend auf Brand-Mark migriert (Top-Utility-Bar, Site-Header, Brand-Context-Banner, Site-Footer, Hero-Headline, Architektur-Diagramm, Tarif-Subline, Plattform-Familie, FAQ). Hub-Theme bekommt Source Serif 4 als `--font-serif` (für Marken-Mentions) Bunny-Font-Loader erweitert. **+1 neuer Test `uses the brand-mark splitting without TLDs`**; alle 12 Web-Tests grün. | ✅ |
| 19 | 12.05.2026 | **Aktuell offen:** Detailseite, Branchenseite, Veröffentlichen-Landing für BP24 + Presseecho. Hub-Folgeseiten (Konto-Erstellen-Flow als Landing, Tarif-Detail, Doku-Hub) ebenfalls offen. | 🟡 |
| 20 | 16.06.2026 | **Detailseite Pressemitteilung live** (1:1 zu `tailwind_v3/businessportal24_detailseite-tailwind.html`): `web/release-detail.blade.php` komplett auf Editorial-Design + Theme-Tokens umgebaut, nutzt `<x-web.site-header>`/`<x-web.site-footer>`, theme-fähig für BP24 **und** Presseecho. `release.detail`-Route lädt echte `PressRelease`-Daten (Lead/Subtitle, sanitisierter Fließtext via `renderedText()`, Hero-Bild mit Hatch-Fallback, Pressekontakt aus `contacts`, Schlagwörter aus `keywords`, Boilerplate, Hit-Zähler), 404 bei Entwurf/Fremd-Portal/Unbekannt. Related-Spalten „Mehr von [Newsroom]" + „Verwandte Meldungen" über `<x-web.feed-item>`. Lese-Fortschrittsbalken + Teilen (LinkedIn/X/Mail/Copy) via Alpine. Neue Status-/Prosa-Tokens (`warn-*`, `verify-*`, `.hatch-*`, `.pm-body`) zentral in `shared-styles.css`. **+5 Tests `ReleaseDetailTest`** (BP24-Shell, Hit-Zähler, 404-Fälle, Portal-Trennung, Related); `CanonicalMetaTest` auf echten Datensatz umgestellt. Gesamt-Suite 612 grün. | ✅ |
---
@ -575,7 +586,7 @@ vendor/bin/pint --dirty --format agent
| Reihenfolge | Aufgabe | Vorlage | Status |
| --- | --- | --- | --- |
| 1 | **Mobile-Feinschliff Startseite** gegen `dev/frontend/Mobile _ Startseite.png` durchgehen, alle Sektionen testen (besonders 7-Spalten-Events und 4×2 Branchen-Index Stack-Behavior) | `Mobile _ Startseite.html` | 🟡 noch nicht final geprüft |
| 2 | **Detailseite Pressemitteilung** umsetzen | `tailwind_v3/Detailseite Tailwind.html` + `Detailseite _ Pressemitteilung _aktiv.png` | 🔴 offen |
| 2 | **Detailseite Pressemitteilung** umsetzen | `tailwind_v3/businessportal24_detailseite-tailwind.html` + `Detailseite _ Pressemitteilung _aktiv.png` | ✅ **erledigt (16.06.2026)** `web/release-detail.blade.php` editorial, echte Daten, theme-fähig BP24+Presseecho, `ReleaseDetailTest` |
| 3 | **Branchenseite Energie & Klima** umsetzen (Template für alle Kategorien) | `tailwind_v3/Branchenseite Tailwind.html` + `Branchenseite _ Energie _ Klima _aktiv.png` | 🔴 offen |
| 4 | **Veröffentlichen-Landing** umsetzen (Variante A) | `tailwind_v3/Veröffentlichen Tailwind.html` + `Ver_ffentlichen _ Variante A _aktiv_.png` | 🔴 offen |
| 5 | **Echte Datenquellen** für aktuell statische Komponenten anbinden: Live-Ticker (Ad-Hoc-Meldungen), Events-Week, Newsletter-Topics, Industry-Spotlight-Studie | | 🔴 offen |