feat: contactos editáveis, equipa com título/aptidões, mensalidades e reviews Google

- Contactos: nova página no backoffice (fitme3070_info) e 964 201 137 como
  telefone principal; o telefone secundário só aparece quando existe.
- Equipa: título, aptidões/funções e formações; o cartão mostra foto, nome e
  título e abre um cartão horizontal de detalhe (hover no desktop, toque no
  telemóvel) sem mexer na grelha.
- Mensalidades: cartões editáveis com um destaque, modal de inscrição que
  guarda o pedido (RGPD + estado + campos reservados para o CRM) e avisa o
  ginásio por e-mail; lista de pedidos com estados, notas e CSV.
- Reviews Google via Places API (New), filtradas por classificação mínima e
  em cache configurável; página de configuração com pesquisa do Place ID.
- Assets com ?v=<mtime>: site/assets é servido com cache imutável de 1 ano.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
andreandClaude Opus 5.5 committed 2026-09-24 14:58:57 +01:00
1 parent 8a494d59a5
commit f95c9ebc52
27 files changed
+2063 -16

No files matched your search

+1 -1
View File
@@ -53,7 +53,7 @@ include __DIR__ . '/../../../includes/header.php';
<?php foreach ($items as $item): ?>
<tr>
<td><?php if ($item['photo']): ?><img src="<?= base_url('uploads/team/foto/' . $item['photo']) ?>" alt="" style="width:40px;height:40px;object-fit:cover;border-radius:50%"><?php else: ?><span style="width:40px;height:40px;border-radius:50%;background:#dee2e6;display:inline-flex;align-items:center;justify-content:center"><i class="bi bi-person text-muted"></i></span><?php endif; ?></td>
<td><strong><?= htmlspecialchars($item['name']) ?></strong></td>
<td><strong><?= htmlspecialchars($item['name']) ?></strong><?php if (!empty($item['title'])): ?><div class="small text-muted"><?= htmlspecialchars($item['title']) ?></div><?php endif; ?></td>
<td><?= htmlspecialchars($item['at'] ?? '—') ?></td>
<td><span class="badge <?= $item['status'] === 'ativo' ? 'bg-success' : 'bg-secondary' ?>"><?= htmlspecialchars($item['status']) ?></span>
<?php if ($item['deleted_at']): ?><span class="badge bg-danger ms-1">apagado</span><?php endif; ?></td>