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>
|
|
@ -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 Markenschriftzug, 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 |
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 1.3 MiB After Width: | Height: | Size: 1.3 MiB |
|
Before Width: | Height: | Size: 1,012 KiB After Width: | Height: | Size: 1,012 KiB |
|
Before Width: | Height: | Size: 492 KiB After Width: | Height: | Size: 492 KiB |
|
Before Width: | Height: | Size: 1.5 MiB After Width: | Height: | Size: 1.5 MiB |
|
Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 1.1 MiB |
|
|
@ -187,7 +187,7 @@
|
|||
<div class="mt-1.5 pt-3.5 border-t border-bg-rule flex justify-between items-baseline text-[11px] text-ink-3">
|
||||
<div>
|
||||
<div class="eyebrow muted text-[9px] mb-1">Redaktions-Ansprech</div>
|
||||
<span class="text-[12px] text-ink-2"><a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="0a6f646f786d636f4a687a383e246e6f">[email protected]</a></span>
|
||||
<span class="text-[12px] text-ink-2"><a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="d6b3b8b3a4b1bfb396b4a6e4e2f8b2b3">[email protected]</a></span>
|
||||
</div>
|
||||
<span class="inline-flex items-center gap-1 text-[10.5px] text-ink-3 font-mono cursor-help" style="border-bottom:1px dotted #9A958D;" title="NACE C-35 · D · E">
|
||||
<svg width="10" height="10" viewBox="0 0 12 12" fill="none"><circle cx="6" cy="6" r="5" stroke="currentColor" stroke-width="1"/><path d="M6 5.5v3M6 3.5v.5" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"/></svg>
|
||||
|
|
@ -350,7 +350,7 @@
|
|||
</div>
|
||||
<div class="text-[12px] text-ink-2 leading-[1.55] mb-3">
|
||||
<div><span class="font-mono text-ink-3">Tel.</span> +49 201 5179-5111</div>
|
||||
<div><span class="font-mono text-ink-3">Mail</span> <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="cebebcabbdbdab8ebcb9abe0ada1a3">[email protected]</a></div>
|
||||
<div><span class="font-mono text-ink-3">Mail</span> <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="bdcdcfd8ceced8fdcfcad893ded2d0">[email protected]</a></div>
|
||||
</div>
|
||||
<div class="grid grid-cols-2 gap-2">
|
||||
<button class="px-2.5 py-2 text-[12px] font-semibold border border-ink text-ink bg-white">Pressemappe</button>
|
||||
|
After Width: | Height: | Size: 2.8 MiB |
|
|
@ -415,7 +415,7 @@
|
|||
</span>
|
||||
<span class="flex items-center gap-2">
|
||||
<svg width="14" height="14" viewBox="0 0 14 14" class="text-ink-3 flex-shrink-0"><path d="M1 3h12v8H1zM1 3l6 4 6-4" stroke="currentColor" stroke-width="1.2" fill="none" /></svg>
|
||||
<a href="/cdn-cgi/l/email-protection#bfcfcddaccccdaffddd2c8d491ddcad1db91dbda" class="text-ink underline underline-offset-2"><span class="__cf_email__" data-cfemail="e6969483959583a6848b918dc884938882c88283">[email protected]</span></a>
|
||||
<a href="/cdn-cgi/l/email-protection#1e6e6c7b6d6d7b5e7c736975307c6b707a307a7b" class="text-ink underline underline-offset-2"><span class="__cf_email__" data-cfemail="79090b1c0a0a1c391b140e12571b0c171d571d1c">[email protected]</span></a>
|
||||
</span>
|
||||
<span class="flex items-center gap-2">
|
||||
<svg width="14" height="14" viewBox="0 0 14 14" class="text-ink-3 flex-shrink-0"><circle cx="7" cy="7" r="5.5" stroke="currentColor" stroke-width="1.2" fill="none" /><path d="M1.5 7h11M7 1.5c2 1.5 2 9.5 0 11M7 1.5c-2 1.5-2 9.5 0 11" stroke="currentColor" stroke-width="1" fill="none" /></svg>
|
||||
|
After Width: | Height: | Size: 2.4 MiB |
|
After Width: | Height: | Size: 2.7 MiB |
|
|
@ -165,7 +165,7 @@
|
|||
<span class="absolute left-0 top-0 bottom-0 w-[3px] bg-brand"></span>
|
||||
<div>
|
||||
<div class="eyebrow mb-2.5 text-[10.5px]" style="color:#FF8B6F;">Einreichen im Publisher-Bereich</div>
|
||||
<h3 class="font-serif m-0 text-[23px] font-semibold leading-[1.25] tracking-[-0.3px] text-ink-on-dark">Die Einreichung läuft über pressekonto.de.</h3>
|
||||
<h3 class="font-serif m-0 text-[23px] font-semibold leading-[1.25] tracking-[-0.3px] text-ink-on-dark">Die Einreichung läuft über presseportale.com.</h3>
|
||||
<p class="mt-2.5 mb-0 text-[13.5px] leading-[1.55] text-ink-on-dark-2 max-w-[540px]">Dort verwalten Sie Mitteilungen, Credits und Newsroom — einmaliges Konto, beide Portale nutzbar (businessportal24 & presseecho.de).</p>
|
||||
</div>
|
||||
<div class="flex flex-col items-end gap-2.5">
|
||||
|
|
@ -342,7 +342,7 @@
|
|||
|
||||
<p class="mt-4.5 mb-0 text-[12px] text-ink-3" style="margin-top:18px;">
|
||||
Die Veröffentlichung erfolgt über den zentralen Publisher-Bereich auf
|
||||
<a href="#" class="text-brand font-medium border-b border-brand">pressekonto.de</a>.
|
||||
<a href="#" class="text-brand font-medium border-b border-brand">presseportale.com</a>.
|
||||
Cross-Publishing nach presseecho.de ist optional verfügbar.
|
||||
</p>
|
||||
</div>
|
||||
|
|
@ -517,7 +517,7 @@
|
|||
<div class="sticky top-6 pt-2">
|
||||
<p class="font-serif m-0 text-[16px] leading-[1.55] text-ink-2">Sie finden hier keine Antwort?</p>
|
||||
<a href="#" class="mt-3.5 inline-flex items-center gap-1.5 text-[13.5px] font-medium text-brand border-b border-brand pb-0.5">Redaktion direkt anschreiben</a>
|
||||
<div class="mt-3.5 text-[12px] text-ink-3 leading-[1.55]"><a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="55273031343e213c3a3b153720263c3b302626253a2721343967617b363a38">[email protected]</a><br />Mo–Fr · 09:00–17:00 Uhr (MEZ)</div>
|
||||
<div class="mt-3.5 text-[12px] text-ink-3 leading-[1.55]"><a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="c7b5a2a3a6acb3aea8a987a5b2b4aea9a2b4b4b7a8b5b3a6abf5f3e9a4a8aa">[email protected]</a><br />Mo–Fr · 09:00–17:00 Uhr (MEZ)</div>
|
||||
</div>
|
||||
|
||||
<div style="border-top:1px solid #1C1A17;">
|
||||
|
|
@ -583,7 +583,7 @@
|
|||
Zum Publisher-Bereich
|
||||
<svg width="12" height="12" viewBox="0 0 12 12" fill="none" class="ml-0.5"><path d="M4 8L8.5 3.5M8.5 3.5H5M8.5 3.5V7" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/></svg>
|
||||
</button>
|
||||
<span class="text-[12px] text-ink-on-dark-2">Einreichung läuft über pressekonto.de · Login per Magic-Link</span>
|
||||
<span class="text-[12px] text-ink-on-dark-2">Einreichung läuft über presseportale.com · Login per Magic-Link</span>
|
||||
<a href="#" class="mt-1.5 text-[13px] text-ink-on-dark border-b pb-0.5" style="border-color:rgba(255,255,255,0.35);">Oder zuerst Beispiele ansehen →</a>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -597,7 +597,7 @@
|
|||
<div class="grid pb-7" style="grid-template-columns:1.5fr 1fr 1fr 1fr;gap:56px;border-bottom:1px solid rgba(255,255,255,0.08);">
|
||||
<div>
|
||||
<div class="font-serif text-[22px] font-semibold" style="letter-spacing:-0.4px;">businessportal<span class="text-brand">24</span></div>
|
||||
<p class="mt-3 text-[12.5px] text-ink-on-dark-2 leading-[1.6] max-w-[380px]">businessportal24 ist ein Service der Pressekonto-Gruppe. Plattform für Pressemitteilungen mittelständischer Unternehmen, Selbstständiger und PR-Agenturen im deutschsprachigen Raum.</p>
|
||||
<p class="mt-3 text-[12.5px] text-ink-on-dark-2 leading-[1.6] max-w-[380px]">businessportal24 ist ein Service der Presseportale-Gruppe. Plattform für Pressemitteilungen mittelständischer Unternehmen, Selbstständiger und PR-Agenturen im deutschsprachigen Raum.</p>
|
||||
</div>
|
||||
<div>
|
||||
<div class="eyebrow mb-3.5 text-[10px]" style="color:rgba(255,255,255,0.5);">Einreichen</div>
|
||||
|
|
@ -628,7 +628,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="mt-5.5 flex justify-between items-center flex-wrap gap-4 text-[12px] text-ink-on-dark-2" style="margin-top:22px;">
|
||||
<div>© 2026 Pressekonto-Gruppe · Alle Rechte vorbehalten</div>
|
||||
<div>© 2026 Presseportale-Gruppe · Alle Rechte vorbehalten</div>
|
||||
<div class="flex items-center gap-4">
|
||||
<span class="text-ink-on-dark-2">Für fachlich-spezifische Themen:</span>
|
||||
<a href="#" class="text-ink-on-dark border-b pb-px" style="border-color:rgba(255,255,255,0.3);">presseecho.de →</a>
|
||||
|
After Width: | Height: | Size: 2.5 MiB |
1307
dev/frontend/tailwind_v3/presseecho_startseite-tailwind.html
Normal file
BIN
dev/frontend/tailwind_v3/presseecho_startseite-tailwind.png
Normal file
|
After Width: | Height: | Size: 3.3 MiB |