<?php

declare(strict_types=1);

/**
 * Sponsoren/Partner-Logogrid. Props:
 *   $intro array{title, text, cta?, only?} (aus home.json bzw. dem
 *          partner-Block einer Veranstaltung)
 *   $anchor string (optional, Default 'partner') — Sektions-ID
 *   Logos kommen aus data/partners.json (Single Source of Truth).
 *
 * only: Liste von Partnernamen (exakt wie in partners.json) — für Seiten, die
 * nur einen Teil der Partner zeigen, etwa die Unterstützer eines einzelnen
 * Fests. Fehlt only, stehen alle da (Verhalten der Startseite). Passt kein
 * Name (Tippfehler, umbenannter Partner), stehen bewusst wieder ALLE da statt
 * einer leeren Logo-Wand.
 */
$anchor = $anchor ?? 'partner';
$partners = json_load('partners')['partners'] ?? [];

if (!empty($intro['only'])) {
    $auswahl = array_values(array_filter(
        $partners,
        static fn (array $p): bool => in_array($p['name'] ?? '', $intro['only'], true)
    ));
    if ($auswahl !== []) {
        $partners = $auswahl;
    }
}
?>
        <section class="section partners" id="<?= e($anchor) ?>">
            <div class="container">
                <h2><?= e($intro['title']) ?></h2>
                <p class="partners__intro text-muted"><?= e($intro['text']) ?></p>
                <ul class="partners__grid">
<?php foreach ($partners as $partner): ?>
                    <li class="partners__item">
<?php if (!empty($partner['url'])): ?>
                        <a href="<?= e($partner['url']) ?>" rel="noopener">
                            <img src="<?= e(asset($partner['logo'])) ?>" alt="<?= e($partner['name']) ?>"<?= img_intrinsic_attrs($partner['logo']) ?> loading="lazy" decoding="async">
                        </a>
<?php else: ?>
                        <img src="<?= e(asset($partner['logo'])) ?>" alt="<?= e($partner['name']) ?>"<?= img_intrinsic_attrs($partner['logo']) ?> loading="lazy" decoding="async">
<?php endif; ?>
                    </li>
<?php endforeach; ?>
                </ul>
<?php if (!empty($intro['cta'])): ?>
                <p><?php component('cta', ['cta' => $intro['cta']]); ?></p>
<?php endif; ?>
            </div>
        </section>
