- App\Support\ImageCredit: Foto/Quelle-Zeile, KI-Hinweis mit Herkunft, Verantwortlich-Zeile nur mit Protokoll, sichere Links; PDF-Zeilen mit Bestätigungskennung - Artikelseite: Overlay (eigenes i-Zeichen, Alpine ohne Plugin, Bottom-Sheet auf Mobil) mit Nachweis, Lizenz, Quelle, KI-Hinweis, Verantwortlich-Zeile, „Bild melden" - Richtlinien 0.2: Prüfung als automatisiert beschrieben, Abschnitt „Bilder" (Decision-Update 3.5); Taglines, Suche, Newsrooms, Startseiten-CTA, Mails ohne „qualitätsgeprüft" - Cache-Invalidierung bei Bildwechsel an veröffentlichten Meldungen; PHPStan-Baseline für das Resource bereinigt Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
94 lines
3.8 KiB
PHP
94 lines
3.8 KiB
PHP
@extends('web.layouts.web-master')
|
||
|
||
@php
|
||
use App\Support\StructuredData;
|
||
|
||
$brand = config('domains.domains.presseecho.brand', []);
|
||
|
||
// SEO: WebSite-Markup mit Sitelinks-Searchbox (SearchAction auf /suche).
|
||
$portalBase = StructuredData::portalBase($domainUrl ?? null);
|
||
$brandFullName = ($brand['name'] ?? 'presse').($brand['accent'] ?? 'echo');
|
||
|
||
$jsonLd = [
|
||
'@context' => 'https://schema.org',
|
||
'@graph' => [
|
||
[
|
||
'@type' => 'WebSite',
|
||
'name' => $brandFullName,
|
||
'url' => $portalBase.'/',
|
||
'inLanguage' => app()->getLocale(),
|
||
'potentialAction' => [
|
||
'@type' => 'SearchAction',
|
||
'target' => [
|
||
'@type' => 'EntryPoint',
|
||
'urlTemplate' => $portalBase.'/'.app()->getLocale().'/suche?q={search_term_string}',
|
||
],
|
||
'query-input' => 'required name=search_term_string',
|
||
],
|
||
],
|
||
StructuredData::publisher($portalBase),
|
||
],
|
||
];
|
||
@endphp
|
||
|
||
@section('structured_data')
|
||
<x-web.structured-data :data="$jsonLd" />
|
||
@endsection
|
||
|
||
{{-- DE-Meta kommt brand-spezifisch aus config/domains.php, EN aus den Übersetzungsdateien. --}}
|
||
@section('title', app()->getLocale() === 'de'
|
||
? ($brand['meta_title'] ?? 'Aktuelle Pressemitteilungen aus Wirtschaft & Industrie – presseecho')
|
||
: __('web.meta.home_title', ['brand' => ($brand['name'] ?? 'presseecho').($brand['accent'] ?? '')]))
|
||
@section('meta_description', app()->getLocale() === 'de'
|
||
? ($brand['meta_description'] ?? 'Pressemitteilungen aus Wirtschaft und Industrie im DACH-Raum — automatisiert geprüft, strukturiert distribuiert.')
|
||
: __('web.meta.home_description'))
|
||
|
||
@section('hreflang')
|
||
<link rel="alternate" hreflang="de" href="{{ url('/de') }}">
|
||
<link rel="alternate" hreflang="en" href="{{ url('/en') }}">
|
||
<link rel="alternate" hreflang="x-default" href="{{ url('/de') }}">
|
||
@endsection
|
||
|
||
@section('feed_links')
|
||
<link rel="alternate" type="application/rss+xml" title="{{ __('web.rss.portal_link_title', ['brand' => ($brand['name'] ?? 'presseecho').($brand['accent'] ?? '')]) }}" href="{{ rtrim($domainUrl ?? config('app.url'), '/') }}/{{ app()->getLocale() }}/feed">
|
||
@endsection
|
||
|
||
@section('content')
|
||
<x-web.site-header />
|
||
|
||
<main class="bg-bg text-ink">
|
||
<x-web.focus-hero
|
||
:lead-release="$leadRelease ?? null"
|
||
:side-releases="$sideReleases ?? []"
|
||
:boosted-ids="$boostedIds ?? []" />
|
||
|
||
<section class="max-w-layout mx-auto px-4 sm:px-6 lg:px-8 mt-16">
|
||
<div class="grid gap-9 grid-cols-1 lg:grid-cols-[1.7fr_1fr]">
|
||
<livewire:web.press-release-feed :portal="\App\Enums\Portal::Presseecho->value" :language="app()->getLocale()" />
|
||
|
||
<aside class="flex flex-col gap-9">
|
||
<x-web.most-read :releases="$mostReadReleases ?? []" />
|
||
<x-web.publisher-cta />
|
||
<x-web.active-newsrooms :companies="$activeNewsrooms ?? []" />
|
||
</aside>
|
||
</div>
|
||
</section>
|
||
|
||
<x-web.industry-spotlight
|
||
:industry="$spotlight['industry'] ?? null"
|
||
:stats="$spotlight['stats'] ?? null"
|
||
:releases="$spotlight['releases'] ?? []" />
|
||
|
||
<x-web.industry-index :industries="($industryIndex ?? collect())->isNotEmpty() ? $industryIndex->toArray() : null" />
|
||
|
||
<x-web.pricing-teaser />
|
||
|
||
{{-- Newsletter-Sektion bewusst entfernt (Double-Opt-in nachgelagert,
|
||
siehe dev/release/entwicklungsplan-release.md) — stattdessen Veröffentlichen-CTA. --}}
|
||
<x-web.publish-band />
|
||
|
||
<x-web.quality-summary :stats="$homeStats ?? []" />
|
||
</main>
|
||
|
||
<x-web.site-footer />
|
||
@endsection
|