Der Editor packt eingefügten Text in <p>; Felder wie die FAQ-Antwort gibt die Website als Text aus, die Tags waren sichtbar. Beim Speichern entfernt unwrapParagraphs() die Absätze (ein Absatz ohne <p>, mehrere mit <br><br>, Blockinhalte unverändert). cms_inline() gibt die Felder als bereinigtes Inline-HTML aus – auch schon gespeicherte Texte mit <p> erscheinen sauber, Fett und Hervorhebung werden dargestellt. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
43 lines
2.6 KiB
PHP
43 lines
2.6 KiB
PHP
<section id="engagement" class="section-padding {{ $bg }}">
|
|
<div class="container-padding">
|
|
<div class="text-center mb-12 slide-up delay-300">
|
|
<h2 class="text-section-title">{!! $content['title'] ?? '' !!}</h2>
|
|
@if (!empty($content['subtitle']))
|
|
<p class="text-large text-muted-foreground mt-4 max-w-2xl mx-auto">{{ $content['subtitle'] }}</p>
|
|
@endif
|
|
</div>
|
|
|
|
{{-- Kachel je Verein: Logo oben auf Weiß (die Logos sind für weißen Grund gemacht),
|
|
darunter ein kurzer Text. Ist eine Website (url) gepflegt, öffnet die Kachel sie in
|
|
einem neuen Tab (08.10.2026). --}}
|
|
<div class="grid sm:grid-cols-2 lg:grid-cols-4 gap-6 max-w-6xl mx-auto slide-up delay-400">
|
|
@foreach ($content['logos'] ?? [] as $index => $logo)
|
|
@php $url = preg_match('#^https?://#i', (string) ($logo['url'] ?? '')) ? $logo['url'] : null; @endphp
|
|
<{{ $url ? 'a' : 'div' }} wire:key="sponsor-{{ $index }}" data-sponsor
|
|
@if ($url) href="{{ $url }}" target="_blank" rel="noopener" @endif
|
|
class="card-elevated rounded-2xl overflow-hidden flex flex-col">
|
|
{{-- Feste Bühnenhöhe und Deckel in beide Richtungen: die Logos haben sehr
|
|
unterschiedliche Seitenverhältnisse (1:1 bis 3,3:1) und wirken sonst
|
|
unterschiedlich groß. --}}
|
|
<div class="bg-white flex items-center justify-center h-36 px-8">
|
|
<img src="{{ theme_image_url($logo['image']) }}" alt="{{ $logo['name'] ?? '' }}"
|
|
loading="lazy" class="max-h-20 max-w-[85%] w-auto object-contain" />
|
|
</div>
|
|
|
|
<div class="p-6 border-t border-border/60 grow">
|
|
<h3 class="font-medium inline-flex items-center gap-1.5">
|
|
{{ $logo['name'] ?? '' }}
|
|
@if ($url)
|
|
@svg('heroicon-o-arrow-top-right-on-square', 'w-4 h-4 text-secondary shrink-0')
|
|
<span class="sr-only">{{ __('ui.opens_new_tab') }}</span>
|
|
@endif
|
|
</h3>
|
|
@if (!empty($logo['text']))
|
|
<p class="text-sm text-muted-foreground leading-relaxed mt-2">{!! cms_inline($logo['text'] ?? '') !!}</p>
|
|
@endif
|
|
</div>
|
|
</{{ $url ? 'a' : 'div' }}>
|
|
@endforeach
|
|
</div>
|
|
</div>
|
|
</section>
|