Beispiel #1
0
 protected static function MiseAJourListe($liste)
 {
     // On vérifie qu'une liste identique n'a pas déjà fait le travail.
     if (!array_key_exists($liste->TypeSynchroPage(), self::$listesDejaRechargees)) {
         $listeDejaRechargee[$liste->TypeSynchroPage()] = true;
         $elements = $liste->GetElementsPourRechargement();
         $listeModifiee = false;
         foreach ($elements as $element) {
             if (array_key_exists(LISTE_ELEMENT_ACTION, $element)) {
                 if ($element[LISTE_ELEMENT_ACTION] === LISTE_ELEMACTION_MODIF && array_key_exists(LISTE_ELEMENT_MODIFIE, $element) && $element[LISTE_ELEMENT_MODIFIE] === true) {
                     $listeModifiee = true;
                 } else {
                     if ($element[LISTE_ELEMENT_ACTION] !== LISTE_ELEMACTION_MODIF) {
                         $listeModifiee = true;
                     }
                 }
             }
         }
         if ($listeModifiee === true) {
             if ($liste->ChangementPage() === true) {
                 GReponse::AjouterElementListe($liste->AncienTypeSynchroPage(), $liste->NbPages(), $liste->Numero(), $liste->TypeSynchroPage());
             } else {
                 GReponse::AjouterElementListe($liste->TypeSynchroPage(), $liste->NbPages());
             }
             // On met d'abord les éléments supprimés.
             foreach ($elements as $element) {
                 if (array_key_exists(LISTE_ELEMENT_ACTION, $element) && $element[LISTE_ELEMENT_ACTION] === LISTE_ELEMACTION_SUPP) {
                     GReponse::AjouterElementListeSuppression($element[LISTE_ELEMENT_ID]);
                 }
             }
             // Puis on met les éléments créés et modifiés dans l'ordre de la liste.
             foreach ($elements as $element) {
                 if (array_key_exists(LISTE_ELEMENT_ACTION, $element)) {
                     switch ($element[LISTE_ELEMENT_ACTION]) {
                         case LISTE_ELEMACTION_AJOUTCONTENU:
                             GReponse::AjouterElementListeAjoutContenu($element[LISTE_ELEMENT_ID], $element[LISTE_ELEMENT_CONTENU]);
                             break;
                         case LISTE_ELEMACTION_CREAT:
                             GReponse::AjouterElementListeCreation($element[LISTE_ELEMENT_CONTENU]);
                             break;
                         case LISTE_ELEMACTION_MODIF:
                             if (array_key_exists(LISTE_ELEMENT_MODIFIE, $element) && $element[LISTE_ELEMENT_MODIFIE] === true) {
                                 GReponse::AjouterElementListeModification($element[LISTE_ELEMENT_CONTENU]);
                             }
                             break;
                     }
                 }
             }
         } else {
             GReponse::AjouterElementListe($liste->TypeSynchroPage(), $liste->NbPages());
         }
     }
 }