public function ajouter($parametres = array(), $liaisonsExternes = array())
 {
     $html = "";
     $this->fields = array();
     $reqFieldsListe = "SHOW COLUMNS FROM " . $parametres['tableName'] . ";";
     $resFieldsListe = $this->connexionBdd->requete($reqFieldsListe);
     // fabrication de la chaine requete d'ajout
     $arrayFields = array();
     $primaryKeyField = "";
     while ($fetchFields = mysql_fetch_assoc($resFieldsListe)) {
         if ($fetchFields['Key'] != 'PRI') {
             //$requeteModification.=$fetchFields['Field']."='".$this->variablesPost[$fetchFields['Field']]."'";
             $arrayFields[] = $fetchFields['Field'];
             if (preg_match("/date/i", $fetchFields['Type'])) {
                 $d = new dateObject();
                 if ((pia_ereg("/", $this->variablesPost[$fetchFields['Field']]) || pia_strlen($this->variablesPost[$fetchFields['Field']]) > 3) && !pia_ereg("-", $this->variablesPost[$fetchFields['Field']])) {
                     $arrayValues[] = $d->toBdd($d->convertYears($this->variablesPost[$fetchFields['Field']]));
                 } else {
                     $arrayValues[] = $this->variablesPost[$fetchFields['Field']];
                 }
             } else {
                 $arrayValues[] = $this->variablesPost[$fetchFields['Field']];
             }
         } else {
             $primaryKeyField = $fetchFields['Field'];
         }
     }
     $listeFields = implode(', ', $arrayFields);
     $listeValues = implode('", "', $arrayValues);
     $requeteAjout = "insert into " . $parametres['tableName'] . " (" . $listeFields . ") VALUES (\"" . $listeValues . "\")";
     $this->connexionBdd->requete($requeteAjout);
     $idNouvelElement = mysql_insert_id();
     // gestion des champs supplementaires du formulaire qui ne sont pas des champs de la base de donnée
     if (isset($parametres['fieldsNotInBdd']) && is_array($parametres['fieldsNotInBdd']) && count($parametres['fieldsNotInBdd']) > 0) {
         foreach ($parametres['fieldsNotInBdd'] as $indice => $valuesFields) {
             // traitement specifiques aux champs qui ne sont pas liés a la base de donnée
             switch ($valuesFields['type']) {
                 case 'uploadImageLiee':
                     // ce cas d'upload n'ajoute pas de nom de fichier dans la base ,  on va en principe se referer a l'identifiant de la table courante
                     // exemple ,  on ajoute une image sur un personne,  l'image aura donc pour nom de fichier "idPersonne".jpg par exemple en fonction du parametrage
                     if (isset($_FILES[$valuesFields['name']]) && $_FILES[$valuesFields['name']]['error']) {
                         switch ($_FILES[$valuesFields['name']]['error']) {
                             case 1:
                                 // UPLOAD_ERR_INI_SIZE
                                 echo "Le fichier dépasse la limite autorisée par le serveur !";
                                 break;
                             case 2:
                                 // UPLOAD_ERR_FORM_SIZE
                                 echo "Le fichier dépasse la limite autorisée dans le formulaire HTML !";
                                 break;
                             case 3:
                                 // UPLOAD_ERR_PARTIAL
                                 echo "L'envoi du fichier a été interrompu pendant le transfert !";
                                 break;
                             case 4:
                                 // UPLOAD_ERR_NO_FILE
                                 echo "Le fichier que vous avez envoyé a une taille nulle !";
                                 break;
                         }
                     } else {
                         // pas d'erreur d'upload
                         $i = new imageObject();
                         // classe image du framework
                         $f = new fileObject();
                         if (isset($valuesFields['redimFilesAndSizesConfig']) && is_array($valuesFields['redimFilesAndSizesConfig']) && count($valuesFields['redimFilesAndSizesConfig']) > 0) {
                             foreach ($valuesFields['redimFilesAndSizesConfig'] as $indiceConfigRedims => $valueConfigRedims) {
                                 $fichierParametre = "";
                                 // on remplace le parametre par une valeur s'il y en a un
                                 $valueReplacementBdd = "";
                                 // valeur que va prendre la parametre a remplacer
                                 $matches = array();
                                 preg_match("/\\#\\#\\#bddField\\[(.+)\\]\\#\\#\\#/", $valueConfigRedims['nomFichierDestinationParametre'], $matches);
                                 // on detecte si il y a un parametre a remplacer par une valeur de la base de donnée ou pas
                                 if (count($matches) > 0) {
                                     $req = "SELECT " . $matches[1] . " FROM " . $parametres['tableName'] . " WHERE " . $primaryKeyField . "='" . $idNouvelElement . "'";
                                     $res = $this->connexionBdd->requete($req);
                                     $fetchValeurCouranteBdd = mysql_fetch_assoc($res);
                                     $valueReplacementBdd = $fetchValeurCouranteBdd[$matches[1]];
                                     $fichierParametre = str_replace($matches[0], $valueReplacementBdd, $valueConfigRedims['nomFichierDestinationParametre']);
                                 }
                                 $imageType = strtolower($f->getExtensionFromFile($_FILES[$valuesFields['name']]['name']));
                                 if (file_exists($valueConfigRedims['repertoireDestination'] . $fichierParametre)) {
                                     // si un fichier du meme nom existe ,  on l'efface
                                     unlink($valueConfigRedims['repertoireDestination'] . $fichierParametre);
                                 }
                                 if ($fichierParametre != '') {
                                     if (isset($valueConfigRedims['taille'])) {
                                         $i->redimension($_FILES[$valuesFields['name']]['tmp_name'], $imageType, $valueConfigRedims['repertoireDestination'] . $fichierParametre, $valueConfigRedims['taille'], array('redimOnlyIfFileSizesSuperiorToRedimValue' => true));
                                     }
                                 } else {
                                     echo "Le fichier n'a pu être redimensionné. Erreur de parametrage dans la fonction du framework formGenerator::modifier()<br>";
                                 }
                             }
                             unlink($_FILES[$valuesFields['name']]['tmp_name']);
                         }
                     }
                     break;
             }
         }
     }
     return $html;
 }
 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']);
 }
 /**
  * Affichage du formulaire d'ajout/édition
  * 
  * @param array $params Paramètres
  * 
  * @return string HTML
  * */
 public function formulaireActualites($params = array())
 {
     $html = "";
     $f = new formGenerator();
     $d = new dateObject();
     $c = new calqueObject();
     $this->addToJsHeader("<script>" . $c->getJSScrollHeight() . "</script>");
     $html .= $c->getDiv(array('width' => 900, 'lienSrcIFrame' => '', 'titre' => 'Prévisualisation'));
     $idActualite = 0;
     $boutonNouveau = "";
     $boutonSupprimer = "";
     $boutonPrevisualiser = "<input type='button' name='previsualisation' value='Prévisualisation' onclick=\"tinyMCE.triggerSave(true,true);document.getElementById('" . $c->getJSDivId() . "').style.top=(50+getScrollHeight())+'px';document.getElementById('" . $c->getJSIFrameId() . "').src='" . $this->creerUrl('', 'previsualisationActualite', array()) . "';" . $c->getJSOpenPopup() . "\">";
     $boutonValiderEtEnvoiMailPrevisualisation = "<input type='button' name='valideEtEnvoi' id='valideEtEnvoi' value=\"Envoyer le mail tout de suite\" onclick=\"document.getElementById('formActu').action+='&previsualisationMail=1';document.getElementById('formActu').submit();\">\n        <input type='button' name='valideEtPrev' id='valideEtPrev' value='" . _("Prévisualiser le mail") . "' onclick=\"document.getElementById('formActu').action+='&previsualisationMail=1&preview=1';document.getElementById('formActu').setAttribute('target', '_blank'); document.getElementById('formActu').submit();\">\n        <input type='button' name='testMail' id='testMail' value='" . _("Envoyer un mail de test") . "' onclick=\"document.getElementById('formActu').action+='&previsualisationMail=1&preview=1&testMail=1';document.getElementById('formActu').setAttribute('target', '_blank'); document.getElementById('formActu').submit();\">\n        ";
     if (isset($this->variablesGet['archiIdActualite']) && $this->variablesGet['archiIdActualite'] != '') {
         $idActualite = $this->variablesGet['archiIdActualite'];
         $reqActu = "SELECT date,titre, sousTitre,photoIllustration, texte,urlFichier, fichierPdf, desactive,texteMailHebdomadaire,envoiMailHebdomadaire FROM actualites WHERE idActualite='" . $idActualite . "'";
         $resActu = $this->connexionBdd->requete($reqActu);
         $fetchActu = mysql_fetch_assoc($resActu);
         $date = $d->toFrenchAffichage($fetchActu['date']);
         $titre = $fetchActu['titre'];
         $sousTitre = $fetchActu['sousTitre'];
         $illustration = $fetchActu['photoIllustration'];
         $description = $fetchActu['texte'];
         $urlFichier = $fetchActu['urlFichier'];
         $fichierPdf = $fetchActu['fichierPdf'];
         $isDesactivated = $fetchActu['desactive'];
         $texteMailHebdomadaire = $fetchActu['texteMailHebdomadaire'];
         $isEnvoi = $fetchActu['envoiMailHebdomadaire'];
         $formAction = $this->creerUrl('modifierActu', 'adminActualites', array('archiIdActualite' => $idActualite));
         $boutonNouveau = "<input type='button' name='nouveauButton' value='Nouveau' onclick=\"location.href='" . $this->creerUrl('', 'adminActualites', array()) . "'\">";
         $boutonSupprimer = "<input type='button' name='supprimerBouton' value='Supprimer' onclick=\"location.href='" . $this->creerUrl('supprimerActu', 'adminActualites', array("idActuSuppr" => $idActualite)) . "'\">";
     } else {
         $date = date("d/m/Y");
         $titre = "";
         $sousTitre = "";
         $illustration = "";
         $description = "";
         $urlFichier = "";
         $fichierPdf = "";
         $isDesactivated = 0;
         $texteMailHebdomadaire = "";
         $isEnvoi = 0;
         $formAction = $this->creerUrl('ajouterActu', 'adminActualites', array('check' => 1));
         // check sert juste a ne pas avoir a gerer le ? ou le & dans l'url quand on rajoute un parametre en js
     }
     $idActualitePathImage = "";
     if ($idActualite != 0) {
         $idActualitePathImage = $idActualite;
     }
     // bibliotheques d'images
     $fileObject = new fileObject();
     $arrayFiles = $fileObject->getListeFichiersArrayFrom($this->getCheminPhysique() . "images/actualites/" . $idActualite . "/");
     $listeFichiers = "";
     $t = new tableau();
     foreach ($arrayFiles as $indiceFichier => $fichier) {
         if (strtolower($fileObject->getExtensionFromFile($fichier)) == 'jpg' || strtolower($fileObject->getExtensionFromFile($fichier)) == 'gif' || strtolower($fileObject->getExtensionFromFile($fichier)) == 'png') {
             $t->addValue("<a onclick='injectInTinyMce(\"<img src=\\\"" . $this->getUrlImage() . "actualites/" . $idActualite . "/" . str_replace("'", "\\\\'", $fichier) . "\\\" border=0>\");'><img src=\"" . $this->getUrlImage() . "actualites/" . $idActualite . "/" . $fichier . "\" border=0 width=100 height=100></a>");
             $t->addValue("{$fichier}");
         } else {
             $t->addValue("&nbsp;");
             $t->addValue("{$fichier}");
         }
     }
     $listeFichiers = $t->createTable(2);
     $gestionBibliothequeImages = "Bibliothèque d'images de l'actualité <span style='font-size:11px;'>(cliquez sur une image pour l'inserer à la position du curseur)</span> : <div id='listeFichiers' style='background-color:#87CEFF;width:300px;height:200px;overflow:scroll;'>" . $listeFichiers . "</div>";
     $this->addToJsHeader("<script>\n                function injectInTinyMce(txt)\n                {\n                    tinyMCE.execInstanceCommand('texte','mceInsertContent',false,txt);\n                }\n                \n                function goRedim(idActualite)\n                {\n                    // validation du formulaire pour creer l'identifiant de l'actu et pouvoir ranger les photos\n                    document.getElementById('formActu').submit();\n                }\n            </script>");
     // on ne gere pas de timestamp , on assume que seul l'admin fera des mises a jour des actualités
     $applet = $fileObject->getAppletUploadMultiple(array('cheminApplet' => $this->getUrlRacine() . "/includes/", 'uploadDirPart1' => $this->getCheminPhysique() . "images/", 'uploadDirPart2' => "uploadMultipleActualites/", 'jsFunctionNameOnExit' => "goRedim({$idActualite})"));
     $configFields = array('idActualite' => array('libelle' => "idActualite", 'type' => 'hidden', 'required' => true, 'value' => '', 'forceValueTo' => $idActualite, 'htmlCode' => '', 'error' => ''), 'desactive' => array('libelle' => "désactiver", 'type' => 'singleCheckBox', 'required' => false, 'value' => '', 'forceValueTo' => '1', 'isChecked' => $isDesactivated, 'htmlCode' => '', 'error' => '', 'default' => ''), 'date' => array('libelle' => "date", 'withDatePicker' => true, 'type' => 'date', 'required' => true, 'value' => '', 'forceValueTo' => $date, 'htmlCode' => '', 'error' => ''), 'titre' => array('libelle' => "titre", 'type' => 'text', 'required' => false, 'value' => '', 'forceValueTo' => $titre, 'htmlCode' => "style='width:300px;'", 'error' => ''), 'sousTitre' => array('libelle' => "sous-titre", 'type' => 'text', 'required' => false, 'value' => '', 'forceValueTo' => $sousTitre, 'htmlCode' => "style='width:300px;'", 'error' => ''), 'photoIllustration' => array('libelle' => "illustration", 'type' => 'uploadImage', 'required' => false, 'value' => '', 'forceValueTo' => $illustration, 'physicalImagePathForTestExists' => $this->getCheminPhysique() . "images/actualites/" . $idActualitePathImage . "/", 'urlImagePathForDisplayInForm' => $this->getUrlImage() . "actualites/" . $idActualitePathImage . "/", 'htmlCode' => '', 'error' => ''), 'texte' => array('libelle' => "description", 'type' => 'tinyMCE', 'required' => false, 'value' => '', 'forceValueTo' => $description, 'htmlCode' => "cols=80 rows=30", 'error' => '', 'htmlCode2' => $gestionBibliothequeImages . "<div><a onclick=\"if(document.getElementById('divApplet').style.display=='none'){document.getElementById('divApplet').style.display='block';}else{document.getElementById('divApplet').style.display='none';}\" style='cursor:pointer;'>Voir/cacher ajouter une image</a></div><div id='divApplet' style='float:left;display:none'>" . $applet . "</div>"), 'urlFichier' => array('libelle' => "url redirection", 'type' => 'text', 'required' => false, 'value' => '', 'forceValueTo' => $urlFichier, 'htmlCode' => "style='width:300px;'", 'error' => ''), 'fichierPdf' => array('libelle' => "fichier pdf", 'type' => 'text', 'required' => false, 'value' => '', 'forceValueTo' => $fichierPdf, 'htmlCode' => "style='width:300px;'", 'error' => ''), 'texteMailHebdomadaire' => array('libelle' => "description mail hebdomadaire <span style='color:red;'>(ne pas oublier de préciser le titre)</span>", 'type' => 'tinyMCE', 'required' => false, 'value' => '', 'forceValueTo' => $texteMailHebdomadaire, 'htmlCode' => "cols=80 rows=30", 'error' => ''), 'envoiMailHebdomadaire' => array('libelle' => "envoi avec la newsletter hebdomadaire", 'type' => 'singleCheckBox', 'required' => false, 'value' => '', 'forceValueTo' => '1', 'isChecked' => $isEnvoi, 'htmlCode' => '', 'error' => '', 'default' => ''));
     $configForm = array("fields" => $configFields, 'formAction' => $formAction, 'codeHtmlAfterSubmitButton' => $boutonNouveau . $boutonSupprimer . $boutonPrevisualiser . $boutonValiderEtEnvoiMailPrevisualisation, 'formName' => 'formActu');
     $html .= $f->afficherFromArray($configForm);
     return $html;
 }