public function modifier()
 {
     $authentification = new archiAuthentification();
     $majOK = false;
     $formulaire = new formGenerator();
     $mail = new mailObject();
     $avatarFile = new fileObject();
     $image = new imageObject();
     // suppression de l'avatar si la checkbox est cochée
     if (isset($this->variablesPost['supprFichierAvatar']) && $this->variablesPost['supprFichierAvatar'] == '1') {
         if (file_exists($this->getCheminPhysique() . "images/avatar/" . $this->variablesPost['idUtilisateurModif'] . "/avatar.jpg")) {
             unlink($this->getCheminPhysique() . "images/avatar/" . $this->variablesPost['idUtilisateurModif'] . "/avatar.jpg");
         }
         if (file_exists($this->getCheminPhysique() . "images/avatar/" . $this->variablesPost['idUtilisateurModif'] . "/original.jpg")) {
             unlink($this->getCheminPhysique() . "images/avatar/" . $this->variablesPost['idUtilisateurModif'] . "/original.jpg");
         }
     }
     // gestion de l'image de l'avatar
     if (isset($this->variablesPost['idUtilisateurModif']) && $this->variablesPost['idUtilisateurModif'] != '' && isset($_FILES['fichierAvatar']['name']) && $_FILES['fichierAvatar']['name'] != '') {
         if (pia_strtolower($avatarFile->getExtensionFromFile($_FILES['fichierAvatar']['name'])) == 'jpg') {
             if (!file_exists($this->getCheminPhysique() . "images/avatar/" . $this->variablesPost['idUtilisateurModif'] . "/")) {
                 if (!$avatarFile->creerRepertoire($this->getCheminPhysique() . "images/avatar/" . $this->variablesPost['idUtilisateurModif'] . "/")) {
                     echo "archiUtilisateur::modifier => erreur de création du répertoire pour l'image avatar<br>";
                 }
             }
             $avatarFile->handleUploadedFileSimpleMoveTo(array('inputFileName' => 'fichierAvatar', 'renameFileTo' => 'original.jpg', 'repertoireDestination' => $this->getCheminPhysique() . "images/avatar/" . $this->variablesPost['idUtilisateurModif'] . "/"));
             // ensuite on redimensionne l'image
             $image->redimension($this->getCheminPhysique() . "images/avatar/" . $this->variablesPost['idUtilisateurModif'] . "/original.jpg", 'jpg', $this->getCheminPhysique() . "images/avatar/" . $this->variablesPost['idUtilisateurModif'] . "/avatar.jpg", 120);
         } else {
             echo "Le fichier de l'avatar doit être au format jpg.";
         }
     }
     // gestion infos du compte
     if ($authentification->estConnecte()) {
         if ($authentification->estAdmin()) {
             // cas d'un utilisateur connecté et admin et dans l'admin
             if (isset($this->variablesGet['modeAffichage']) && $this->variablesGet['modeAffichage'] == 'utilisateurDetail') {
                 $tabForm = $this->getUtilisateurFieldsForAdmin();
             } elseif (isset($this->variablesGet['modeAffichage']) && $this->variablesGet['modeAffichage'] == 'profil') {
                 $tabForm = $this->getUtilisateurFieldsForAdminProfil();
             }
             $errors = $formulaire->getArrayFromPost($tabForm);
             if (count($errors) == 0) {
                 $sqlChampDisplayNumeroArchiveField = "";
                 $sqlChampDisplayDateFinField = "";
                 if (isset($this->variablesGet['modeAffichage']) && $this->variablesGet['modeAffichage'] == 'utilisateurDetail') {
                     $sqlChampDisplayNumeroArchiveField = ", displayNumeroArchiveFieldInSaisieEvenement=\"" . $tabForm['displayNumeroArchiveField']['value'] . "\"";
                     $sqlChampDisplayDateFinField = ", displayDateFinFieldInSaisieEvenement=\"" . $tabForm['displayDateFinField']['value'] . "\"";
                 }
                 // test sur le mot de passe
                 if ($tabForm['mdp1']['value'] != '') {
                     // un mot de passe a ete entré ,  donc si pas d'erreur ,  on peut faire l'ajout a la base
                     $reqUpdate = 'update utilisateur 
                             set nom="' . $tabForm['nom']['value'] . '", 
                                 prenom="' . $tabForm['prenom']['value'] . '", 
                                 mail="' . $tabForm['mail']['value'] . '", 
                                 motDePasse="' . md5($tabForm['mdp1']['value']) . '", 
                                 urlSiteWeb="' . $tabForm['urlSiteWeb']['value'] . '", 
                                 idProfil="' . $tabForm['idProfil']['value'] . '", 
                                 alerteMail="' . $tabForm['alerteMail']['value'] . '", 
                                 idVilleFavoris="' . $tabForm['ville']['value'] . '", 
                                 canCopyright="' . $tabForm['canCopyright']['value'] . '", 
                                 canModifyTags="' . $tabForm['canModifyTags']['value'] . '", 
                                 canAddWithoutStreet="' . $tabForm['canAddWithoutStreet']['value'] . '", 
                                 alerteCommentaires="' . $tabForm['alerteCommentaires']['value'] . '", 
                                 idPeriodeEnvoiMailsRegroupes="' . $tabForm['idPeriodeEnvoiMailsRegroupes']['value'] . '", 
                                 alerteAdresses="' . $tabForm['alerteAdresses']['value'] . '", 
                                 displayProfilContactForm="' . $tabForm['afficheFormulaireContactPersoProfilPublic']['value'] . '"
                                 ' . $sqlChampDisplayNumeroArchiveField . '
                                 ' . $sqlChampDisplayDateFinField . '
                             where idUtilisateur="' . $this->variablesPost['idUtilisateurModif'] . '"
                         ';
                     if ($resUpdate = $this->connexionBdd->requete($reqUpdate)) {
                         $majOK = true;
                     }
                 } else {
                     //aucun mot de passe entré ,  on ne le met pas a jour
                     $reqUpdate = 'update utilisateur 
                             set nom="' . $tabForm['nom']['value'] . '", 
                                 prenom="' . $tabForm['prenom']['value'] . '", 
                                 mail="' . $tabForm['mail']['value'] . '", 
                                 urlSiteWeb="' . $tabForm['urlSiteWeb']['value'] . '", 
                                 idProfil="' . $tabForm['idProfil']['value'] . '", 
                                 alerteMail="' . $tabForm['alerteMail']['value'] . '", 
                                 idVilleFavoris="' . $tabForm['ville']['value'] . '", 
                                 canCopyright="' . $tabForm['canCopyright']['value'] . '", 
                                 canModifyTags="' . $tabForm['canModifyTags']['value'] . '", 
                                 canAddWithoutStreet="' . $tabForm['canAddWithoutStreet']['value'] . '", 
                                 idPeriodeEnvoiMailsRegroupes="' . $tabForm['idPeriodeEnvoiMailsRegroupes']['value'] . '", 
                                 alerteCommentaires="' . $tabForm['alerteCommentaires']['value'] . '", 
                                 alerteAdresses="' . $tabForm['alerteAdresses']['value'] . '", 
                                 displayProfilContactForm="' . $tabForm['afficheFormulaireContactPersoProfilPublic']['value'] . '"
                                 ' . $sqlChampDisplayNumeroArchiveField . '
                                 ' . $sqlChampDisplayDateFinField . '
                             where idUtilisateur="' . $this->variablesPost['idUtilisateurModif'] . '"
                         ';
                     if ($resUpdate = $this->connexionBdd->requete($reqUpdate)) {
                         $majOK = true;
                     }
                 }
                 if (isset($this->variablesGet['modeAffichage']) && $this->variablesGet['modeAffichage'] == 'utilisateurDetail') {
                     // Si un utilisateur est banni,  on inactive son compte et on met le champs compteBanni à 1
                     $this->majBannissementUtilisateur(array('idUtilisateur' => $this->variablesPost['idUtilisateurModif'], 'champsBanissementApresValidationFormulaire' => $tabForm['bannirUtilisateur']['value']));
                 }
             }
         } elseif ($this->getIdProfilFromUtilisateur($authentification->getIdUtilisateur()) == '3') {
             // cas d'un utilisateur connecté moderateurs
             $tabForm = $this->getUtilisateurFieldsForModerators();
             $errors = $formulaire->getArrayFromPost($tabForm);
             if (count($errors) == 0) {
                 // test sur le mot de passe
                 if ($tabForm['mdp1']['value'] != '') {
                     // un mot de passe a ete entré ,  donc si pas d'erreur ,  on peut faire l'ajout a la base
                     $reqUpdate = 'update utilisateur 
                             set nom="' . $tabForm['nom']['value'] . '", 
                                 prenom="' . $tabForm['prenom']['value'] . '", 
                                 mail="' . $tabForm['mail']['value'] . '", 
                                 motDePasse="' . md5($tabForm['mdp1']['value']) . '", 
                                 urlSiteWeb="' . $tabForm['urlSiteWeb']['value'] . '", 
                                 idVilleFavoris="' . $tabForm['ville']['value'] . '", 
                                 idPeriodeEnvoiMailsRegroupes="' . $tabForm['idPeriodeEnvoiMailsRegroupes']['value'] . '", 
                                 alerteCommentaires="' . $tabForm['alerteCommentaires']['value'] . '", 
                                 alerteAdresses="' . $tabForm['alerteAdresses']['value'] . '", 
                                 alerteMail="' . $tabForm['alerteMail']['value'] . '", 
                                 displayProfilContactForm="' . $tabForm['afficheFormulaireContactPersoProfilPublic']['value'] . '"
                             where idUtilisateur="' . $this->variablesPost['idUtilisateurModif'] . '"
                         ';
                     if ($resUpdate = $this->connexionBdd->requete($reqUpdate)) {
                         $majOK = true;
                     }
                 } else {
                     //aucun mot de passe entré ,  on ne le met pas a jour
                     $reqUpdate = 'update utilisateur 
                             set nom="' . $tabForm['nom']['value'] . '", 
                                 prenom="' . $tabForm['prenom']['value'] . '", 
                                 mail="' . $tabForm['mail']['value'] . '", 
                                 idVilleFavoris="' . $tabForm['ville']['value'] . '", 
                                 urlSiteWeb="' . $tabForm['urlSiteWeb']['value'] . '", 
                                 alerteCommentaires="' . $tabForm['alerteCommentaires']['value'] . '", 
                                 alerteAdresses="' . $tabForm['alerteAdresses']['value'] . '", 
                                 idPeriodeEnvoiMailsRegroupes="' . $tabForm['idPeriodeEnvoiMailsRegroupes']['value'] . '", 
                                 alerteMail="' . $tabForm['alerteMail']['value'] . '", 
                                 displayProfilContactForm="' . $tabForm['afficheFormulaireContactPersoProfilPublic']['value'] . '"
                             where idUtilisateur="' . $this->variablesPost['idUtilisateurModif'] . '"
                         ';
                     if ($resUpdate = $this->connexionBdd->requete($reqUpdate)) {
                         $majOK = true;
                     }
                 }
             }
         } else {
             // cas d'un utilisateur connecté non admin
             $tabForm = $this->getUtilisateurFieldsNotAdmin();
             $errors = $formulaire->getArrayFromPost($tabForm);
             if (count($errors) == 0) {
                 // test sur le mot de passe
                 if ($tabForm['mdp1']['value'] != '') {
                     // un mot de passe a ete entré ,  donc si pas d'erreur ,  on peut faire l'ajout a la base
                     $reqUpdate = 'update utilisateur 
                             set nom="' . $tabForm['nom']['value'] . '", 
                                 prenom="' . $tabForm['prenom']['value'] . '", 
                                 mail="' . $tabForm['mail']['value'] . '", 
                                 urlSiteWeb="' . $tabForm['urlSiteWeb']['value'] . '", 
                                 motDePasse="' . md5($tabForm['mdp1']['value']) . '", 
                                 idVilleFavoris="' . $tabForm['ville']['value'] . '", 
                                 alerteCommentaires="' . $tabForm['alerteCommentaires']['value'] . '", 
                                 alerteAdresses="' . $tabForm['alerteAdresses']['value'] . '", 
                                 alerteMail="' . $tabForm['alerteMail']['value'] . '", 
                                 displayProfilContactForm="' . $tabForm['afficheFormulaireContactPersoProfilPublic']['value'] . '"
                             where idUtilisateur="' . $this->variablesPost['idUtilisateurModif'] . '"
                         ';
                     if ($resUpdate = $this->connexionBdd->requete($reqUpdate)) {
                         $majOK = true;
                     }
                 } else {
                     //aucun mot de passe entré ,  on ne le met pas a jour
                     $reqUpdate = 'update utilisateur 
                             set nom="' . $tabForm['nom']['value'] . '", 
                                 prenom="' . $tabForm['prenom']['value'] . '", 
                                 mail="' . $tabForm['mail']['value'] . '", 
                                 urlSiteWeb="' . $tabForm['urlSiteWeb']['value'] . '", 
                                 idVilleFavoris="' . $tabForm['ville']['value'] . '", 
                                 alerteCommentaires="' . $tabForm['alerteCommentaires']['value'] . '", 
                                 alerteAdresses="' . $tabForm['alerteAdresses']['value'] . '", 
                                 alerteMail="' . $tabForm['alerteMail']['value'] . '", 
                                 displayProfilContactForm="' . $tabForm['afficheFormulaireContactPersoProfilPublic']['value'] . '"
                             where idUtilisateur="' . $this->variablesPost['idUtilisateurModif'] . '"
                         ';
                     if ($resUpdate = $this->connexionBdd->requete($reqUpdate)) {
                         $majOK = true;
                     }
                 }
             }
         }
     } else {
         echo "Vous n'êtes pas connecté.<br>";
     }
     if ($majOK && !$authentification->estAdmin()) {
         echo "La mise à jour a été effectuée";
         // envoi d'un mail a l'admin
         $message = "";
         $message .= "Un utilisateur a modifié son compte ,  pour vérifier : <a href='" . $this->creerUrl('', 'utilisateurDetail', array('idUtilisateur' => $this->variablesPost['idUtilisateurModif'])) . "'>Cliquez ici</a>";
         $mail->sendMailToAdministrators($mail->getSiteMail(), "Un utilisateur a modifié son compte", $message, '', true);
         $this->ajouteMailEnvoiRegroupesAdministrateurs(array('contenu' => $message, 'idTypeMailRegroupement' => 7, 'criteres' => ""));
         // on met a jour la session contenant la ville favorite ,  si on est soi meme l'utilisateur courant
         if ($this->variablesPost['idUtilisateurModif'] == $authentification->getIdUtilisateur()) {
             $this->session->addToSession("idVilleFavoris", $tabForm['ville']['value']);
         }
     } elseif ($authentification->estAdmin()) {
         echo "La mise à jour a été effectuée";
         if ($this->variablesPost['idUtilisateurModif'] == $authentification->getIdUtilisateur()) {
             $this->session->addToSession("idVilleFavoris", $tabForm['ville']['value']);
         }
     } else {
         echo "La mise à jour n'a pas pu être effectuée.";
     }
     //echo $this->afficher($tabForm, $this->variablesPost['idUtilisateurModif']);
 }
 /**
  * Modifier une actualité
  * 
  * @param array $params Paramètres
  * 
  * @return void
  * */
 public function modifierActualite($params = array())
 {
     if (isset($this->variablesPost['idActualite']) && $this->variablesPost['idActualite'] != '') {
         $authentification = new archiAuthentification();
         $idActualite = $this->variablesPost['idActualite'];
         $d = new dateObject();
         $desactive = 0;
         if (isset($this->variablesPost['desactive']) && $this->variablesPost['desactive'] == '1') {
             $desactive = 1;
         }
         $envoi = 0;
         if (isset($this->variablesPost['envoiMailHebdomadaire']) && $this->variablesPost['envoiMailHebdomadaire'] == '1') {
             $envoi = 1;
         }
         $req = "UPDATE actualites SET \n                titre = \"" . mysql_real_escape_string($this->variablesPost['titre']) . "\",\n                sousTitre = \"" . mysql_real_escape_string($this->variablesPost['sousTitre']) . "\",\n                `date` = \"" . $d->toBdd(mysql_real_escape_string($this->variablesPost['date'])) . "\",\n                texte = \"" . mysql_real_escape_string($this->variablesPost['texte']) . "\",\n                urlFichier = \"" . mysql_real_escape_string($this->variablesPost['urlFichier']) . "\",\n                fichierPdf = \"" . mysql_real_escape_string($this->variablesPost['fichierPdf']) . "\",\n                desactive = '" . $desactive . "',\n                texteMailHebdomadaire = \"" . mysql_real_escape_string($this->variablesPost['texteMailHebdomadaire']) . "\",\n                envoiMailHebdomadaire = '" . $envoi . "'\n                WHERE idActualite = '" . $idActualite . "'\n            ";
         $res = $this->connexionBdd->requete($req);
         //photoIllustration = \"".mysql_real_escape_string($this->variablesPost['photoIllustration'])."\",
         $f = new fileObject();
         if (!file_exists($this->getCheminPhysique() . "images/actualites/" . $idActualite . "/")) {
             mkdir($this->getCheminPhysique() . "images/actualites/" . $idActualite . "/");
         }
         // gestion de l'upload
         if (isset($_FILES['photoIllustration']) && !$_FILES['photoIllustration']['error']) {
             if (file_exists($this->getCheminPhysique() . "images/actualites/" . $idActualite . "/illustration200.jpg")) {
                 unlink($this->getCheminPhysique() . "images/actualites/" . $idActualite . "/illustration200.jpg");
             }
             $f->handleUploadedFileSimpleMoveTo(array('inputFileName' => 'photoIllustration', 'redimensionneImageConfig' => array(200 => array('destination' => $this->getCheminPhysique() . "images/actualites/" . $idActualite . "/illustration200.jpg"))));
             // on met a jour la bdd , meme si dans les prochaines actu cela ne sert a rien de garder le champs , vu le fonctionnement, on le garde pour les anciennes actus
             $reqIllustration = "UPDATE actualites SET photoIllustration='illustration200.jpg' WHERE idActualite='" . $idActualite . "' ";
             $resIllustration = $this->connexionBdd->requete($reqIllustration);
         }
         // on verifie dans le repertoire d'uploadMultiple pour voir s'il y a des images a transferer
         if (file_exists($this->getCheminPhysique() . "images/uploadMultipleActualites/")) {
             $f->convertDirectoryFilesNamesToUTF8(array('repertoire' => $this->getCheminPhysique() . "images/uploadMultipleActualites/"));
             $arrayFiles = $f->getListeFichiersArrayFrom($this->getCheminPhysique() . "images/uploadMultipleActualites/");
             foreach ($arrayFiles as $indice => $fichier) {
                 // on deplace tous les fichiers dans le repertoire de l'actu , ceux qui auront le meme nom seront ecrasés.
                 if ($fichier != '.' && $fichier != '..') {
                     rename($this->getCheminPhysique() . "images/uploadMultipleActualites/" . $fichier, $this->getCheminPhysique() . "images/actualites/" . $idActualite . "/" . $f->removeSpecialCharFromFileName($fichier));
                 }
             }
             $f->convertDirectoryFilesNamesToUTF8(array('repertoire' => $this->getCheminPhysique() . "images/actualites/{$idActualite}/"));
         }
         if ($this->variablesPost['urlFichier'] == '') {
             // evite de creer un fichier pdf pour rien, si urlFichier est renseigné, c'est que c'est une redirection vers une page , pas du texte saisi dans la news
             // creation automatique du fichier pdf
             $pdfObject = new pdfObject();
             $titre = "<div align=center><h2>" . stripslashes($this->variablesPost['titre']) . "</h2></div><br>";
             $sousTitre = "<div align=center><h3>" . stripslashes($this->variablesPost['sousTitre']) . "</h3></div><br>";
             $texte = stripslashes($this->variablesPost['texte']);
             $pdfObject->setContent(stripslashes($titre . $sousTitre . $texte));
             $pdfObject->writeToFile($this->getCheminPhysique() . "images/actualites/{$idActualite}/versionPdf.pdf");
             if (file_exists($this->getCheminPhysique() . "images/actualites/{$idActualite}/versionPdf.pdf")) {
                 $reqUpdatePdf = "UPDATE actualites SET fichierPdf='versionPdf.pdf' WHERE idActualite = '{$idActualite}'";
                 $resUpdatePdf = $this->connexionBdd->requete($reqUpdatePdf);
             }
         }
         if (isset($this->variablesGet['previsualisationMail']) && $this->variablesGet['previsualisationMail'] == '1') {
             $preview = isset($_GET["preview"]) ? "&preview=1" : "";
             $testMail = isset($_GET["testMail"]) ? "&testMail=1" : "";
             echo "<script>location.href='" . $this->getUrlRacine() . "/script/cronMailsNouvellesAdresses.php?modePrevisualisationAdmin=1&idActualite={$idActualite}&idUtilisateur=" . $authentification->getIdUtilisateur() . $preview . $testMail . "';</script>";
             //$this->creerUrl('','', array("modePrevisualisationAdmin"=>1,"idActualite"=>$idActualite,"idUtilisateur"=>$authentification->getIdUtilisateur()))
         }
     }
 }