legal/web: Zustimmungsgate je Dokumentversion (aus bis AGB 0.7), OG-Variante mit eingebranntem Bildnachweis, Nachweis in Teasern (Bildkennzeichnung Blöcke G und H)
- legal_document_acceptances (insert-only), LegalAcceptanceGate, Pflicht-Schalter im Einreichungs-Modal über den gemeinsamen Trait; API: GET/POST /api/v1/legal/acceptances, submit antwortet 428 mit den geforderten Fassungen; LEGAL_ACCEPTANCE_GATE - ImageService: og-Variante (1200×630) mit halbtransparentem Balken und Inter SemiBold, regenerateOgVariant() für Korrekturen und Bestand; Fokuspunkt/Letterbox getestet - Uploader brennt den Nachweis beim Upload ein, ImageCorrectionService baut die OG-Variante nach einer Korrektur neu; Artikelseite nutzt og für og:image - Teaser: Nachweis in alt/title (Feed, Hero, Kategorie, Newsroom), Unterschrift am Hero-Bild; PressRelease::cardImageCredit() Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
parent
b5b70416f2
commit
075d0d931f
27 changed files with 866 additions and 15 deletions
|
|
@ -171,7 +171,13 @@
|
|||
Text im Flow (min-h + flex), damit lange Titel auf Mobile nicht geclippt werden. --}}
|
||||
<div class="relative overflow-hidden bg-hero-grad min-h-[240px] sm:min-h-[300px] lg:min-h-[360px] flex flex-col justify-end">
|
||||
@if ($leadImageUrl)
|
||||
<img src="{{ $leadImageUrl }}" alt="{{ $leadRelease->title }}" class="absolute inset-0 w-full h-full object-cover" loading="lazy">
|
||||
@php
|
||||
$leadImageCredit = $leadRelease->cardImageCredit();
|
||||
@endphp
|
||||
<img src="{{ $leadImageUrl }}" alt="{{ $leadImageCredit ? $leadRelease->title.' · '.$leadImageCredit : $leadRelease->title }}" @if ($leadImageCredit) title="{{ $leadImageCredit }}" @endif class="absolute inset-0 w-full h-full object-cover" loading="lazy">
|
||||
@if ($leadImageCredit)
|
||||
<span class="absolute top-2 right-3 z-10 text-[10.5px] text-white/85 bg-black/35 px-1.5 py-0.5" data-image-credit-teaser>{{ $leadImageCredit }}</span>
|
||||
@endif
|
||||
@elseif ($leadPlaceholderUrl)
|
||||
<img src="{{ $leadPlaceholderUrl }}" alt="" aria-hidden="true" class="absolute inset-0 w-full h-full object-cover" loading="lazy">
|
||||
@else
|
||||
|
|
|
|||
|
|
@ -192,7 +192,13 @@
|
|||
Text im Flow (min-h + flex), damit lange Titel auf Mobile nicht geclippt werden. --}}
|
||||
<div class="relative overflow-hidden bg-hero-grad min-h-[220px] sm:min-h-[280px] lg:min-h-[340px] flex flex-col justify-end">
|
||||
@if ($leadImageUrl)
|
||||
<img src="{{ $leadImageUrl }}" alt="{{ $leadRelease->title }}" class="absolute inset-0 w-full h-full object-cover" loading="lazy">
|
||||
@php
|
||||
$leadImageCredit = $leadRelease->cardImageCredit();
|
||||
@endphp
|
||||
<img src="{{ $leadImageUrl }}" alt="{{ $leadImageCredit ? $leadRelease->title.' · '.$leadImageCredit : $leadRelease->title }}" @if ($leadImageCredit) title="{{ $leadImageCredit }}" @endif class="absolute inset-0 w-full h-full object-cover" loading="lazy">
|
||||
@if ($leadImageCredit)
|
||||
<span class="absolute top-2 right-3 z-10 text-[10.5px] text-white/85 bg-black/35 px-1.5 py-0.5" data-image-credit-teaser>{{ $leadImageCredit }}</span>
|
||||
@endif
|
||||
@elseif ($leadPlaceholderUrl)
|
||||
<img src="{{ $leadPlaceholderUrl }}" alt="" aria-hidden="true" class="absolute inset-0 w-full h-full object-cover" loading="lazy">
|
||||
@else
|
||||
|
|
|
|||
|
|
@ -169,7 +169,7 @@
|
|||
@section('meta_description', filled($lead) ? $lead : $teaser)
|
||||
@section('og_type', 'article')
|
||||
@if ($imageUrl)
|
||||
@section('og_image', $imageUrl)
|
||||
@section('og_image', $image?->variantUrl('og', $signMedia) ?? $imageUrl)
|
||||
@endif
|
||||
@if ($isPreview)
|
||||
@section('robots', 'noindex,nofollow')
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue