public static function ChargerContextes($auto = false) { $rechargement = true; self::$contextesChanges = false; while ($rechargement === true) { $rechargement = false; $contextes = self::$contextes; if (count($contextes) == 0) { self::AjouterContextePermanent(CONT_IDENTIFICATION, true); self::ChargerContexte(CONT_IDENTIFICATION); self::AjouterContextePermanent(CONT_LOCALISATION, false, true, PERIODERECH_LOCALISATION); self::ChargerContexte(CONT_LOCALISATION); self::AjouterContextePermanent(CONT_NAVIGATION, false, true, PERIODERECH_NAVIGATION); self::ChargerContexte(CONT_NAVIGATION); self::AjouterContextePermanent(CONT_ORIENTATION); self::ChargerContexte(CONT_ORIENTATION); } else { // On recharge d'abord les contextes temporaires. foreach ($contextes as $nomContexte => $contexte) { if ($contexte !== NULL && $contexte[CONTEXTE_ACTIF] === true && $contexte[CONTEXTE_PERMANENT] === false) { // Rechargement automatique. if ($auto === true && $contexte[CONTEXTE_RECHARGEMENTPERIODE] >= 1 && (time() - $contexte[CONTEXTE_DERNIERRECHARGEMENT] >= $contexte[CONTEXTE_RECHARGEMENTPERIODE] - 10000 || $contexte[CONTEXTE_DERNIERRECHARGEMENT] === -1)) { self::ChargerContexte($nomContexte, true); } else { self::ChargerContexte($nomContexte); } // Si dans le chargement d'un contexte on a changé les contextes, on recharge. if (self::$contextesChanges === true) { $rechargement = true; self::$contextesChanges = false; break; } } } // On recharge ensuite les contextes permanents. if ($rechargement === false) { foreach ($contextes as $nomContexte => $contexte) { if ($contexte !== NULL && $contexte[CONTEXTE_ACTIF] === true && $contexte[CONTEXTE_PERMANENT] === true) { // Rechargement automatique. if ($auto === true && $contexte[CONTEXTE_RECHARGEMENTPERIODE] >= 1 && (time() - $contexte[CONTEXTE_DERNIERRECHARGEMENT] >= $contexte[CONTEXTE_RECHARGEMENTPERIODE] - 10000 || $contexte[CONTEXTE_DERNIERRECHARGEMENT] === -1)) { self::ChargerContexte($nomContexte, true); } else { self::ChargerContexte($nomContexte); } // Si dans le chargement d'un contexte on a changé les contextes, on recharge. if (self::$contextesChanges === true) { $rechargement = true; self::$contextesChanges = false; break; } } } } } } }