hic-et-nunc/site/templates/index.php

78 lines
3.8 KiB
PHP
Raw Normal View History

2026-05-14 17:22:34 +02:00
<?php snippet('header') ?>
2026-06-05 20:50:56 +02:00
<?php snippet('mobile-menu') ?>
<ul class="projects-index">
2026-06-05 16:45:55 +02:00
<li class="filter-menu">
<ul>
<?php foreach ($categories as $key => $category): ?>
<li>
<button data-filter="<?= Str::slug($category) ?>"><?= $category ?></button>
</li>
<?php endforeach; ?>
</ul>
</li>
2026-05-14 17:22:34 +02:00
<?php foreach ($page->children()->listed()->sortBy('date', 'desc') as $project): ?>
<?php $slides = $project->slideshow()->toFiles(); ?>
2026-06-05 16:45:55 +02:00
<li class="project" data-category="<?= Str::slug($project->category()) ?>" data-slug="<?= $project->slug() ?>">
2026-05-14 17:22:34 +02:00
<div class="fix">
<button class="project-toggler grid">
<span> <?= $project->shownTitle() ?> </span>
<span> <?= $project->tags() ?> </span>
<span class="date"> <?= $project->date()->toDate('Y') ?> </span>
</button>
<span class="slide-number"><span class="current-image">1</span>/<?= $slides->count() ?></span>
2026-05-14 17:22:34 +02:00
</div>
<section class="toggle">
2026-06-04 18:33:08 +02:00
<div class= "project-slideshow-container">
2026-06-10 15:59:22 +02:00
<button class="closer"></button>
2026-06-04 18:33:08 +02:00
<div class="project-slideshow">
<?php foreach ($slides->values() as $i => $slide): ?>
<?php if ($slide->type() === 'video'): ?>
<?php
// Type web fiable basé sur l'extension : le mime() de Kirby
// peut renvoyer video/quicktime pour un .mp4 (fichier .mov
// renommé), ce que Chrome/Firefox refusent de lire.
$videoTypes = [
'mp4' => 'video/mp4',
'm4v' => 'video/mp4',
'mov' => 'video/mp4',
'webm' => 'video/webm',
'ogv' => 'video/ogg',
];
$videoType = $videoTypes[strtolower($slide->extension())] ?? $slide->mime();
?>
<video class="slide<?= $i === 0 ? ' active' : '' ?>" autoplay muted loop playsinline data-id="<?= $slide->uuid() ?>">
<source src="<?= $slide->url() ?>" type="<?= $videoType ?>">
</video>
<?php else: ?>
<?php snippet('picture', [
'file' => $slide,
'srcsetName' => 'project-slideshow',
'sizes' => '(min-width: 1000px) 50vw, 100vw',
'lazy' => $i !== 0,
'class' => $i === 0 ? 'slide active' : 'slide',
]) ?>
<?php endif ?>
2026-06-04 18:33:08 +02:00
<?php endforeach; ?>
<button class="prev"></button>
<button class="next"></button>
</div>
2026-05-14 17:22:34 +02:00
</div>
<div class="project-description"><?= $project->description() ?></div>
2026-06-10 15:59:22 +02:00
<button class="close-button closer"></button>
2026-05-14 17:22:34 +02:00
</section>
</li>
<?php endforeach; ?>
<button class="all-projects-closer"></button>
</ul>
2026-05-14 17:22:34 +02:00
<script src="/assets/js/router.js"></script>
2026-05-14 17:22:34 +02:00
<script src="/assets/js/project-slideshow.js"></script>
<script src="/assets/js/project-toggle.js"></script>
<script src="/assets/js/filter-menu.js"></script>
2026-06-09 16:36:12 +02:00
<script src="/assets/js/mobile-menu-toggle.js"></script>
2026-05-14 17:22:34 +02:00
<?php snippet('footer') ?>