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:
1 parent
8a494d59a5
commit
f95c9ebc52
27 files changed
+2063
-16
No files matched your search
@@ -18,28 +18,35 @@ function db_team_get(PDO $pdo, int $id): ?array {
|
||||
|
||||
function db_team_create(PDO $pdo, array $data): int {
|
||||
$stmt = $pdo->prepare("
|
||||
INSERT INTO team (name, birthday, `at`, status, description, photo, created_at, updated_at)
|
||||
VALUES (?, ?, ?, ?, ?, ?, NOW(), NOW())
|
||||
INSERT INTO team (name, title, birthday, `at`, status, description, skills, certifications, photo, created_at, updated_at)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, NOW(), NOW())
|
||||
");
|
||||
$stmt->execute([
|
||||
$data['name'],
|
||||
$data['title'] ?? '',
|
||||
$data['birthday'] ?: null,
|
||||
$data['at'] ?: null,
|
||||
$data['status'] ?? 'ativo',
|
||||
$data['description'] ?? null,
|
||||
($data['skills'] ?? '') !== '' ? $data['skills'] : null,
|
||||
($data['certifications'] ?? '') !== '' ? $data['certifications'] : null,
|
||||
$data['photo'] ?? null,
|
||||
]);
|
||||
return (int) $pdo->lastInsertId();
|
||||
}
|
||||
|
||||
function db_team_update(PDO $pdo, int $id, array $data, ?string $photo = null): bool {
|
||||
$sets = ["name = ?", "birthday = ?", "`at` = ?", "status = ?", "description = ?", "updated_at = NOW()"];
|
||||
$sets = ["name = ?", "title = ?", "birthday = ?", "`at` = ?", "status = ?", "description = ?",
|
||||
"skills = ?", "certifications = ?", "updated_at = NOW()"];
|
||||
$params = [
|
||||
$data['name'],
|
||||
$data['title'] ?? '',
|
||||
$data['birthday'] ?: null,
|
||||
$data['at'] ?: null,
|
||||
$data['status'] ?? 'ativo',
|
||||
$data['description'] ?? null,
|
||||
($data['skills'] ?? '') !== '' ? $data['skills'] : null,
|
||||
($data['certifications'] ?? '') !== '' ? $data['certifications'] : null,
|
||||
];
|
||||
if ($photo !== null) {
|
||||
$sets[] = "photo = ?";
|
||||
|
||||
Reference in new issue
Block a user