@extends('web.layouts.web-master') @php use App\Support\StructuredData; use Illuminate\Support\Str; \Carbon\Carbon::setLocale(app()->getLocale()); $brandConfig = config('domains.domains.'.config('app.theme').'.brand', []); $brandName = $brandConfig['name'] ?? 'businessportal'; $brandAccent = $brandConfig['accent'] ?? '24'; $fmt = fn ($value) => number_format((int) $value, 0, ',', '.'); $palette = ['#0098A6', '#21A038', '#0018A8', '#1E1E1E', '#E20074', '#003781', '#C84A1E', '#5A6E2F']; $logoUrl = $company->logoUrl(); $initial = mb_strtoupper(mb_substr((string) $company->name, 0, 1)); $color = $palette[crc32((string) $company->id) % count($palette)]; $boilerplate = filled($company->boilerplate) ? trim((string) Str::of(strip_tags((string) $company->boilerplate))->squish()) : null; $websiteHost = filled($company->website) ? preg_replace('#^https?://(www\.)?#', '', rtrim((string) $company->website, '/')) : null; $leadImage = $leadRelease?->images->first(); $leadImageUrl = $leadImage?->variantUrl('detail') ?? $leadImage?->variantUrl('card') ?? $leadImage?->url(); $leadPlaceholderUrl = $leadImageUrl ? null : $leadRelease?->chosenPlaceholderUrl(); $leadCatName = $leadRelease?->localizedCategoryName(); $leadLead = $leadRelease ? (filled($leadRelease->subtitle) ? $leadRelease->subtitle : $leadRelease->teaserText(220)) : null; $leadReadTime = $leadRelease?->readTimeMinutes() ?? 1; // SEO: Der Newsroom ist die kanonische Firmenseite im Portal — // Organization-Markup verknüpft PMs (author) mit diesem Profil. // Portal-Basis wie beim Canonical im Layout (unabhängig von forceRootUrl). $newsroomUrl = StructuredData::newsroomUrl(StructuredData::portalBase($domainUrl ?? null), $company->slug); // RSS-Feed des Newsrooms (Roadmap 3.1) — Adresse aus der Portal-Basis. $newsroomFeedUrl = StructuredData::portalBase($domainUrl ?? null).'/'.app()->getLocale().'/newsroom/'.$company->slug.'/feed'; $portalFeedUrl = StructuredData::portalBase($domainUrl ?? null).'/'.app()->getLocale().'/feed'; $jsonLd = [ '@context' => 'https://schema.org', '@type' => 'Organization', '@id' => StructuredData::newsroomId($newsroomUrl), 'name' => $company->name, 'url' => $newsroomUrl, ...($company->websiteUrl() ? ['sameAs' => [$company->websiteUrl()]] : []), ...($logoUrl ? ['logo' => $logoUrl] : []), ...($boilerplate ? ['description' => Str::limit($boilerplate, 300)] : []), ]; @endphp @section('title', $company->name.' – Newsroom · '.$brandName.$brandAccent) @section('meta_description', Str::limit($boilerplate ?? __('web.newsroom_page.meta_description', ['company' => $company->name]), 155)) @section('og_type', 'profile') @section('hreflang') @endsection @section('feed_links') @endsection @section('structured_data') @endsection @section('content')
{{-- Breadcrumb --}}
{{ __('web.nav.home') }} Newsrooms {{ $company->name }}
{{-- Masthead --}}
{{-- Firmenprofil --}}
@if ($logoUrl) {{ $company->name }} @else
{{ $initial }}
@endif

{{ $company->name }}

@if ($websiteHost) {{ $websiteHost }} @endif {{ __('web.newsroom_page.recent_stat', ['count' => $fmt($newsroomStats['recent'] ?? 0)]) }} @if (! empty($newsroomStats['sinceYear'])) {{ __('web.newsroom_page.since', ['year' => $newsroomStats['sinceYear']]) }} @endif {{ __('web.newsroom_page.feed_link') }}
@if ($boilerplate)

{{ Str::limit($boilerplate, 360) }}

@endif {{-- Verwaltungszugang (Roadmap 1b.4): ein Hinweis, kein Angebot. Der Zugang ist kostenlos und führt zur Firmen-E-Mail. --}}

{{ __('web.newsroom_page.manage_hint', ['company' => $company->name]) }} {{ __('web.newsroom_page.manage_link') }}

@if ($categories->isNotEmpty())
{{ __('web.newsroom_page.industries') }} @foreach ($categories as $cat) {{ $cat['name'] }} {{ $fmt($cat['count']) }} @endforeach
@endif
{{-- Stat strip --}}
{{ __('web.category.stat_today') }}
{{ $fmt($newsroomStats['today'] ?? 0) }}
{{ __('web.spotlight.stat_window_sub', ['date' => $referenceNow->translatedFormat('j. M Y')]) }}
{{ __('web.newsroom_page.last_30_days') }}
{{ $fmt($newsroomStats['recent'] ?? 0) }}
{{ __('web.newsroom_page.published_releases') }}
{{ __('web.spotlight.stat_archive') }}
{{ $fmt($newsroomStats['total'] ?? 0) }}
{{ __('web.spotlight.stat_archive_sub') }}
{{ __('web.newsroom_page.total_hits') }}
{{ $fmt($newsroomStats['totalHits'] ?? 0) }}
{{ __('web.newsroom_page.total_hits_sub') }}
@if ($leadRelease) {{-- Top-Meldung --}}
{{-- Kein hatch-dark: dessen background-image würde den bg-hero-grad-Verlauf überschreiben. Text im Flow (min-h + flex), damit lange Titel auf Mobile nicht geclippt werden. --}}
@if ($leadImageUrl) {{ $leadRelease->title }} @elseif ($leadPlaceholderUrl) @else @endif
{{ __('web.newsroom_page.latest') }}
@if ($leadCatName)
{{ $leadCatName }}
@endif

{{ $leadRelease->title }}

@if ($leadLead)

{{ $leadLead }}

@endif
@if ($leadRelease->published_at) {{ $leadRelease->published_at->translatedFormat('d.m.Y · H:i') }} @endif {{ __('web.shared.read_time', ['minutes' => $leadReadTime]) }}
@endif {{-- Meldungen + Sidebar --}}

{{ __('web.category.all_releases') }} · {{ $fmt($newsroomStats['total'] ?? 0) }}


@forelse ($releases as $release) @empty

{{ __('web.newsroom_page.empty') }}

@endforelse
@endsection