presseportale/resources/views/components/emails/layout.blade.php
Kevin Adametz bfad13af7d Spoke-Frontend-Audit: Fake-Inhalte raus, Newsletter-Rueckbau, echte Boersendaten, EN-Lokalisierung
Frontend-Umbau (Kevin, 06.07.2026), Ergebnis des businessportal24-Audits:

- Fake-Anzeigen und Mock-/Fallback-Daten entfernt (focus-ad, feed-ad,
  highlight-card, press-release-card, featured-releases, press-releases-grid);
  Sektionen rendern nur noch mit echten Daten oder gar nicht
- Newsletter-Strip und Newsletter-Box zurueckgebaut (Feature nachgelagert,
  vor Reaktivierung DOI-Flow noetig)
- Echte Boersendaten: MarketDataService (Yahoo-Finance-Quotes, config/market.php,
  Cache) + market:refresh alle 15 Min. im Scheduler; live-ticker blendet sich
  ohne Daten aus
- EN-Lokalisierung der Kern-Seiten via lang/de/web.php + lang/en/web.php;
  Carbon-Locale folgt app()->getLocale()
- Web-Tests auf den neuen Frontend-Stand nachgezogen (Suite: 993 gruen)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 13:36:23 +00:00

106 lines
6.1 KiB
PHP

@props([
'title' => null,
'preheader' => null,
])
@php
/**
* Zentrales CI-Layout für alle System-E-Mails (Auth, Pressemitteilungen,
* Kündigung/Widerruf, Kontakt). Absender-Marke ist immer pressekonto —
* der gemeinsame Publisher · Hub der Portale presseecho und
* businessportal24. Header und Footer erklären diese Zugehörigkeit,
* damit Empfänger die Mail sofort einordnen können.
*
* E-Mail-tauglich gebaut: Tabellen-Layout, Inline-Styles für alles
* Layout-Kritische, ergänzende Klassen im <style>-Block (werden von
* Gmail/Outlook.com/Apple Mail unterstützt; ohne sie bleibt die Mail
* trotzdem lesbar).
*/
$brand = config('domains.domains.pressekonto.brand', []);
$taglineShort = $brand['tagline_short'] ?? 'Publisher · Hub';
$footerLegal = str_replace(':year', (string) now()->year, $brand['footer_legal'] ?? '© '.now()->year.' pressekonto · Alle Rechte vorbehalten');
$presseechoUrl = config('domains.domain_presseecho_url');
$businessportalUrl = config('domains.domain_businessportal_url');
$fontStack = "'Inter Tight', 'Segoe UI', Arial, Helvetica, sans-serif";
@endphp
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="color-scheme" content="light">
<title>{{ $title }}</title>
<style>
.email-body p { margin: 0 0 14px; }
.email-body .title { font-size: 17px; font-weight: bold; color: #1A2540; margin: 18px 0; padding-left: 14px; border-left: 3px solid #B07A3A; }
.email-body .meta { background: #f6f4ef; border-left: 3px solid #1A2540; padding: 14px 18px; margin: 18px 0; }
.email-body .meta-danger { background: #fdf2f0; border-left: 3px solid #b3401f; padding: 14px 18px; margin: 18px 0; }
.email-body .meta dt, .email-body .meta-danger dt { font-weight: bold; color: #1A2540; font-size: 12px; text-transform: uppercase; letter-spacing: 0.06em; }
.email-body .meta dd, .email-body .meta-danger dd { margin: 2px 0 10px; }
.email-body .message { white-space: pre-line; background: #f6f4ef; border: 1px solid #e8e4da; padding: 16px 18px; margin: 18px 0; }
.email-body .note { font-size: 12.5px; color: #6b7280; border-top: 1px solid #e8e4da; padding-top: 14px; margin-top: 26px; }
.email-body .note p { margin: 0 0 8px; }
.email-body a { color: #1A2540; }
</style>
</head>
<body style="margin: 0; padding: 0; background-color: #e8e4da;">
@if ($preheader)
{{-- Vorschautext im Posteingang; im Mail-Body unsichtbar. --}}
<div style="display: none; max-height: 0; overflow: hidden; mso-hide: all;">{{ $preheader }}</div>
@endif
<table role="presentation" width="100%" border="0" cellpadding="0" cellspacing="0" style="background-color: #e8e4da;">
<tr>
<td align="center" style="padding: 32px 16px;">
<table role="presentation" border="0" cellpadding="0" cellspacing="0" style="width: 100%; max-width: 600px;">
{{-- Bernstein-Akzentstreifen (CI: 3px-Streifen des Hubs) --}}
<tr>
<td style="height: 3px; background-color: #B07A3A; font-size: 0; line-height: 0;">&nbsp;</td>
</tr>
{{-- Header: Wortmarke + Publisher · Hub in Hub-Blau --}}
<tr>
<td style="background-color: #1A2540; padding: 26px 36px;">
<span style="font-family: {{ $fontStack }}; font-size: 22px; font-weight: bold; letter-spacing: -0.4px; line-height: 1;"><span style="color: #ffffff;">{{ $brand['name'] ?? 'presse' }}</span><span style="color: #B07A3A;">{{ $brand['accent'] ?? 'konto' }}</span></span>
<div style="font-family: {{ $fontStack }}; font-size: 10px; font-weight: bold; letter-spacing: 0.22em; text-transform: uppercase; color: rgba(255, 255, 255, 0.65); margin-top: 8px;">
{{ $taglineShort }}
</div>
</td>
</tr>
{{-- Inhalt --}}
<tr>
<td class="email-body" style="background-color: #ffffff; padding: 32px 36px 28px; font-family: {{ $fontStack }}; font-size: 14.5px; line-height: 1.65; color: #2a3038;">
{{ $slot }}
</td>
</tr>
{{-- Brand-Familie: Zugehörigkeit von presseecho + businessportal24 --}}
<tr>
<td style="background-color: #ffffff; border-top: 1px solid #e8e4da; padding: 20px 36px 24px; font-family: {{ $fontStack }}; font-size: 12px; line-height: 1.7; color: #6b7280;">
<span style="font-weight: bold; color: #1A2540;">presse<span style="color: #B07A3A;">konto</span></span>
ist der gemeinsame Publisher&nbsp;·&nbsp;Hub für
<a href="{{ $presseechoUrl }}" style="font-weight: bold; text-decoration: none;"><span style="color: #1B2417;">presse</span><span style="color: #345636;">echo</span></a>
und
<a href="{{ $businessportalUrl }}" style="font-weight: bold; text-decoration: none;"><span style="color: #232A33;">businessportal</span><span style="color: #C84A1E;">24</span></a>
— ein Konto, qualitätsgeprüft, auf beiden Portalen veröffentlichen.
</td>
</tr>
</table>
{{-- Rechtliches unterhalb der Karte --}}
<table role="presentation" border="0" cellpadding="0" cellspacing="0" style="width: 100%; max-width: 600px;">
<tr>
<td align="center" style="padding: 18px 8px 6px; font-family: {{ $fontStack }}; font-size: 11.5px; color: #8a8f96;">
{{ $footerLegal }}
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>