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>
This commit is contained in:
1 parent
90ee2a93bc
commit
8ebf20f52f
11 files changed
+317
-57
No files matched your search
+39
-43
@@ -50,7 +50,6 @@ $reviews = site_reviews(); // null when not configured / nothin
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<span class="hero-brand">FitMe 3070</span>
|
||||
<h1>Ginásio, Box, Aulas<br><span>& Acompanhamento</span></h1>
|
||||
<div class="hero-cta-row">
|
||||
<a href="?assunto=insc#contactos" class="site-btn">Inscreve-te Já!</a>
|
||||
@@ -63,13 +62,13 @@ $reviews = site_reviews(); // null when not configured / nothin
|
||||
// ── Oferta (Feature section) ───────────────────────────────────────────────────
|
||||
if ($offer):
|
||||
?>
|
||||
<section class="feature-section">
|
||||
<section id="oferta" class="feature-section" aria-labelledby="oferta-title">
|
||||
<div class="container">
|
||||
<div class="row justify-content-md-center">
|
||||
<div class="col-lg-8">
|
||||
<div class="section-title text-center deco">
|
||||
<span class="section-eyebrow">FitMe 3070</span>
|
||||
<h2>A Nossa Oferta</h2>
|
||||
<h2 id="oferta-title">A Nossa Oferta</h2>
|
||||
<p class="section-subtitle">Tudo o que precisas para evoluir, num só espaço.</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -81,7 +80,7 @@ if ($offer):
|
||||
<div class="ib-icon">
|
||||
<img loading="lazy" src="<?= site_img_url($o['o_img'], 'uploads/website/offer') ?>" alt="<?= htmlspecialchars((string) $o['o_title']) ?>">
|
||||
</div>
|
||||
<h4><?= htmlspecialchars((string) $o['o_title']) ?></h4>
|
||||
<h3><?= htmlspecialchars((string) $o['o_title']) ?></h3>
|
||||
<p><?= htmlspecialchars((string) $o['o_description']) ?></p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -107,13 +106,13 @@ $gallery_h2 = 'Conhece as nossas instalações';
|
||||
// ── Equipa ──────────────────────────────────────────────────────────────────────
|
||||
if ($team):
|
||||
?>
|
||||
<section id="equipa" class="trainers-section">
|
||||
<section id="equipa" class="trainers-section" aria-labelledby="equipa-title">
|
||||
<div class="container">
|
||||
<div class="row justify-content-md-center mb-4">
|
||||
<div class="col-lg-8">
|
||||
<div class="section-title text-center deco">
|
||||
<span class="section-eyebrow">Quem somos</span>
|
||||
<h2>Conhece os membros da equipa 3070</h2>
|
||||
<h2 id="equipa-title">Conhece os membros da equipa 3070</h2>
|
||||
<p class="section-subtitle">Profissionais dedicados a ajudar-te a alcançar os teus objetivos.</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -137,7 +136,7 @@ if ($team):
|
||||
<div class="trainer-pic">
|
||||
<img loading="lazy" src="<?= $t_img ?>" alt="<?= htmlspecialchars((string) $d['name']) ?>">
|
||||
</div>
|
||||
<h4><?= htmlspecialchars((string) $d['name']) ?></h4>
|
||||
<h3><?= htmlspecialchars((string) $d['name']) ?></h3>
|
||||
<?php if ($t_title !== ''): ?><p class="trainer-title"><?= htmlspecialchars($t_title) ?></p><?php endif; ?>
|
||||
<?php if ($t_detail): ?>
|
||||
<div class="trainer-detail" id="<?= $t_id ?>">
|
||||
@@ -214,14 +213,14 @@ $today_map = [1=>'segunda', 2=>'terça', 3=>'quarta', 4=>'quinta', 5=>'sexta',
|
||||
$default_day = $today_map[(int) date('N')] ?? null;
|
||||
if (!in_array($default_day, $week_values, true)) { $default_day = $week_values[0]; }
|
||||
?>
|
||||
<section id="horario" class="schedule-section" style="padding:60px 0;">
|
||||
<section id="horario" class="schedule-section" style="padding:60px 0;" aria-labelledby="horario-title">
|
||||
<div class="schedule fade-in">
|
||||
<div class="container">
|
||||
<div class="row justify-content-md-center mb-4">
|
||||
<div class="col-lg-8">
|
||||
<div class="section-title text-center deco">
|
||||
<span class="section-eyebrow">Calendário</span>
|
||||
<h2>Horário de Aulas</h2>
|
||||
<h2 id="horario-title">Horário de Aulas</h2>
|
||||
<p class="section-subtitle">Planeia a tua semana de treinos connosco.</p>
|
||||
</div>
|
||||
<div class="text-center mb-2">
|
||||
@@ -426,13 +425,13 @@ if (!in_array($default_day, $week_values, true)) { $default_day = $week_values[0
|
||||
// the request as a lead and emails the gym).
|
||||
if ($memberships):
|
||||
?>
|
||||
<section id="mensalidades" class="pricing-section">
|
||||
<section id="mensalidades" class="pricing-section" aria-labelledby="mensalidades-title">
|
||||
<div class="container">
|
||||
<div class="row justify-content-md-center mb-4">
|
||||
<div class="col-lg-8">
|
||||
<div class="section-title text-center deco">
|
||||
<span class="section-eyebrow">Mensalidades</span>
|
||||
<h2>Escolhe o teu plano</h2>
|
||||
<h2 id="mensalidades-title">Escolhe o teu plano</h2>
|
||||
<p class="section-subtitle">Encontra a mensalidade que encaixa na tua rotina.</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -480,13 +479,13 @@ if ($reviews):
|
||||
return $out;
|
||||
};
|
||||
?>
|
||||
<section id="reviews" class="reviews-section">
|
||||
<section id="reviews" class="reviews-section" aria-labelledby="reviews-title">
|
||||
<div class="container">
|
||||
<div class="row justify-content-md-center mb-4">
|
||||
<div class="col-lg-8">
|
||||
<div class="section-title text-center deco">
|
||||
<span class="section-eyebrow">Reviews</span>
|
||||
<h2>O que dizem de nós</h2>
|
||||
<h2 id="reviews-title">O que dizem de nós</h2>
|
||||
<?php if ($reviews['rating'] !== null): ?>
|
||||
<p class="reviews-summary">
|
||||
<strong><?= number_format((float) $reviews['rating'], 1, ',', '') ?></strong>
|
||||
@@ -539,7 +538,7 @@ if (isset($_GET['assunto'])) {
|
||||
$session = session();
|
||||
?>
|
||||
<?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') ?>">
|
||||
<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">
|
||||
@@ -552,9 +551,9 @@ $session = session();
|
||||
<?php endif; ?>
|
||||
<div class="row">
|
||||
<div class="col-lg-4">
|
||||
<h2 class="contact-title text-center text-md-left">Informações</h2>
|
||||
<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">
|
||||
<h4>Localização</h4>
|
||||
<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">
|
||||
@@ -565,7 +564,7 @@ $session = session();
|
||||
</div>
|
||||
</div>
|
||||
<div class="contact-info-warp text-center text-md-left">
|
||||
<h4>Telefone</h4>
|
||||
<h3>Telefone</h3>
|
||||
<div class="contact-info text-center text-md-left">
|
||||
<i class="fas fa-phone-volume"></i>
|
||||
<div class="cf-text">
|
||||
@@ -581,7 +580,7 @@ $session = session();
|
||||
</div>
|
||||
</div>
|
||||
<div class="contact-info-warp text-center text-md-left">
|
||||
<h4>E-mail</h4>
|
||||
<h3>E-mail</h3>
|
||||
<div class="contact-info">
|
||||
<i class="fas fa-envelope"></i>
|
||||
<div class="cf-text">
|
||||
@@ -607,8 +606,8 @@ $session = session();
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-8">
|
||||
<section id="contact-form">
|
||||
<h2 class="contact-title text-center text-md-left">Envia-nos uma mensagem</h2>
|
||||
<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.
|
||||
@@ -639,7 +638,7 @@ $session = session();
|
||||
</label>
|
||||
<button class="site-btn" id="btn_email" type="submit">Enviar Mensagem</button>
|
||||
</form>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -649,31 +648,27 @@ $session = session();
|
||||
// ── Horário de Funcionamento ──────────────────────────────────────────────────
|
||||
if ($whours):
|
||||
$work_hours_days = ['Segunda-Sexta'=>'segunda','Sábado'=>'sabado','Domingo/Feriados'=>'domingo'];
|
||||
usort($whours, fn($x, $y) => strcmp((string) $x['open'], (string) $y['open'])); // morning before afternoon
|
||||
?>
|
||||
<section id="workhours" class="workhours-section" style="padding:40px 0;">
|
||||
<section id="workhours" class="workhours-section" aria-labelledby="workhours-title">
|
||||
<div class="container">
|
||||
<div class="row justify-content-md-center mb-4">
|
||||
<div class="col-lg-8">
|
||||
<div class="section-title text-center deco">
|
||||
<span class="section-eyebrow">Visita-nos</span>
|
||||
<h2>Horário de Funcionamento</h2>
|
||||
<p class="section-subtitle">Estamos abertos quando precisas de treinar.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section-title text-center deco">
|
||||
<span class="section-eyebrow">Visita-nos</span>
|
||||
<h2 id="workhours-title">Horário de Funcionamento</h2>
|
||||
</div>
|
||||
<div class="row justify-content-center">
|
||||
<?php // Compact day / hours cards. A <dl> so the pairs read as data
|
||||
// (label → value) for screen readers and search engines. ?>
|
||||
<dl class="wh-grid">
|
||||
<?php foreach ($work_hours_days as $key => $value): ?>
|
||||
<div class="col-md-4 text-center">
|
||||
<a class="schedule_text rounded_frame_medium mt-3 schedule_frame"><?= $key ?></a>
|
||||
<?php foreach($whours as $h): ?>
|
||||
<?php if($h['week_day'] == $value): ?>
|
||||
<div class="rounded_frame_grey mt-3">
|
||||
<p><b><?= htmlspecialchars(substr($h['open'], 0, 5) . ' - ' . substr($h['close'], 0, 5)) ?></b></p>
|
||||
</div>
|
||||
<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; ?>
|
||||
</div>
|
||||
</dl>
|
||||
</div>
|
||||
</section>
|
||||
<?php endif; ?>
|
||||
@@ -681,12 +676,12 @@ $work_hours_days = ['Segunda-Sexta'=>'segunda','Sábado'=>'sabado','Domingo/Feri
|
||||
<?php
|
||||
// ── Personal Trainer CTA ────────────────────────────────────────────────────────
|
||||
?>
|
||||
<section class="classes-section" data-setbg="">
|
||||
<section id="personal-trainer" class="classes-section" aria-labelledby="pt-title">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-6">
|
||||
<div class="section-title">
|
||||
<h2>Precisas de um <span>Personal Trainer</span>?</h2>
|
||||
<h2 id="pt-title">Precisas de um <span>Personal Trainer</span>?</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
@@ -814,6 +809,7 @@ if ($memberships):
|
||||
<?php endif; ?>
|
||||
|
||||
<?php
|
||||
// ── Newsletter + Footer ───────────────────────────────────────────────────────
|
||||
echo view('newsletter');
|
||||
// ── Footer ────────────────────────────────────────────────────────────────────
|
||||
// Newsletter hidden on request (2026-09); the partial stays in
|
||||
// site/includes/newsletter.php — re-enable with: echo view('newsletter');
|
||||
echo view('footer');
|
||||
Reference in new issue
Block a user