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>
This commit is contained in:
parent
5d199f0130
commit
b3474a36e9
67 changed files with 1735 additions and 1521 deletions
|
|
@ -3,17 +3,15 @@
|
|||
@php
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
\Carbon\Carbon::setLocale('de');
|
||||
|
||||
$company = $release->company;
|
||||
|
||||
$categoryTranslation = $release->category?->translations?->firstWhere('locale', 'de')
|
||||
$categoryTranslation = $release->category?->translations?->firstWhere('locale', app()->getLocale())
|
||||
?? $release->category?->translations?->first();
|
||||
$categoryName = $categoryTranslation?->name;
|
||||
$categorySlug = $categoryTranslation?->slug;
|
||||
$categoryHref = $categorySlug ? route('kategorie', ['slug' => $categorySlug]) : route('web.home');
|
||||
|
||||
$parentTranslation = $release->category?->parent?->translations?->firstWhere('locale', 'de')
|
||||
$parentTranslation = $release->category?->parent?->translations?->firstWhere('locale', app()->getLocale())
|
||||
?? $release->category?->parent?->translations?->first();
|
||||
$parentName = $parentTranslation?->name;
|
||||
$parentSlug = $parentTranslation?->slug;
|
||||
|
|
@ -38,9 +36,9 @@
|
|||
|
||||
$companyName = $company?->name;
|
||||
$companyInitial = $companyName ? mb_strtoupper(mb_substr($companyName, 0, 1)) : '·';
|
||||
$companyHref = $company?->slug ? route('newsrooms').'#'.$company->slug : route('newsrooms');
|
||||
$companyHref = $company?->slug ? route('newsroom', ['slug' => $company->slug]) : route('newsrooms');
|
||||
|
||||
$countryNames = ['DE' => 'Deutschland', 'AT' => 'Österreich', 'CH' => 'Schweiz'];
|
||||
$countryNames = ['DE' => __('web.countries.de'), 'AT' => __('web.countries.at'), 'CH' => __('web.countries.ch')];
|
||||
$companyCountry = $company?->country_code ? ($countryNames[strtoupper($company->country_code)] ?? null) : null;
|
||||
|
||||
$boilerplate = filled($release->boilerplate_override) ? $release->boilerplate_override : $company?->boilerplate;
|
||||
|
|
@ -84,8 +82,8 @@
|
|||
<article>
|
||||
{{-- Breadcrumbs --}}
|
||||
<div class="max-w-layout mx-auto px-4 sm:px-6 lg:px-8 pt-7">
|
||||
<nav class="flex flex-wrap gap-2 text-[11.5px] text-ink-3 mb-2 font-mono tracking-wide" aria-label="Brotkrumen">
|
||||
<a href="{{ route('web.home') }}" class="cursor-pointer hover:text-ink transition-colors">Startseite</a>
|
||||
<nav class="flex flex-wrap gap-2 text-[11.5px] text-ink-3 mb-2 font-mono tracking-wide" aria-label="{{ __('web.detail.breadcrumbs') }}">
|
||||
<a href="{{ route('web.home') }}" class="cursor-pointer hover:text-ink transition-colors">{{ __('web.nav.home') }}</a>
|
||||
<span aria-hidden="true">/</span>
|
||||
@if ($parentName)
|
||||
<a href="{{ $parentHref }}" class="cursor-pointer hover:text-ink transition-colors">{{ $parentName }}</a>
|
||||
|
|
@ -95,7 +93,7 @@
|
|||
<a href="{{ $categoryHref }}" class="cursor-pointer text-brand hover:text-brand-deep transition-colors">{{ $categoryName }}</a>
|
||||
<span aria-hidden="true">/</span>
|
||||
@endif
|
||||
<span class="text-ink-2">Pressemitteilung</span>
|
||||
<span class="text-ink-2">{{ __('web.detail.press_release') }}</span>
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
|
|
@ -105,7 +103,7 @@
|
|||
@if ($embargoAt)
|
||||
<div class="flex items-center gap-2.5 mb-3.5 flex-wrap">
|
||||
<span class="text-[9.5px] font-bold tracking-[0.18em] uppercase text-brand px-2.5 py-[3px] border border-brand font-mono">
|
||||
● Embargo aufgehoben
|
||||
● {{ __('web.detail.embargo_lifted') }}
|
||||
</span>
|
||||
<span class="text-[11px] text-ink-3 font-mono">{{ $embargoAt->translatedFormat('j. F Y, H:i') }}</span>
|
||||
</div>
|
||||
|
|
@ -116,7 +114,7 @@
|
|||
<a href="{{ $categoryHref }}" class="bp-cat cursor-pointer hover:text-brand-deep transition-colors">{{ $categoryName }}</a>
|
||||
<span class="w-1 h-1 rounded-full bg-ink-4" aria-hidden="true"></span>
|
||||
@endif
|
||||
<span class="text-[11px] text-ink-3 italic font-serif">Für Wirtschaftsjournalisten</span>
|
||||
<span class="text-[11px] text-ink-3 italic font-serif">{{ __('web.detail.audience') }}</span>
|
||||
</div>
|
||||
|
||||
<h1 class="font-serif text-[32px] sm:text-[40px] lg:text-[48px] font-semibold m-0 mb-[22px] tracking-[-0.8px] leading-[1.1] max-w-[980px]" style="text-wrap:balance;">
|
||||
|
|
@ -139,10 +137,10 @@
|
|||
@endif
|
||||
@if ($publishedAt)
|
||||
<time datetime="{{ $publishedAt->toIso8601String() }}" class="font-mono text-[11.5px] text-ink-3">
|
||||
{{ $publishedAt->translatedFormat('j. F Y') }} · {{ $publishedAt->format('H:i') }} Uhr
|
||||
{{ $publishedAt->translatedFormat('j. F Y') }} · {{ __('web.detail.time_at', ['time' => $publishedAt->format('H:i')]) }}
|
||||
</time>
|
||||
@endif
|
||||
<span class="font-mono text-[11.5px] text-ink-3">{{ $readTime }} Min. Lesezeit · {{ number_format($wordCount, 0, ',', '.') }} Wörter</span>
|
||||
<span class="font-mono text-[11.5px] text-ink-3">{{ __('web.shared.read_time', ['minutes' => $readTime]) }} · {{ __('web.detail.words', ['count' => number_format($wordCount, 0, ',', '.')]) }}</span>
|
||||
@if ($companyCountry)
|
||||
<span class="inline-flex items-center gap-1.5 font-mono text-[11.5px] text-ink-3">
|
||||
<svg width="11" height="11" viewBox="0 0 14 14" fill="none" aria-hidden="true"><path d="M7 1a5 5 0 015 5c0 4-5 7-5 7s-5-3-5-7a5 5 0 015-5z" stroke="currentColor" stroke-width="1.3" fill="none" /><circle cx="7" cy="6" r="1.5" fill="currentColor" /></svg>
|
||||
|
|
@ -152,12 +150,12 @@
|
|||
|
||||
@if ($isRecommended)
|
||||
<span class="inline-flex items-center gap-1.5 px-2 py-[3px] text-[9.5px] font-bold tracking-[0.14em] uppercase text-brand bg-brand/[0.04] border border-brand/30 font-mono cursor-help"
|
||||
title="Diese Pressemitteilung wurde von der Redaktion empfohlen — basierend auf Quellenqualität, Verifizierungsstatus und redaktioneller Relevanz.">
|
||||
title="{{ __('web.detail.recommended_hint') }}">
|
||||
<svg width="10" height="10" viewBox="0 0 24 24" fill="none" aria-hidden="true">
|
||||
<path d="M12 2l9 4v6c0 5-3.5 9-9 10-5.5-1-9-5-9-10V6z" stroke="currentColor" stroke-width="2" fill="none" />
|
||||
<path d="M8 12l3 3 5-6" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />
|
||||
</svg>
|
||||
Redaktionsempfehlung
|
||||
{{ __('web.detail.recommended') }}
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
|
|
@ -172,13 +170,13 @@
|
|||
class="absolute inset-0 h-full w-full object-cover" loading="eager">
|
||||
@else
|
||||
<span class="relative text-[10px] font-mono tracking-wider uppercase text-white/50">
|
||||
{{ $companyName ? 'Bild · Pressefoto '.$companyName : 'Bild · Pressefoto' }} (16:9)
|
||||
{{ $companyName ? __('web.detail.image_placeholder_company', ['company' => $companyName]) : __('web.detail.image_placeholder') }} (16:9)
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
@if ($imageCaption || $imageCredit)
|
||||
<div class="text-[11.5px] text-ink-3 mt-2.5 italic max-w-[720px]">
|
||||
{{ $imageCaption }}@if ($imageCaption && $imageCredit) · @endif@if ($imageCredit)<span class="not-italic">Foto: {{ $imageCredit }}</span>@endif
|
||||
{{ $imageCaption }}@if ($imageCaption && $imageCredit) · @endif@if ($imageCredit)<span class="not-italic">{{ __('web.detail.photo') }}: {{ $imageCredit }}</span>@endif
|
||||
</div>
|
||||
@endif
|
||||
</section>
|
||||
|
|
@ -193,45 +191,20 @@
|
|||
|
||||
@if (filled($boilerplate))
|
||||
<div class="mt-9 pt-5 border-t border-bg-rule-strong max-w-[680px]">
|
||||
<div class="eyebrow muted text-[9.5px] mb-2.5">Über das Unternehmen</div>
|
||||
<div class="eyebrow muted text-[9.5px] mb-2.5">{{ __('web.detail.about_company') }}</div>
|
||||
<p class="text-[13px] leading-[1.6] text-ink-3 m-0 max-w-[620px]">{{ $boilerplate }}</p>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
{{-- Inline Ad --}}
|
||||
<div class="my-8 max-w-[680px]">
|
||||
<div class="flex items-center gap-2.5 mb-2.5">
|
||||
<span class="h-px bg-bg-rule-strong flex-1"></span>
|
||||
<span class="text-[9px] font-bold tracking-[0.22em] text-ink-on-dark-muted uppercase font-mono">Anzeige</span>
|
||||
<span class="h-px bg-bg-rule-strong flex-1"></span>
|
||||
</div>
|
||||
<a href="#" rel="sponsored nofollow" class="grid px-[22px] py-5 bg-bg-card-warm items-center gap-[22px] cursor-pointer hover:bg-bg-card-warm-hover transition-colors" style="grid-template-columns:120px 1fr;">
|
||||
<div class="aspect-square bg-white hatch-light flex items-center justify-center text-[9px] text-ink-on-dark-muted font-mono">LOGO</div>
|
||||
<div>
|
||||
<div class="text-[9.5px] font-bold tracking-[0.16em] uppercase mb-1.5 text-card-warm-cat">Partner · Branchen-Whitepaper</div>
|
||||
<h3 class="font-serif text-[18px] leading-[1.3] m-0 mb-2 font-semibold tracking-[-0.2px] text-card-warm-title">
|
||||
CO₂-Reporting nach CSRD: Was Industriebetriebe jetzt automatisieren müssen
|
||||
</h3>
|
||||
<div class="text-[12px] leading-[1.5] mb-2.5 text-card-warm-cat">Whitepaper · 32 Seiten · Praxisleitfaden für Mittelstand und Konzerne</div>
|
||||
<span class="text-[12px] font-semibold underline text-card-warm-title">Studie kostenfrei anfordern →</span>
|
||||
</div>
|
||||
</a>
|
||||
<div class="flex items-center gap-2.5 mt-2.5">
|
||||
<span class="h-px bg-bg-rule-strong flex-1"></span>
|
||||
<span class="text-[9px] font-bold tracking-[0.22em] text-ink-on-dark-muted uppercase font-mono">Ende Anzeige</span>
|
||||
<span class="h-px bg-bg-rule-strong flex-1"></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- Pressekontakt --}}
|
||||
@if ($contact)
|
||||
<div class="mt-8 px-5 sm:px-7 py-6 bg-white border border-bg-rule-strong max-w-[680px]">
|
||||
<div class="eyebrow mb-3 text-[10.5px]">Pressekontakt</div>
|
||||
<div class="eyebrow mb-3 text-[10.5px]">{{ __('web.detail.press_contact') }}</div>
|
||||
|
||||
<div class="flex gap-1.5 items-center mb-1 flex-wrap">
|
||||
<strong class="font-serif text-[19px] font-semibold tracking-[-0.2px]">{{ $contactName ?: $companyName }}</strong>
|
||||
@if ($publisherVerified)
|
||||
<span title="Verifizierter Publisher — Identität und Domain bestätigt" class="inline-flex items-center text-verify-border flex-shrink-0">
|
||||
<span title="{{ __('web.detail.verified_hint') }}" class="inline-flex items-center text-verify-border flex-shrink-0">
|
||||
<svg width="15" height="15" viewBox="0 0 24 24" fill="none" aria-hidden="true">
|
||||
<path d="M12 1l2.5 3 3.8-.4-.5 3.8L21 9l-2.6 2.5L19 15l-3.8.4L12 19l-2.5-3.6L5.7 15 5.6 11.4 3 9l2.5-1.6L4.7 4 8.5 4z" fill="currentColor" />
|
||||
<path d="M7.5 12l3 3 6-6" stroke="white" stroke-width="2.2" fill="none" stroke-linecap="round" stroke-linejoin="round" />
|
||||
|
|
@ -277,16 +250,16 @@
|
|||
|
||||
{{-- Inhalt melden (T13): sichtbar an jeder Mitteilung, nicht nur in der Sidebar --}}
|
||||
<div class="mt-8 pt-4 border-t border-bg-rule flex flex-wrap items-center gap-x-4 gap-y-1.5 text-[11.5px] text-ink-3">
|
||||
<span>Sie haben ein rechtliches Anliegen zu dieser Mitteilung?</span>
|
||||
<span>{{ __('web.detail.legal_question') }}</span>
|
||||
<a href="{{ route('legal-request.create', ['slug' => $release->slug, 'type' => 'report']) }}" class="inline-flex items-center gap-1.5 text-ink-2 underline underline-offset-2 hover:text-ink transition-colors">
|
||||
<svg width="12" height="12" viewBox="0 0 14 14" class="flex-shrink-0" aria-hidden="true"><circle cx="7" cy="7" r="5.5" stroke="currentColor" stroke-width="1.3" fill="none" /><path d="M7 4v3.5M7 9.5v.5" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" /></svg>
|
||||
Inhalt melden
|
||||
{{ __('web.detail.report_content') }}
|
||||
</a>
|
||||
<a href="{{ route('legal-request.create', ['slug' => $release->slug, 'type' => 'dsgvo']) }}" class="inline-flex items-center gap-1.5 text-ink-2 underline underline-offset-2 hover:text-ink transition-colors">
|
||||
<svg width="12" height="12" viewBox="0 0 14 14" class="flex-shrink-0" aria-hidden="true"><path d="M7 1l5 2v4c0 3-2.2 5.2-5 6-2.8-.8-5-3-5-6V3z" stroke="currentColor" stroke-width="1.3" fill="none" stroke-linejoin="round" /></svg>
|
||||
Eigene Daten entfernen
|
||||
{{ __('web.detail.remove_data') }}
|
||||
</a>
|
||||
<span class="text-ink-4">Meldungen sind kostenlos.</span>
|
||||
<span class="text-ink-4">{{ __('web.detail.reports_free') }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -295,7 +268,7 @@
|
|||
{{-- Publisher --}}
|
||||
@if ($companyName)
|
||||
<div class="p-4 bg-white border border-bg-rule-strong">
|
||||
<div class="eyebrow muted text-[9.5px] mb-3">Veröffentlicht von</div>
|
||||
<div class="eyebrow muted text-[9.5px] mb-3">{{ __('web.detail.published_by') }}</div>
|
||||
<div class="flex gap-3 items-start mb-3">
|
||||
<span class="w-11 h-11 bg-black text-white inline-flex items-center justify-center text-[20px] font-bold font-serif flex-shrink-0">{{ $companyInitial }}</span>
|
||||
<div class="min-w-0">
|
||||
|
|
@ -308,18 +281,17 @@
|
|||
|
||||
@if ($publisherVerified)
|
||||
<div class="flex items-center gap-2 px-2.5 py-2 mb-3 bg-verify-bg border border-verify-border text-verify-ink cursor-help"
|
||||
title="Identität und Domain durch {{ $brandLabel }} bestätigt">
|
||||
title="{{ __('web.detail.verified_by', ['brand' => $brandLabel]) }}">
|
||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" class="text-verify-border flex-shrink-0" aria-hidden="true">
|
||||
<path d="M12 1l2.5 3 3.8-.4-.5 3.8L21 9l-2.6 2.5L19 15l-3.8.4L12 19l-2.5-3.6L5.7 15 5.6 11.4 3 9l2.5-1.6L4.7 4 8.5 4z" fill="currentColor" />
|
||||
<path d="M7.5 12l3 3 6-6" stroke="white" stroke-width="2.2" fill="none" stroke-linecap="round" stroke-linejoin="round" />
|
||||
</svg>
|
||||
<span class="text-[11.5px] font-semibold">Verifizierter Publisher</span>
|
||||
<span class="text-[11.5px] font-semibold">{{ __('web.detail.verified_publisher') }}</span>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="pt-3 border-t border-bg-rule flex flex-col gap-2">
|
||||
<button type="button" class="px-2.5 py-2 text-[11.5px] font-semibold bg-ink text-white hover:bg-black transition-colors cursor-pointer">+ Newsroom folgen</button>
|
||||
<a href="{{ $companyHref }}" class="text-[11.5px] text-ink-2 text-center py-1.5 underline underline-offset-2 cursor-pointer hover:text-ink transition-colors">Alle Mitteilungen →</a>
|
||||
<a href="{{ $companyHref }}" class="px-2.5 py-2 text-center text-[11.5px] font-semibold bg-ink text-white hover:bg-black transition-colors cursor-pointer">{{ __('web.detail.to_newsroom') }} →</a>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
|
@ -331,7 +303,7 @@
|
|||
copied: false,
|
||||
copy() { navigator.clipboard?.writeText(this.url).then(() => { this.copied = true; setTimeout(() => this.copied = false, 2000); }); }
|
||||
}">
|
||||
<div class="eyebrow muted text-[9.5px] mb-2.5">Teilen</div>
|
||||
<div class="eyebrow muted text-[9.5px] mb-2.5">{{ __('web.detail.share') }}</div>
|
||||
<div class="grid grid-cols-2 gap-1.5">
|
||||
<a :href="`https://www.linkedin.com/sharing/share-offsite/?url=${encodeURIComponent(url)}`" target="_blank" rel="noopener" class="inline-flex items-center gap-[7px] px-2.5 py-2 text-[11.5px] font-medium bg-white border border-bg-rule-strong text-ink hover:bg-bg-elev transition-colors cursor-pointer">
|
||||
<svg width="13" height="13" viewBox="0 0 16 16" aria-hidden="true"><path d="M3 6h2.5v8H3V6zm1.25-3a1.25 1.25 0 110 2.5 1.25 1.25 0 010-2.5zM7 6h2.4v1.1c.4-.7 1.3-1.3 2.6-1.3 2.7 0 3 1.7 3 3.9V14h-2.5v-3.7c0-.9 0-2-1.3-2s-1.5 1-1.5 2V14H7V6z" fill="currentColor" /></svg>
|
||||
|
|
@ -343,11 +315,11 @@
|
|||
</a>
|
||||
<a :href="`mailto:?subject=${encodeURIComponent(title)}&body=${encodeURIComponent(url)}`" class="inline-flex items-center gap-[7px] px-2.5 py-2 text-[11.5px] font-medium bg-white border border-bg-rule-strong text-ink hover:bg-bg-elev transition-colors cursor-pointer">
|
||||
<svg width="13" height="13" viewBox="0 0 16 16" aria-hidden="true"><rect x="2" y="3" width="12" height="10" stroke="currentColor" stroke-width="1.3" fill="none" /><path d="M2 4l6 4 6-4" stroke="currentColor" stroke-width="1.3" fill="none" /></svg>
|
||||
E-Mail
|
||||
{{ __('web.detail.email') }}
|
||||
</a>
|
||||
<button type="button" @click="copy()" class="inline-flex items-center gap-[7px] px-2.5 py-2 text-[11.5px] font-medium bg-white border border-bg-rule-strong text-ink hover:bg-bg-elev transition-colors cursor-pointer">
|
||||
<svg width="13" height="13" viewBox="0 0 16 16" aria-hidden="true"><path d="M6 9l4-4M5 4h2a3 3 0 010 6h-1M11 12H9a3 3 0 010-6h1" stroke="currentColor" stroke-width="1.3" fill="none" stroke-linecap="round" /></svg>
|
||||
<span x-text="copied ? 'Kopiert!' : 'Link kopieren'">Link kopieren</span>
|
||||
<span x-text="copied ? @js(__('web.detail.copied')) : @js(__('web.detail.copy_link'))">{{ __('web.detail.copy_link') }}</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -355,7 +327,7 @@
|
|||
{{-- Schlagwörter --}}
|
||||
@if ($keywords->isNotEmpty())
|
||||
<div>
|
||||
<div class="eyebrow muted text-[9.5px] mb-2.5">Schlagwörter</div>
|
||||
<div class="eyebrow muted text-[9.5px] mb-2.5">{{ __('web.detail.keywords') }}</div>
|
||||
<div class="flex flex-wrap gap-[5px]">
|
||||
@foreach ($keywords as $keyword)
|
||||
<a href="{{ route('suche', ['q' => $keyword]) }}" class="px-2.5 py-1 text-[11px] font-medium bg-white border border-bg-rule-strong text-ink-2 hover:text-ink transition-colors cursor-pointer">{{ $keyword }}</a>
|
||||
|
|
@ -364,40 +336,26 @@
|
|||
</div>
|
||||
@endif
|
||||
|
||||
{{-- Newsletter --}}
|
||||
<div class="p-4 bg-ink text-white">
|
||||
<div class="eyebrow on-dark text-[9.5px] mb-2">Newsletter</div>
|
||||
<h4 class="font-serif text-[17px] font-semibold m-0 mb-2 leading-[1.25]">
|
||||
{{ $categoryName ?: 'Wirtschaft' }} · ab Score 80
|
||||
</h4>
|
||||
<p class="text-[11.5px] text-white/70 leading-[1.5] m-0 mb-3">
|
||||
Höchstens 2 Mails pro Woche. Nur Meldungen ab Content-Score 80.
|
||||
</p>
|
||||
<a href="#newsletter" class="block text-center w-full py-2.5 text-[12px] font-semibold bg-brand hover:bg-brand-deep text-white transition-colors cursor-pointer">Abonnieren →</a>
|
||||
</div>
|
||||
{{-- Newsletter-Box bewusst entfernt: kommt nachgelagert mit echtem
|
||||
Double-Opt-in (siehe dev/release/entwicklungsplan-release.md). --}}
|
||||
|
||||
{{-- Weiterführend --}}
|
||||
<div>
|
||||
<div class="eyebrow muted text-[9.5px] mb-2.5">Weiterführend</div>
|
||||
<div class="eyebrow muted text-[9.5px] mb-2.5">{{ __('web.detail.further') }}</div>
|
||||
<div class="flex flex-col border border-bg-rule-strong bg-white">
|
||||
<a href="#" class="flex items-center gap-2.5 px-3 py-2.5 text-[12px] text-ink-2 hover:bg-bg-elev transition-colors cursor-pointer">
|
||||
<svg width="13" height="13" viewBox="0 0 14 14" class="text-ink-3 flex-shrink-0" aria-hidden="true"><path d="M2 1h7l3 3v9H2z" stroke="currentColor" stroke-width="1.3" fill="none" /><path d="M9 1v3h3" stroke="currentColor" stroke-width="1.3" fill="none" /></svg>
|
||||
<span class="flex-1">Permalink & Zitiervorschlag</span>
|
||||
<svg width="9" height="9" viewBox="0 0 12 12" fill="none" class="text-ink-4" aria-hidden="true"><path d="M4 2l4 4-4 4" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" /></svg>
|
||||
</a>
|
||||
<a href="#" class="flex items-center gap-2.5 px-3 py-2.5 text-[12px] text-ink-2 border-t border-bg-rule hover:bg-bg-elev transition-colors cursor-pointer">
|
||||
<button type="button" onclick="window.print()" class="flex items-center gap-2.5 px-3 py-2.5 text-[12px] text-ink-2 hover:bg-bg-elev transition-colors cursor-pointer text-left">
|
||||
<svg width="13" height="13" viewBox="0 0 14 14" class="text-ink-3 flex-shrink-0" aria-hidden="true"><path d="M2 4h10v8H2zM2 4V2h10v2" stroke="currentColor" stroke-width="1.3" fill="none" /></svg>
|
||||
<span class="flex-1">Drucken & PDF</span>
|
||||
<span class="flex-1">{{ __('web.detail.print') }}</span>
|
||||
<svg width="9" height="9" viewBox="0 0 12 12" fill="none" class="text-ink-4" aria-hidden="true"><path d="M4 2l4 4-4 4" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" /></svg>
|
||||
</a>
|
||||
</button>
|
||||
<a href="{{ route('legal-request.create', ['slug' => $release->slug, 'type' => 'report']) }}" class="flex items-center gap-2.5 px-3 py-2.5 text-[12px] text-ink-2 border-t border-bg-rule hover:bg-bg-elev transition-colors cursor-pointer">
|
||||
<svg width="13" height="13" viewBox="0 0 14 14" class="text-ink-3 flex-shrink-0" aria-hidden="true"><circle cx="7" cy="7" r="5.5" stroke="currentColor" stroke-width="1.3" fill="none" /><path d="M7 4v3.5M7 9.5v.5" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" /></svg>
|
||||
<span class="flex-1">Pressemitteilung melden</span>
|
||||
<span class="flex-1">{{ __('web.detail.report_release') }}</span>
|
||||
<svg width="9" height="9" viewBox="0 0 12 12" fill="none" class="text-ink-4" aria-hidden="true"><path d="M4 2l4 4-4 4" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" /></svg>
|
||||
</a>
|
||||
<a href="{{ route('legal-request.create', ['slug' => $release->slug, 'type' => 'dsgvo']) }}" class="flex items-center gap-2.5 px-3 py-2.5 text-[12px] text-ink-2 border-t border-bg-rule hover:bg-bg-elev transition-colors cursor-pointer">
|
||||
<svg width="13" height="13" viewBox="0 0 14 14" class="text-ink-3 flex-shrink-0" aria-hidden="true"><path d="M7 1l5 2v4c0 3-2.2 5.2-5 6-2.8-.8-5-3-5-6V3z" stroke="currentColor" stroke-width="1.3" fill="none" stroke-linejoin="round" /></svg>
|
||||
<span class="flex-1">Datenschutz & Persönlichkeitsrecht</span>
|
||||
<span class="flex-1">{{ __('web.detail.privacy_rights') }}</span>
|
||||
<svg width="9" height="9" viewBox="0 0 12 12" fill="none" class="text-ink-4" aria-hidden="true"><path d="M4 2l4 4-4 4" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" /></svg>
|
||||
</a>
|
||||
</div>
|
||||
|
|
@ -411,26 +369,26 @@
|
|||
<div class="grid grid-cols-1 md:grid-cols-2 gap-10">
|
||||
@if ($companyReleases->isNotEmpty())
|
||||
<div>
|
||||
<h3 class="font-serif text-[20px] font-semibold m-0 mb-1 tracking-[-0.2px]">Mehr von {{ $companyName }}</h3>
|
||||
<div class="text-[11.5px] text-ink-3 mb-3.5">Aktuelle Mitteilungen aus diesem Newsroom</div>
|
||||
<h3 class="font-serif text-[20px] font-semibold m-0 mb-1 tracking-[-0.2px]">{{ __('web.detail.more_from', ['company' => $companyName]) }}</h3>
|
||||
<div class="text-[11.5px] text-ink-3 mb-3.5">{{ __('web.detail.more_from_sub') }}</div>
|
||||
<hr class="rule-strong mb-1" />
|
||||
@foreach ($companyReleases as $companyRelease)
|
||||
<x-web.feed-item :release="$companyRelease" />
|
||||
@endforeach
|
||||
<a href="{{ $companyHref }}" class="block mt-3.5 text-[12.5px] font-semibold text-brand hover:text-brand-deep transition-colors cursor-pointer">Alle Mitteilungen von {{ $companyName }} →</a>
|
||||
<a href="{{ $companyHref }}" class="block mt-3.5 text-[12.5px] font-semibold text-brand hover:text-brand-deep transition-colors cursor-pointer">{{ __('web.detail.all_from', ['company' => $companyName]) }} →</a>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if ($relatedReleases->isNotEmpty())
|
||||
<div>
|
||||
<h3 class="font-serif text-[20px] font-semibold m-0 mb-1 tracking-[-0.2px]">Verwandte Meldungen</h3>
|
||||
<div class="text-[11.5px] text-ink-3 mb-3.5">Reaktionen, ähnliche Themen, Branchenkontext</div>
|
||||
<h3 class="font-serif text-[20px] font-semibold m-0 mb-1 tracking-[-0.2px]">{{ __('web.detail.related') }}</h3>
|
||||
<div class="text-[11.5px] text-ink-3 mb-3.5">{{ __('web.detail.related_sub') }}</div>
|
||||
<hr class="rule-strong mb-1" />
|
||||
@foreach ($relatedReleases as $relatedRelease)
|
||||
<x-web.feed-item :release="$relatedRelease" />
|
||||
@endforeach
|
||||
@if ($categoryName)
|
||||
<a href="{{ $categoryHref }}" class="block mt-3.5 text-[12.5px] font-semibold text-brand hover:text-brand-deep transition-colors cursor-pointer">Alle Meldungen aus {{ $categoryName }} →</a>
|
||||
<a href="{{ $categoryHref }}" class="block mt-3.5 text-[12.5px] font-semibold text-brand hover:text-brand-deep transition-colors cursor-pointer">{{ __('web.detail.all_from_category', ['category' => $categoryName]) }} →</a>
|
||||
@endif
|
||||
</div>
|
||||
@endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue