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:
1 parent
5478952171
commit
65182eecd6
6 files changed
+230
-207
No files matched your search
@@ -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; ?>
|
||||
Reference in new issue
Block a user