예제 #1
0
 public static function GetDifferentielReferentielFichiersForSelect($nom)
 {
     $contexte = self::ContexteCourant();
     if (self::$referentiels[REF_TYPE_FICHIERS][$contexte][$nom][REF_FICHIERS_DIFFSELOK] === false) {
         self::$referentiels[REF_TYPE_FICHIERS][$contexte][$nom][REF_FICHIERS_DIFFSELOK] = true;
         $nouveauRef = self::GetReferentielFichiers($nom);
         $ancienRef = NULL;
         if ($contexte !== REF_CONTEXTE_AUCUN) {
             $ancienRef = GContexte::Referentiel($contexte, $nom, REF_TYPE_FICHIERS);
         } else {
             $ancienRef = GSession::Referentiel($nom, REF_TYPE_FICHIERS);
         }
         if ($ancienRef === NULL) {
             $ancienRef = array();
         }
         foreach ($nouveauRef as &$fichier) {
             foreach ($ancienRef as &$ancienFichier) {
                 if ($ancienFichier === $fichier) {
                     $ancienFichier = NULL;
                     $fichier = NULL;
                     break;
                 }
             }
         }
         $changementRef = false;
         $chemin = self::GetCheminReferentielFichiers($nom);
         foreach ($nouveauRef as &$fichier) {
             if ($fichier !== NULL) {
                 if ($changementRef === false) {
                     GReponse::AjouterElementSelect($nom);
                     $changementRef = true;
                 }
                 GReponse::AjouterElementSelectCreation($chemin . $fichier, $fichier, PATH_SERVER_HTTP . $chemin . $fichier);
             }
         }
         foreach ($ancienRef as &$ancienFichier) {
             if ($ancienFichier !== NULL) {
                 if ($changementRef === false && $ancienFichier !== NULL) {
                     GReponse::AjouterElementSelect($nom);
                     $changementRef = true;
                 }
                 GReponse::AjouterElementSelectSuppression($chemin . $ancienFichier);
             }
         }
     }
 }
 if ($groupe <= 0) {
     $jeu = GSession::Jeu(COL_ID);
     // Groupe de la communauté.
     if ($groupe == -1 || $jeu == NULL) {
         $mGroupe = new MGroupe();
         $mGroupe->AjouterColSelection(COL_ID);
         $mGroupe->AjouterColSelection(COL_NOM);
         $mGroupe->AjouterColSelection(COL_DESCRIPTION);
         $mGroupe->AjouterColCondition(COL_TYPEGROUPE, TYPEGROUPE_COMMUNAUTE);
         $mGroupe->AjouterColCondition(COL_COMMUNAUTE, GSession::Communaute(COL_ID));
         $mGroupe->Charger();
         $mGroupe->TypeGroupe()->Id(TYPEGROUPE_COMMUNAUTE);
         GSession::Jeu(COL_ID, NULL, true);
         GSession::Jeu(COL_LIBELLE, NULL, true);
         GReponse::AjouterElementSelect(COL_GROUPE);
         GReponse::AjouterElementSelectSuppression(-2);
         GReponse::AjouterElementSelectSelection(-1);
         $mListe = new MListeJeux();
         GReferentiel::AjouterReferentiel(COL_JEU, $mListe, array(COL_ID, array(COL_LIBELLE, COL_LIBELLE)), true);
         GReferentiel::GetDifferentielReferentielForSelect(COL_JEU, COL_ID, array(COL_LIBELLE, COL_LIBELLE), '');
     } else {
         if ($groupe == -2) {
             $mGroupe = new MGroupe();
             $mGroupe->AjouterColSelection(COL_ID);
             $mGroupe->AjouterColSelection(COL_NOM);
             $mGroupe->AjouterColSelection(COL_DESCRIPTION);
             $mGroupe->AjouterColCondition(COL_TYPEGROUPE, TYPEGROUPE_JEU);
             $mGroupe->AjouterColCondition(COL_COMMUNAUTE, GSession::Communaute(COL_ID));
             $mGroupe->AjouterColCondition(COL_JEU, $jeu);
             $mGroupe->Charger();
             $mGroupe->TypeGroupe()->Id(TYPEGROUPE_JEU);