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()); } } }