Estrutura multi-ginásio: as mesmas secções do site, conteúdo próprio por ginásio, e cada um numa pasta da URL com o código postal da zona. - migration_20260926_gyms: tabela gyms (pasta, nome, localidade, publicado, principal, secções visíveis, título/imagem do header, SEO, galeria, Place ID, página CrossFit) com o FitMe 3070 como ginásio 1 em /3070/; gym_id em team, modalidades (o horário segue a modalidade), work_hours, memberships, membership_leads e website_offer (tudo o existente → ginásio 1); events com gym_id NULL = todos; fitme3070_info passa a uma linha por ginásio (id = gym). - Site: /<pasta>/, /<pasta>/crossfit, /<pasta>/agendar|inscricao. Ginásio por publicar → 404 para o público, pré-visualização (com faixa) para a equipa. / e /home → 301 para o ginásio principal (a manter a query); com mais de um ginásio publicado, a raiz passa a uma página para escolher. Secções desligadas não aparecem nem no menu; menu, canonical, JSON-LD, sitemap, formulários, e-mails e reviews (Place ID e cache) são do ginásio. - Backoffice: Gestão → Ginásios (criar/editar/apagar, secções, e «começar com o conteúdo de» outro ginásio — cópias independentes) e o seletor «A editar» no topo; equipa, modalidades, horários, horário de funcionamento, mensalidades, pedidos, contactos e reviews trabalham sobre o ginásio escolhido, e um registo de outro ginásio não abre. - Modalidades passam para logo a seguir à galeria das instalações. - Galeria sem cantos arredondados (raio da marca). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
42 lines
2.4 KiB
PHP
42 lines
2.4 KiB
PHP
</main><?php /* opened at the end of site/_open.php */ ?>
|
|
|
|
<!-- Footer section -->
|
|
<footer class="footer-section set-bg fade-in"
|
|
data-setbg="<?= base_url(($current_uri_2 ?? '') == 'crossfit' ? 'site/assets/img/footer-bg-cf.jpg' : 'site/assets/img/footer-bg-gym.jpg') ?>">
|
|
<?php /* Contact details live in the #contactos section — the footer just carries
|
|
social links, the site menu and the mandatory legal links. */ ?>
|
|
<div class="container text-center">
|
|
<?php if (!empty($info['facebook']) || !empty($info['instagram']) || !empty($info['whatsapp'])): ?>
|
|
<div class="social-links footer-social">
|
|
<?php if(!empty($info['facebook'])): ?>
|
|
<a href="<?= htmlspecialchars($info['facebook']) ?>" target="_blank" rel="noopener" aria-label="Facebook"><i class="fab fa-facebook"></i></a>
|
|
<?php endif; ?>
|
|
<?php if(!empty($info['instagram'])): ?>
|
|
<a href="<?= htmlspecialchars($info['instagram']) ?>" target="_blank" rel="noopener" aria-label="Instagram"><i class="fab fa-instagram"></i></a>
|
|
<?php endif; ?>
|
|
<?php if(!empty($info['whatsapp'])): ?>
|
|
<a target="_blank" href="https://wa.me/<?= htmlspecialchars($info['whatsapp']) ?>" rel="noopener" aria-label="WhatsApp"><i class="fab fa-whatsapp"></i></a>
|
|
<?php endif; ?>
|
|
</div>
|
|
<?php endif; ?>
|
|
<ul class="footer-menu">
|
|
<?php foreach($navbar as $key => $n): ?>
|
|
<li><a href="<?= htmlspecialchars($n) ?>" <?= str_contains($n, '#') ? 'class="smooth-scroll"' : '' ?>><?= $key ?></a></li>
|
|
<?php endforeach; ?>
|
|
</ul>
|
|
<p class="small footer-legal">Este estabelecimento possui livro de reclamações online em <a href="https://www.livroreclamacoes.pt/Pedido/Reclamacao" target="_blank" rel="noopener">www.livroreclamacoes.pt</a></p>
|
|
<p class="small footer-legal"><a href="<?= base_url('home/privacidade') ?>">Política de Privacidade</a>
|
|
<?php /* Discreet backoffice entry point — bounces through SSO (id.andmore.pt). */ ?>
|
|
<span class="footer-legal-sep" aria-hidden="true">·</span>
|
|
<a href="<?= base_url('views/auth/login.php') ?>" class="footer-admin-link" rel="nofollow" aria-label="Acesso reservado" title="Backoffice"><i class="fas fa-lock"></i></a>
|
|
</p>
|
|
</div>
|
|
</footer>
|
|
|
|
<!-- Scripts: jQuery first (Bootstrap navbar/alerts depend on it), then plugins -->
|
|
<?= script_tag('site/assets/js/jquery-3.7.1.min.js') ?>
|
|
<?= script_tag('assets/vendor/bootstrap/js/bootstrap.min.js') ?>
|
|
<?= script_tag('site/assets/js/main.js') ?>
|
|
</body>
|
|
</html>
|