45 lines
2.3 KiB
PHP
45 lines
2.3 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
/** Redaktioneller Lesetipp. Text/Quelle: Chat-Pflege; Foto/QR: add-Skript. */
|
|
$beitrag = $issue['beitrag'] ?? null;
|
|
if (!is_array($beitrag)) {
|
|
return;
|
|
}
|
|
$sourceUrl = (string) ($beitrag['source_url'] ?? '');
|
|
$validUrl = filter_var($sourceUrl, FILTER_VALIDATE_URL)
|
|
&& parse_url($sourceUrl, PHP_URL_SCHEME) === 'https';
|
|
$qrPath = 'img/stadionzeitung/' . (string) ($issue['slug'] ?? '') . '/qr-beitrag.png';
|
|
?>
|
|
<div class="stadionzeitung-beitrag">
|
|
<header class="stadionzeitung-page__head">
|
|
<p class="stadionzeitung-page__kicker"><?= e((string) ($beitrag['kicker'] ?? 'Lesetipp')) ?></p>
|
|
<h2 class="stadionzeitung-page__heading"><?= e((string) ($beitrag['heading'] ?? '')) ?></h2>
|
|
</header>
|
|
<span class="stadionzeitung-page__rule" aria-hidden="true"></span>
|
|
<figure class="stadionzeitung-beitrag__figure">
|
|
<?php component('img', ['image' => $beitrag['image'] ?? [], 'sizes' => '(min-width: 520px) 430px, 90vw', 'class' => 'stadionzeitung-beitrag__foto', 'eager' => $eager ?? false]); ?>
|
|
<figcaption class="stadionzeitung-rueckblick__credit"><?= e((string) ($beitrag['image_credit'] ?? '')) ?></figcaption>
|
|
</figure>
|
|
<?php foreach ($beitrag['paragraphs'] ?? [] as $paragraph): ?>
|
|
<p class="stadionzeitung-vorwort__text"><?= e((string) $paragraph) ?></p>
|
|
<?php endforeach; ?>
|
|
<p class="stadionzeitung-beitrag__source"><?= e((string) ($beitrag['source'] ?? '')) ?></p>
|
|
<?php if ($validUrl): ?>
|
|
<a class="stadionzeitung-page__cta" href="<?= e($sourceUrl) ?>" target="_blank" rel="noopener noreferrer">
|
|
<div class="stadionzeitung-page__cta-text">
|
|
<p class="stadionzeitung-page__cta-label"><?= e((string) ($beitrag['cta_label'] ?? 'Lesetipp')) ?></p>
|
|
<p class="stadionzeitung-page__cta-title">Den vollständigen Beitrag lesen</p>
|
|
<p class="stadionzeitung-page__cta-link"><?= e((string) parse_url($sourceUrl, PHP_URL_HOST)) ?></p>
|
|
</div>
|
|
<?php if (is_file(PUBLIC_PATH . '/assets/' . $qrPath)): ?>
|
|
<div class="stadionzeitung-page__cta-abriss">
|
|
<img class="stadionzeitung-page__cta-qr" src="<?= e(asset($qrPath)) ?>" alt="QR-Code zum Originalartikel" width="100" height="100" loading="lazy" decoding="async">
|
|
<span class="stadionzeitung-page__cta-scan">Zum Artikel</span>
|
|
</div>
|
|
<?php endif; ?>
|
|
</a>
|
|
<?php endif; ?>
|
|
</div>
|