query("SELECT id, name, user_id, role, care_modes FROM pf_people WHERE is_active = 1 ORDER BY id ASC"); $familyPeople = $stmtPeople->fetchAll(PDO::FETCH_ASSOC); $parents = []; $kids = []; // Liste de tous les modes de garde actifs dans le foyer $activeCareModes = []; foreach ($familyPeople as $p) { $role = strtolower($p['role'] ?? ''); if ($role === 'parent') { // --- 🟢 NOUVEAU : Récupération dynamique des types de congés du parent --- $stmtLT = $pdo->prepare(" SELECT DISTINCT leave_type FROM ( SELECT leave_type FROM pf_leave_balances WHERE person_id = ? UNION SELECT leave_type FROM pf_leave_snapshots WHERE person_id = ? ) as t ORDER BY leave_type = 'CP' DESC, leave_type = 'JRA' DESC, leave_type = 'JA' DESC, leave_type ASC "); $stmtLT->execute([$p['id'], $p['id']]); $lTypes = $stmtLT->fetchAll(PDO::FETCH_COLUMN); // Fallback de sécurité si aucun compteur n'est encore paramétré if (empty($lTypes)) { $lTypes = ['CP', 'JRA', 'JA']; } $p['leave_types'] = $lTypes; $parents[] = $p; } elseif ($role === 'enfant') { // Décodage sécurisé des modes de garde $modes = json_decode($p['care_modes'] ?? '[]', true); if (!is_array($modes)) $modes = []; $p['modes'] = $modes; $kids[] = $p; foreach ($modes as $m) { $activeCareModes[$m] = true; } } } $activeCareModes = array_keys($activeCareModes); // On récupère uniquement les noms uniques $pageTitle = tr('fc_page_title'); $activePage = "family-calendar"; $mainClass = "pf-family-calendar"; $pageCss = "/modules/family-calendar/family-calendar.css"; require __DIR__ . '/header.php'; ?>

📸

⚙️

$parent): $parentClass = ($index % 2 === 0) ? 'col-alex' : 'col-laia'; $colspan = count($parent['leave_types']) * 2; ?> $parent): $parentClass = ($index % 2 === 0) ? 'col-alex' : 'col-laia'; foreach ($parent['leave_types'] as $lt): ?> $parent): $parentClass = ($index % 2 === 0) ? 'col-alex' : 'col-laia'; foreach ($parent['leave_types'] as $lt): ?>
Maladie

$mode): $hue = ($index * 137) % 360; ?>
Maladie