Added Photo Collage to Calendar TV View
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
if (empty($isCalendarTvView ?? null)) {
|
||||
return;
|
||||
}
|
||||
|
||||
$collageDir = dirname(__DIR__) . '/assets/images/calendar-tv-collage';
|
||||
$files = glob($collageDir . '/collage-*.png') ?: [];
|
||||
if ($files === []) {
|
||||
$files = glob($collageDir . '/collage-*.{jpg,jpeg,webp}', GLOB_BRACE) ?: [];
|
||||
}
|
||||
natcasesort($files);
|
||||
$files = array_values($files);
|
||||
if ($files === []) {
|
||||
return;
|
||||
}
|
||||
|
||||
$mosaic = count($files) === 10;
|
||||
$gridClass = $mosaic ? 'calendar-tv-collage-grid calendar-tv-collage-grid--mosaic' : 'calendar-tv-collage-grid calendar-tv-collage-grid--even';
|
||||
$cols = 5;
|
||||
$rows = (int) max(1, ceil(count($files) / $cols));
|
||||
?>
|
||||
<div class="calendar-tv-collage-bg" aria-hidden="true">
|
||||
<div class="<?= htmlspecialchars($gridClass, ENT_QUOTES, 'UTF-8') ?>"<?= $mosaic ? '' : ' style="grid-template-columns: repeat(' . (int) $cols . ', 1fr); grid-template-rows: repeat(' . (int) $rows . ', 1fr);"' ?>>
|
||||
<?php foreach ($files as $absPath): ?>
|
||||
<?php
|
||||
$base = basename((string) $absPath);
|
||||
$url = 'assets/images/calendar-tv-collage/' . $base;
|
||||
?>
|
||||
<div class="calendar-tv-collage-tile" style="background-image: url('<?= htmlspecialchars($url, ENT_QUOTES, 'UTF-8') ?>')"></div>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
<div class="calendar-tv-collage-scrim"></div>
|
||||
</div>
|
||||
@@ -73,6 +73,7 @@
|
||||
$bodyStyle = implode('; ', $bodyStyleParts) . ';';
|
||||
?>
|
||||
<body class="family-hub-body <?= htmlspecialchars($headerThemeClass ?? 'header-tone-dark', ENT_QUOTES, 'UTF-8') ?><?= !empty($isCalendarTvView) ? ' calendar-tv-dark' : '' ?>" style="<?= htmlspecialchars($bodyStyle, ENT_QUOTES, 'UTF-8') ?>">
|
||||
<?php include __DIR__ . '/calendar_tv_collage_bg.php'; ?>
|
||||
<?php $hideTopHeader = !empty($isCalendarTvView); ?>
|
||||
<?php if (!$hideTopHeader): ?>
|
||||
<header class="app-header app-header-with-tabs text-white pt-3 px-3 pb-2 mb-0">
|
||||
|
||||
Reference in New Issue
Block a user