feat(site): horário sem barra de dias em cima, CrossFit ganha contactos

- Horário de aulas (home e CrossFit, mesmo componente partilhado): removida
  a barra de botões Seg/Ter/Qua/Qui/Sex/Sab acima da grelha — o próprio
  cabeçalho do dia (já existente) passa a ser sempre visível (antes só em
  desktop, 3 dias) e ganha setas ‹ › ao lado do nome do dia para mudar de
  dia em ecrãs de telemóvel/tablet. No desktop (3 dias lado a lado) as
  setas ficam escondidas — clicar no dia lateral já muda o dia em foco.
  CSS/JS morto do botão-filtro removido.
- Informações e contactos extraído para site/includes/contactos.php,
  partilhado pela home e pelo CrossFit — a página CrossFit ganha a mesma
  secção de contactos (localização, telefone, e-mail, horário de
  funcionamento, mapa, formulário) em vez de só linkar de volta à home.
  Hero e restantes secções do CrossFit não foram tocados.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
andreandClaude Sonnet 5 committed 2026-09-26 08:19:12 +01:00
1 parent 5478952171
commit 65182eecd6
6 files changed
+230 -207

No files matched your search

+136
View File
@@ -0,0 +1,136 @@
<?php
// Informações e contactos — partilhado entre a home (site/index.php) e o
// CrossFit (site/crossfit.php), para as duas páginas darem sempre a mesma
// informação de contacto em vez de reencaminhar para a home só para isso.
// $data: whours, work_hours_days (Horário de Funcionamento, opcional),
// assunto (pré-preenche "Razão" no formulário), show (gym_section_on, default true).
$whours = $whours ?? [];
$work_hours_days = $work_hours_days ?? ['Segunda-Sexta' => 'segunda', 'Sábado' => 'sabado', 'Domingo/Feriados' => 'domingo'];
$assunto = $assunto ?? '';
$show = $show ?? true;
$session = session();
?>
<?php if ($show): ?>
<?php /* contacts-bg.jpg never existed — outside2.jpg is the current photo in img/contactos/ */ ?>
<section id="contactos" class="contact-section set-bg" data-setbg="<?= base_url('site/assets/img/contactos/outside2.jpg') ?>" aria-labelledby="contactos-title">
<div class="container">
<?php if (($_GET['agendar'] ?? '') === 'ok'): ?>
<div class="alert alert-success text-center" role="alert">
Pedido enviado! Entraremos em contacto para confirmar a tua aula experimental.
</div>
<?php elseif (($_GET['agendar'] ?? '') === 'erro'): ?>
<div class="alert alert-danger text-center" role="alert">
Não foi possível enviar o pedido. Verifica os dados e tenta novamente.
</div>
<?php endif; ?>
<div class="row">
<div class="col-lg-4">
<h2 id="contactos-title" class="contact-title text-center text-md-left">Informações</h2>
<div class="contact-info-warp text-center text-md-left">
<h3>Localização</h3>
<div class="contact-info text-center text-md-left">
<i class="fas fa-map-marker-alt"></i>
<div class="cf-text">
<a href="<?= htmlspecialchars($info['google_maps_link'] ?? '') ?>" target="_blank" rel="noopener">
<p><?= htmlspecialchars($info['adress'] ?? '') ?></p>
</a>
</div>
</div>
</div>
<div class="contact-info-warp text-center text-md-left">
<h3>Telefone</h3>
<div class="contact-info text-center text-md-left">
<i class="fas fa-phone-volume"></i>
<div class="cf-text">
<a href="tel:<?= htmlspecialchars(site_tel($info['phone'] ?? '')) ?>">
<p><?= htmlspecialchars($info['phone'] ?? '') ?></p>
</a>
<?php if (($info['telephone'] ?? '') !== ''): ?>
<a href="tel:<?= htmlspecialchars(site_tel($info['telephone'])) ?>">
<p><?= htmlspecialchars($info['telephone']) ?></p>
</a>
<?php endif; ?>
</div>
</div>
</div>
<div class="contact-info-warp text-center text-md-left">
<h3>E-mail</h3>
<div class="contact-info">
<i class="fas fa-envelope"></i>
<div class="cf-text">
<a href="mailto:<?= htmlspecialchars($info['email'] ?? '') ?>">
<p><?= htmlspecialchars($info['email'] ?? '') ?></p>
</a>
<a href="#contactos">
<p><?= htmlspecialchars($info['website'] ?? '') ?></p>
</a>
</div>
</div>
</div>
<?php if ($whours): ?>
<div class="contact-info-warp text-center text-md-left">
<h3>Horário de Funcionamento</h3>
<dl class="wh-grid wh-grid-inline">
<?php foreach ($work_hours_days as $key => $value): ?>
<div class="wh-day">
<dt><?= htmlspecialchars($key) ?></dt>
<?php $any = false; foreach ($whours as $h): if ($h['week_day'] == $value): $any = true; ?>
<dd><?= htmlspecialchars(substr($h['open'], 0, 5) . ' – ' . substr($h['close'], 0, 5)) ?></dd>
<?php endif; endforeach; ?>
<?php if (!$any): ?><dd class="wh-closed">Encerrado</dd><?php endif; ?>
</div>
<?php endforeach; ?>
</dl>
</div>
<?php endif; ?>
<?php // Mapa compacto, ao lado das informações ?>
<div class="map map-side" id="map">
<?php
// Defer the Google Maps iframe until the user scrolls near it.
$maps_embed = $info['google_maps'] ?? '';
if (strpos($maps_embed, 'loading=') === false) {
$maps_embed = str_replace('<iframe ', '<iframe loading="lazy" ', $maps_embed);
}
echo map_click_to_load(clean_map_embed($maps_embed), (string) ($info['google_maps_link'] ?? ''));
?>
</div>
</div>
<div class="col-lg-8">
<div id="contact-form">
<h3 class="contact-title text-center text-md-left">Envia-nos uma mensagem</h3>
<?php if (isset($_GET['enviado'])): ?>
<div class="alert alert-success" role="alert">
Mensagem enviada com sucesso! Entraremos em contacto brevemente.
</div>
<?php endif; ?>
<form class="contact-form" method="post" action="https://forms.zohopublic.eu/fitme30701/form/FormulriodeContacto/formperma/NiwsTjwWGX2sgpZIXqE5otyAn8D5nuRQjpYDuGkS2wM/htmlRecords/submit">
<input type="hidden" name="zf_redirect_url" value="<?= base_url('?enviado=1#contact-form') ?>">
<div class="row">
<div class="col-md-6">
<input type="text" required name="SingleLine" placeholder="Nome" aria-label="Nome">
</div>
<div class="col-md-6">
<input type="text" required name="PhoneNumber_countrycode" placeholder="Telemóvel" aria-label="Telemóvel">
</div>
</div>
<input type="text" name="SingleLine1" placeholder="Razão" required value="<?= htmlspecialchars($assunto) ?>" aria-label="Razão do contacto">
<textarea name="MultiLine" placeholder="Mensagem" required aria-label="Mensagem"></textarea>
<?php if ($session->getFlashdata('email') !== null): ?>
<div class="alert alert-success alert-dismissible fade show" role="alert">
<?= $session->getFlashdata('email') ?>
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
</div>
<?php endif; ?>
<label class="consent-check">
<?php /* no name attribute: gates submission client-side, not stored in Zoho */ ?>
<input type="checkbox" required>
<span>Li e aceito a <a href="<?= base_url('home/privacidade') ?>" target="_blank" rel="noopener">Política de Privacidade</a>.</span>
</label>
<button class="site-btn" id="btn_email" type="submit">Enviar Mensagem</button>
</form>
</div>
</div>
</div>
</div>
</section>
<?php endif; ?>