prepare($sql); $st->execute($params); return $st->fetchAll(PDO::FETCH_ASSOC); } } $ideaId = isset($_GET['id']) ? (int)$_GET['id'] : 0; /* Préparer les données pour la carte AVANT le rendu (liste ou détail) */ if ($ideaId > 0) { // Vue détail: renvoyer l'idée courante (le JS filtrera lat/lng invalides) $mapIdeas = hol_q($pdo, " SELECT id, title, country, region, city, CAST(lat AS DECIMAL(9,6)) AS lat, CAST(lng AS DECIMAL(9,6)) AS lng, status, desired_start_date, desired_end_date FROM pf_holidays_ideas WHERE id = ? ", [$ideaId]); } else { // Vue liste: idées non archivées avec coordonnées $mapIdeas = hol_q($pdo, " SELECT id, title, country, region, city, CAST(lat AS DECIMAL(9,6)) AS lat, CAST(lng AS DECIMAL(9,6)) AS lng, status, desired_start_date, desired_end_date FROM pf_holidays_ideas WHERE status IN ('draft','shortlist','favorite','planned') AND lat IS NOT NULL AND lng IS NOT NULL "); } if ($ideaId > 0) { // Vue détail d'une idée $rows = hol_q($pdo, "SELECT * FROM pf_holidays_ideas WHERE id = ?", [$ideaId]); $idea = $rows[0] ?? null; if (!$idea) { echo '

Idée introuvable.

'; return; } $transport = hol_q($pdo, "SELECT * FROM pf_holidays_transport WHERE idea_id = ? ORDER BY created_at DESC", [$ideaId]); $lodging = hol_q($pdo, "SELECT * FROM pf_holidays_lodging WHERE idea_id = ? ORDER BY created_at DESC", [$ideaId]); $acts = hol_q($pdo, "SELECT * FROM pf_holidays_activities WHERE idea_id = ? ORDER BY created_at DESC", [$ideaId]); $budget = hol_q($pdo, "SELECT category, label, amount, per_person FROM pf_holidays_budget_items WHERE idea_id = ? ORDER BY created_at DESC", [$ideaId]); $sumRow = hol_q($pdo, " SELECT SUM(CASE WHEN per_person=0 THEN amount ELSE 0 END) AS fixed_total, SUM(CASE WHEN per_person=1 THEN amount ELSE 0 END) AS per_person_total FROM pf_holidays_budget_items WHERE idea_id = ? ", [$ideaId])[0] ?? ['fixed_total' => 0, 'per_person_total' => 0]; $fixedTotal = (float)($sumRow['fixed_total'] ?? 0); $ppTotal = (float)($sumRow['per_person_total'] ?? 0); ?>

← Retour

• Dates: • Saison: • Durée idéale: j • Statut:

Transport

Hébergement

Activités

Budget

Fixe: € • Par personne:

Idées de vacances

Vacances planifiées

Dates souhaitées, prêtes à être réservées.

planned

• Dates: • Durée idéale: j

Ouvrir

Idées

Brouillons, favoris, shortlist.

• Dates: • Saison: • Durée idéale: j

Ouvrir

Archivées