Stadionzeitung gegen TDC Lindau 2 mit Jugendbeitrag vorbereiten
This commit is contained in:
44
app/components/stadionzeitung-beitrag.php
Normal file
44
app/components/stadionzeitung-beitrag.php
Normal file
@@ -0,0 +1,44 @@
|
||||
<?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>
|
||||
@@ -50,6 +50,9 @@ $type = $entry['type'] ?? 'image';
|
||||
<?php case 'interview': ?>
|
||||
<?php component('stadionzeitung-interview', ['issue' => $issue]); ?>
|
||||
<?php break; ?>
|
||||
<?php case 'beitrag': ?>
|
||||
<?php component('stadionzeitung-beitrag', ['issue' => $issue, 'eager' => $eager]); ?>
|
||||
<?php break; ?>
|
||||
<?php case 'aufruf': ?>
|
||||
<?php component('stadionzeitung-aufruf', ['issue' => $issue]); ?>
|
||||
<?php break; ?>
|
||||
|
||||
Reference in New Issue
Block a user