Files
fitme3070.pt/site/includes/gallery.php
T
andreandClaude Opus 5.5 8ebf20f52f feat: horário em 3 dias, horário de funcionamento compacto, textura na equipa, estrutura/SEO
- Horário de aulas: cartões mais pequenos e estreitos; a partir de 992px mostra
  o dia anterior, hoje ao centro e o seguinte (a dar a volta à semana), com as
  horas alinhadas e os dias laterais esbatidos. O JPG continua a semana toda.
- Horário de funcionamento: cartões compactos numa <dl>, ordenados por hora.
- Equipa: fundo no cinzento da parede do ginásio com juntas de blocos e grão
  muito discretos (SVG inline).
- Tira o «FitMe 3070» do header e esconde a newsletter.
- Estrutura: um <main> em todas as páginas públicas (skip link aponta-lhe),
  h2 por secção com aria-labelledby, h3 nos itens em vez de h4, sem secções
  aninhadas, alts distintos na galeria e no h1 do CrossFit.
- robots.txt e sitemap.xml gerados com o domínio da instalação; SEO_NOINDEX
  no .env tira uma cópia de staging dos motores de pesquisa.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 21:46:21 +01:00

47 lines
1.9 KiB
PHP

<?php
// Gallery partial — Splide CSS/JS is loaded centrally by include.php / footer.php.
// Slides use Splide's native lazy loading (data-splide-lazy + cover), so only
// the visible/nearby images are downloaded instead of the whole gallery.
$files = glob(rtrim($gallery_path, '/') . '/*.jpg');
if (!$files || !is_array($files)) $files = [];
?>
<div class="row justify-content-md-center" style="margin-top: 58px">
<div class="col-lg-8">
<div class="section-title text-center deco">
<span class="section-eyebrow">Galeria</span>
<h2><?= htmlspecialchars($gallery_h2 ?? 'Galeria') ?></h2>
<p class="section-subtitle">Espaço amplo, equipamento moderno e um ambiente feito para treinar.</p>
</div>
</div>
</div>
<div id="primary-slider" class="splide" style="padding:0;">
<div class="splide__track">
<ul class="splide__list">
<?php foreach($files as $gi => $f): /* distinct alt per photo — identical alts read as one image */ ?>
<li class="splide__slide"><img src="<?= base_url($f) ?>" alt="<?= htmlspecialchars(($gallery_h2 ?? 'Instalações') . ' — FitMe 3070, foto ' . ($gi + 1)) ?>"<?= $gi > 0 ? ' loading="lazy"' : '' ?>></li>
<?php endforeach; ?>
</ul>
</div>
</div>
<script>
document.addEventListener('DOMContentLoaded', function () {
var isMobile = window.innerWidth < 768;
// Single auto-playing slider (no thumbnail strip). Real <img src> + cover
// paints the first big image on mount; autoplay cross-fades through the
// rest and rewinds at the end. Pauses on hover/focus for accessibility.
new Splide('#primary-slider', {
type: 'fade',
rewind: true,
heightRatio: isMobile ? 0.7 : 0.5,
cover: true,
arrows: !isMobile,
pagination: true,
autoplay: true,
interval: 4500,
speed: 800,
pauseOnHover: true,
pauseOnFocus: true
}).mount();
});
</script>