Files
fitme3070.pt/site/crossfit.php
T
andre 725f5b9c26 feat(site): per-gym SEO texts, event gym selector, hero/navbar polish
- Generated SEO titles/descriptions per gym; gym seo fields override each on its own
- Keywords, author, og:site_name, favicon and JSON-LD logo follow the gym
- CrossFit page 404s before output for gyms without a box
- Events: «Mostrar em» gym selector; event page uses its gym's brand
- Hero event button text colour from the event colour (--ev-on)
- Navbar bottom line stops at the other-gym head (--switch-w)
- Diagonal hero blur mask; remove the trial link
2026-10-26 12:15:37 +00:00

74 lines
3.5 KiB
PHP

<?php
// Was Home::crossfit.
$current_uri_2 = 'crossfit';
$nav_center_logo = true; // big centred logo over the video, docks left on scroll (navbar.php)
// Old /home/crossfit links → the default gym's CrossFit page.
if (($_GET['gym'] ?? '') === '') {
require_once __DIR__ . '/../config/db.php';
require_once __DIR__ . '/../config/functions.php';
$to = db_gyms_default($pdo) ?? gym_fallback();
header('Location: ' . gym_url($to, 'crossfit'), true, 301);
exit;
}
// Only gyms with a CrossFit box have this page: a real 404 status, so decide before any output.
require_once __DIR__ . '/../config/db.php';
require_once __DIR__ . '/../config/functions.php';
$cf_gym = site_gym($pdo);
if ($cf_gym && empty($cf_gym['has_crossfit'])) { require __DIR__ . '/404.php'; exit; }
require __DIR__ . '/_open.php';
$data = [
'title' => 'CrossFit',
'schedule_h2' => 'Horário Crossfit',
'bg_img' => '',
'gallery_h2' => 'CrossFit',
'gallery_path' => 'uploads/gallery/2/',
'header_video_video' => 'site/assets/img/crossfit.mp4',
'header_video_img' => 'site/assets/img/crossfit.jpg',
'rel_footer_h2' => 'Precisas de um<span>Personal Trainer?</span><br> Entra em contacto connosco.',
'ad_footer_link' => rawurlencode($gym['slug']) . '/?assunto=pt_cf#contactos',
'ad_footer_text' => 'Tens objetivos específicos na área do CrossFit? Temos a solução para ti. Atinge e melhora os teus resultados com os nossos profissionais especializados na área. Todas as viagens são melhores quando vividas com a companhia certa. ',
'ad_footer_h2' => 'Precisas de um <span>Personal Trainer</span> especializado em CrossFit?',
'ad_footer_bg' => '',
'ad_footer_text_btn' => 'Entra em contacto connosco',
];
$data['data'] = site_horario($pdo, 'crossfit', (int) $gym['id']);
echo view('header_video', $data);
echo view('crossfit', $data);
echo view('crossfit_badge', $data);
echo view('gallery', $data);
echo view('horario', $data);
// ── Informações e contactos ───────────────────────────────────────────────────
// Same partial as the home page (site/includes/contactos.php), so visitors get
// the gym's contact info + form without leaving the CrossFit page.
$gid = (int) $gym['id'];
$on = fn(string $key) => gym_section_on($gym, $key);
$whours = $on('workhours') ? site_work_hours($pdo, $gid) : [];
$work_hours_days = ['Segunda-Sexta' => 'segunda', 'Sábado' => 'sabado', 'Domingo/Feriados' => 'domingo'];
usort($whours, fn($x, $y) => strcmp((string) $x['open'], (string) $y['open']));
$assunto = '';
if (isset($_GET['assunto'])) {
$assunto = $_GET['assunto'];
if ($assunto == 'pt'): $assunto = 'Informações - Personal Trainer';
elseif ($assunto == 'pt_cf'): $assunto = 'Informações - Personal Trainer CrossFit';
elseif ($assunto == 'insc'): $assunto = 'Informações - Inscrição no Ginásio';
elseif ($assunto == 'aula'): $assunto = 'Informações - Aula Experimental';
elseif ($assunto == 'nut'): $assunto = 'Informações - Nutricionista';
elseif ($assunto == 'fis'): $assunto = 'Informações - Fisioterapia';
endif;
}
echo view('contactos', [
'whours' => $whours,
'work_hours_days' => $work_hours_days,
'assunto' => $assunto,
'show' => $on('contactos'),
]);
echo view('ad_footer', $data);
echo view('footer', $data);