Die Domain-Auflösung matchte den Host exakt gegen domain_name —
www.presseecho.de fiel dadurch aufs Portal-Default-Theme zurück, dessen
theme-portal.css im Web-Build nicht existiert. Alle Route::view-Seiten
ohne Controller (Impressum, Datenschutz, AGB, FAQ, …) antworteten auf
www-Hosts mit 500 (ViteException, Dauereintrag im Live-Log); die
Controller-Seiten traf es nicht, weil WebPortalContext den Host tolerant
matcht. resolve() normalisiert Hosts jetzt (lowercase, www. entfernt) auf
beiden Seiten des Vergleichs.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Der Vorschau-Link (/pm-vorschau/{token}) renderte eine schlichte
Standalone-Seite, die dem spaeteren Erscheinungsbild nicht entsprach.
Jetzt rendert er die echte Detailseite (web.release-detail) im Theme
des Zielportals:
- Controller wendet Domain-/Theme-Konfig des Zielportals an (Sprache
der PM, Links zeigen auf die Portal-Domain), kein Hit-Zaehler
- Gelbes Vorschau-Banner mit Status und Link-Gueltigkeit; noindex per
Meta-Tag + X-Robots-Tag-Header, Canonical entfaellt bei noindex
(neue robots-Section im Web-Layout)
- Teilen-Buttons teilen den Vorschau-Link selbst (oeffentliche URL
existiert vor Veroeffentlichung noch nicht)
- PMs fuer beide Portale: ?portal=... waehlt die Ansicht, Umschalter
im Banner; im Kundenpanel je Portal ein Vorschau-Button, sonst ein
einzelner "Vorschau oeffnen"-Button (Link-Feld jetzt kopierbar)
- Alte press-release-preview-View entfernt
Co-authored-by: Cursor <cursoragent@cursor.com>
- WebPortalContext::fromRequest() buendelt die zuvor ~6x je Route-Closure
wiederholte Host->Portal-Ableitung (portal, language, portalValues,
domainConfig).
- DomainAssetContext::applyWebDomainConfig() ist die Single Source of Truth fuer
die Domain-/Theme-Anwendung (config + View::share + Vite); die fruehere
$applyWebDomainConfig-Closure in routes/web.php ist nur noch ein duenner
Delegations-Wrapper, damit Bare-Root- und Edition-Home-Route unveraendert
per Closure aufrufen koennen.
- Die 6 Portal-Seiten-Closures (Kategorie, Detail, Veroeffentlichen, Suche,
Newsrooms, Newsroom-Detail) sowie Preise nutzen jetzt den zentralen Kontext.
Abgesichert durch die 92 Web/-Tests (jede Seite laeuft ueber den neuen Kontext).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>