52 lines
1.8 KiB
PHP
52 lines
1.8 KiB
PHP
<?php snippet('header') ?>
|
|
|
|
<div id="home-slideshow">
|
|
<?php
|
|
$files = $site->slideshow()->toFiles();
|
|
|
|
$count = $files->count();
|
|
$slides = [];
|
|
$i = 0;
|
|
|
|
while ($i < $count) {
|
|
$file = $files->nth($i);
|
|
$nextFile = $files->nth($i + 1);
|
|
|
|
$isPortrait = $file->type() === 'image' && $file->orientation() === 'portrait';
|
|
$nextIsPortrait = $nextFile && $nextFile->type() === 'image' && $nextFile->orientation() === 'portrait';
|
|
|
|
if ($isPortrait && $nextIsPortrait) {
|
|
$slides[] = ['pair' => true, 'a' => $file, 'b' => $nextFile];
|
|
$i += 2;
|
|
} else {
|
|
$slides[] = ['pair' => false, 'file' => $file];
|
|
$i++;
|
|
}
|
|
}
|
|
?>
|
|
|
|
<?php foreach ($slides as $slide): ?>
|
|
<?php if ($slide['pair']): ?>
|
|
<div class="slide portrait-pair">
|
|
<?php snippet('picture', ['file' => $slide['a'], 'srcsetName' => 'home-slideshow', 'sizes' => '50vw', 'lazy' => false]) ?>
|
|
<?php snippet('picture', ['file' => $slide['b'], 'srcsetName' => 'home-slideshow', 'sizes' => '50vw', 'lazy' => false]) ?>
|
|
</div>
|
|
<?php elseif ($slide['file']->type() === 'video'): ?>
|
|
<div class="slide">
|
|
<video autoplay muted loop playsinline data-id="<?= $slide['file']->uuid() ?>">
|
|
<source src="<?= $slide['file']->url() ?>" type="<?= $slide['file']->mime() ?>">
|
|
</video>
|
|
</div>
|
|
<?php else: ?>
|
|
<div class="slide">
|
|
<?php snippet('picture', ['file' => $slide['file'], 'srcsetName' => 'home-slideshow', 'sizes' => '100vw', 'lazy' => false]) ?>
|
|
</div>
|
|
<?php endif ?>
|
|
<?php endforeach ?>
|
|
|
|
<button class="prev"></button>
|
|
<button class="next"></button>
|
|
</div>
|
|
|
|
<script src="/assets/js/home-slideshow.js"></script>
|
|
<?php snippet('footer') ?>
|