feat: borda verde a rodar nos planos, textura metálica, contactos numa só fonte

- Mensalidades: ao passar o rato, a borda do cartão ganha um brilho verde num
  conic-gradient que roda (@property --pc-a animável), centrado no cursor; o
  cartão inclina-se e desliza para o rato como os da equipa.
- «O que dizem de nós» e rodapé: textura discreta de metal preto mate (grão de
  pintura eletrostática, brilho difuso, riscas quase invisíveis), em SVG/CSS.
- Contactos: o site lê só fitme3070_info (Gestão → Contactos). Os campos
  contact_*/social_* de Sistema → Definições não eram usados e foram editados
  por engano — saem do formulário, com um aviso a apontar para Contactos.
  site_info() deixa o WhatsApp só com dígitos (wa.me não aceita + nem espaços).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
andreandClaude Opus 5.5 committed 2026-09-24 21:57:15 +01:00
1 parent 21ff1b55ff
commit 0587be7d14
4 files changed
+166 -78

No files matched your search

+8 -65
View File
@@ -17,14 +17,10 @@ $fields = [
'email_from_name' => ['label' => 'Nome do remetente', 'type' => 'text', 'required' => true],
'email_subject_prefix' => ['label' => 'Prefixo do assunto', 'type' => 'text', 'required' => false],
'reminder_hours' => ['label' => 'Horas de reminder', 'type' => 'number','required' => true],
'contact_email' => ['label' => 'Email de contacto público', 'type' => 'email', 'required' => false],
'contact_phone_display'=> ['label' => 'Telefone (texto exibido)', 'type' => 'text', 'required' => false],
'contact_phone_dial' => ['label' => 'Telefone (formato dial)', 'type' => 'text', 'required' => false],
'contact_phone_intl' => ['label' => 'Telefone (formato internacional, sem +)', 'type' => 'text', 'required' => false],
'contact_address_line1'=> ['label' => 'Morada — linha 1', 'type' => 'text', 'required' => false],
'contact_address_line2'=> ['label' => 'Morada — linha 2', 'type' => 'text', 'required' => false],
'social_facebook_url' => ['label' => 'Facebook URL', 'type' => 'url', 'required' => false],
'social_instagram_url' => ['label' => 'Instagram URL', 'type' => 'url', 'required' => false],
// Public contacts are NOT here: the site reads them from fitme3070_info,
// edited in Gestão → Contactos (views/admin/info/edit.php). The fleet
// template's contact_* / social_* settings were unused and got edited by
// mistake, so they were removed from this form.
// SEO defaults — used by site/includes/head.php when a page doesn't
// set its own $page_title / $page_description / $page_image override.
@@ -226,63 +222,10 @@ include __DIR__ . '/../../includes/navbar.php';
</div>
</div>
<div class="card shadow-sm mb-3">
<div class="card-header"><strong>Contactos públicos</strong></div>
<div class="card-body">
<div class="row g-3">
<div class="col-md-6">
<label class="form-label small">Email de contacto</label>
<input type="email" name="contact_email" class="form-control"
value="<?= htmlspecialchars($values['contact_email']) ?>"
placeholder="andre@andremoreira.pt">
<div class="form-text">Mostrado no site e recebe os pedidos de orçamento e contacto.</div>
</div>
<div class="col-md-6">
<label class="form-label small">Telefone (texto exibido)</label>
<input type="text" name="contact_phone_display" class="form-control"
value="<?= htmlspecialchars($values['contact_phone_display']) ?>"
placeholder="915 435 034">
</div>
<div class="col-md-6">
<label class="form-label small">Telefone (dial / <code>tel:</code>)</label>
<input type="text" name="contact_phone_dial" class="form-control font-monospace"
value="<?= htmlspecialchars($values['contact_phone_dial']) ?>"
placeholder="+351915435034">
<div class="form-text">Formato E.164 (com <code>+</code>).</div>
</div>
<div class="col-md-6">
<label class="form-label small">Telefone (formato WhatsApp <code>wa.me</code>)</label>
<input type="text" name="contact_phone_intl" class="form-control font-monospace"
value="<?= htmlspecialchars($values['contact_phone_intl']) ?>"
placeholder="351915435034">
<div class="form-text">Sem <code>+</code> nem espaços. Usado em <code>https://wa.me/&lt;numero&gt;</code>.</div>
</div>
<div class="col-md-6">
<label class="form-label small">Morada — linha 1</label>
<input type="text" name="contact_address_line1" class="form-control"
value="<?= htmlspecialchars($values['contact_address_line1']) ?>"
placeholder="Av. Cidade de Coimbra 159">
</div>
<div class="col-md-6">
<label class="form-label small">Morada — linha 2</label>
<input type="text" name="contact_address_line2" class="form-control"
value="<?= htmlspecialchars($values['contact_address_line2']) ?>"
placeholder="3070-761 Praia de Mira">
</div>
<div class="col-md-6">
<label class="form-label small">Facebook URL</label>
<input type="url" name="social_facebook_url" class="form-control"
value="<?= htmlspecialchars($values['social_facebook_url']) ?>"
placeholder="https://www.facebook.com/...">
</div>
<div class="col-md-6">
<label class="form-label small">Instagram URL</label>
<input type="url" name="social_instagram_url" class="form-control"
value="<?= htmlspecialchars($values['social_instagram_url']) ?>"
placeholder="https://www.instagram.com/...">
</div>
</div>
</div>
<div class="alert alert-info d-flex align-items-center gap-2 mb-3">
<i class="bi bi-telephone-fill"></i>
<div>Telefone, WhatsApp, e-mail, morada e redes sociais do site editam-se em
<a href="<?= base_url('views/admin/info/edit.php') ?>" class="alert-link">Gestão → Contactos</a>.</div>
</div>
<div class="card shadow-sm mb-3">