Example #1
0
 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;
                         }
                     }
                 }
             }
         }
     }
 }