public function enregistreCommentaire()
 {
     $auth = new archiAuthentification();
     $fieldsCommentaires = $this->getCommentairesFields();
     $formulaire = new formGenerator();
     if ($auth->estConnecte()) {
         unset($fieldsCommentaires['captcha']);
     }
     $error = $formulaire->getArrayFromPost($fieldsCommentaires);
     if (count($error) == 0) {
         $idUtilisateur = 0;
         if ($auth->estConnecte()) {
             $idUtilisateur = $auth->getIdUtilisateur();
             // suite au SPAM mise en place d'un champ CommentaireValide 0/1 (by fabien 13/01/2012)
             $CommentaireValide = 1;
             $user = new archiUtilisateur();
             $userInfos = $user->getArrayInfosFromUtilisateur($idUtilisateur);
         } else {
             $CommentaireValide = 0;
         }
         // enregistrement du nouveau commentaire
         //$req = "insert into commentaires (nom,prenom,email,commentaire,idEvenementGroupeAdresse,date,idUtilisateur) values (\"".addslashes(strip_tags($this->variablesPost['nom']))."\",\"".addslashes(strip_tags($this->variablesPost['prenom']))."\",\"".addslashes(strip_tags($this->variablesPost['email']))."\",\"".addslashes(strip_tags($this->variablesPost['commentaire']))."\",'".$this->variablesPost['idEvenementGroupeAdresse']."',now(),'".$idUtilisateur."')";
         $nom = $auth->estConnecte() ? $userInfos["nom"] : $this->variablesPost['nom'];
         $prenom = $auth->estConnecte() ? $userInfos["prenom"] : $this->variablesPost['prenom'];
         $email = $auth->estConnecte() ? $user->getMailUtilisateur($idUtilisateur) : $this->variablesPost['email'];
         $uniqid = uniqid(null, true);
         $req = "INSERT INTO commentaires (nom, prenom, email, commentaire, idEvenementGroupeAdresse, date, idUtilisateur, CommentaireValide, uniqid) VALUES ('" . mysql_real_escape_string(strip_tags($nom)) . "', '" . mysql_real_escape_string(strip_tags($prenom)) . "', '" . mysql_real_escape_string(strip_tags($email)) . "', '" . mysql_real_escape_string(strip_tags($this->variablesPost['commentaire'])) . "', '" . mysql_real_escape_string($this->variablesPost['idEvenementGroupeAdresse']) . "', now(), '" . mysql_real_escape_string($idUtilisateur) . "'," . mysql_real_escape_string($CommentaireValide) . ", '" . mysql_real_escape_string($uniqid) . "')";
         $res = $this->connexionBdd->requete($req);
         $idCommentaire = mysql_insert_id();
         // retour a l'affichage de l'adresse
         $idAdresse = $this->getIdAdresseFromIdEvenementGroupeAdresse($this->variablesPost['idEvenementGroupeAdresse']);
         // ************************************************************************************************************************************************
         // envoi d'un mail a tous les participants pour le groupe d'adresse
         // ************************************************************************************************************************************************
         $mail = new mailObject();
         $utilisateur = new archiUtilisateur();
         $arrayUtilisateurs = $utilisateur->getParticipantsCommentaires($this->variablesPost['idEvenementGroupeAdresse']);
         $arrayCreatorAdresse = $utilisateur->getCreatorsFromAdresseFrom($this->variablesPost['idEvenementGroupeAdresse'], 'idEvenementGroupeAdresse');
         $arrayUtilisateurs = array_merge($arrayUtilisateurs, $arrayCreatorAdresse);
         $arrayUtilisateurs = array_unique($arrayUtilisateurs);
         $intituleAdresse = $this->getIntituleAdresseFrom($idAdresse, 'idAdresse');
         foreach ($arrayUtilisateurs as $indice => $idUtilisateurAdresse) {
             if ($idUtilisateurAdresse != $auth->getIdUtilisateur()) {
                 $infosUtilisateur = $utilisateur->getArrayInfosFromUtilisateur($idUtilisateurAdresse);
                 if ($infosUtilisateur['alerteCommentaires'] == '1' && $infosUtilisateur['compteActif'] == '1' && $infosUtilisateur['idProfil'] != '4') {
                     $message = "Un utilisateur a ajouté un commentaire sur une adresse ou vous avez participé.";
                     $message .= "Pour vous rendre sur l'adresse : <a href='" . $this->creerUrl('', '', array('archiAffichage' => 'adresseDetail', 'archiIdAdresse' => $idAdresse, 'archiIdEvenementGroupeAdresse' => $this->variablesPost['idEvenementGroupeAdresse'])) . '#commentaireAdresse' . $idCommentaire . "'>" . $intituleAdresse . "</a><br>";
                     $message .= $this->getMessageDesabonnerAlerteMail();
                     $mail->sendMail($mail->getSiteMail(), $infosUtilisateur['mail'], 'Ajout d\'un commentaire sur une adresse sur laquelle vous avez participé.', $message, true);
                 }
             }
         }
         // ************************************************************************************************************************************************
         // envoi d'un mail aux administrateur pour la moderation
         $message = "Merci d'avoir laissé un commentaire sur Archi-Strasbourg.<br>";
         $message .= "Afin qu'il soit publié, merci de le valider en cliquant sur ";
         $message .= "<a href='" . $this->getUrlRacine() . "script/validateEmail.php?uniqid=" . urlencode($uniqid) . "'>ce lien</a>.<br>";
         $message .= "<br/>Cordialement,</br>";
         $mail = new mailObject();
         $envoyeur['envoyeur'] = $mail->getSiteMail();
         $envoyeur['replyTo'] = strip_tags($this->variablesPost['email']);
         $u = new archiUtilisateur();
         if (!$CommentaireValide) {
             $mail->sendMail($envoyeur['envoyeur'], $this->variablesPost['email'], 'Votre commentaire sur Archi-Strasbourg', $message, true);
         } else {
             $message = "Un utilisateur a ajouté un commentaire sur archiV2 : <br>";
             $message .= "nom ou pseudo : " . strip_tags($this->variablesPost['nom']) . "<br>";
             $message .= "prenom : " . strip_tags($this->variablesPost['prenom']) . "<br>";
             $message .= "email : " . strip_tags($this->variablesPost['email']) . "<br>";
             $message .= "commentaire : " . stripslashes(strip_tags($this->variablesPost['commentaire'])) . "<br>";
             $message .= "<a href='" . $this->creerUrl('', '', array('archiAffichage' => 'adresseDetail', 'archiIdEvenementGroupeAdresse' => $this->variablesPost['idEvenementGroupeAdresse'], 'archiIdAdresse' => $idAdresse)) . '#commentaireAdresse' . $idCommentaire . "'>" . $intituleAdresse . "</a><br>";
             $mail->sendMailToAdministrators($envoyeur, 'Un utilisateur a ajouté un commentaire', $message, " AND alerteCommentaires='1' ", true, true);
             // envoi mail aussi au moderateur si ajout sur adresse de ville que celui ci modere
             $arrayVilles = array();
             $arrayVilles[] = $this->getIdVilleFrom($idAdresse, 'idAdresse');
             $arrayVilles = array_unique($arrayVilles);
             $arrayListeModerateurs = $u->getArrayIdModerateursActifsFromVille($arrayVilles[0], array("sqlWhere" => " AND alerteCommentaires='1' "));
             if (count($arrayListeModerateurs) > 0) {
                 foreach ($arrayListeModerateurs as $indice => $idModerateur) {
                     if ($auth->getIdUtilisateur() != $idModerateur) {
                         $mailModerateur = $u->getMailUtilisateur($idModerateur);
                         $mail->sendMail($mail->getSiteMail(), $mailModerateur, 'Un utilisateur a ajouté un commentaire', $message, true);
                     }
                 }
             }
         }
         // remise a zero des variables en post sinon on va reafficher les infos
         $_POST['commentaire'] = "";
         $_POST['email'] = "";
         $_POST['nom'] = "";
         $_POST['prenom'] = "";
         $this->variablesGet['archiIdEvenementGroupeAdresse'] = $this->variablesPost['idEvenementGroupeAdresse'];
         $idAdresse = $this->getIdAdresseFromIdEvenementGroupeAdresse($this->variablesGet['archiIdEvenementGroupeAdresse']);
         $this->messages->addConfirmation("Commentaire enregistré !");
         $this->messages->display();
         header("Location: " . $this->creerUrl('', '', array('archiAffichage' => 'adresseDetail', 'archiIdAdresse' => $idAdresse, 'archiIdEvenementGroupeAdresse' => $this->variablesGet['archiIdEvenementGroupeAdresse']), false, false) . '#commentaireAdresse' . $idCommentaire);
     } else {
         $this->messages->addError("Il y a une erreur dans le formulaire.");
         $this->messages->display();
         echo $this->getListeCommentaires($this->variablesPost['idEvenementGroupeAdresse']);
         echo $this->getFormulaireCommentaires($this->variablesPost['idEvenementGroupeAdresse'], $fieldsCommentaires);
     }
 }
 private function getUserFormMail($idUtilisateur)
 {
     $infosArray = $this->getArrayInfosFromUtilisateur($idUtilisateur);
     $mail = new mailObject();
     if ($infosArray['displayProfilContactForm'] == '1' && $infosArray['mail'] != '' && $mail->isMail($infosArray['mail'])) {
         $authentification = new archiAuthentification();
         $mailUtilisateurConnecte = "";
         if ($authentification->estConnecte()) {
             $idUtilisateurConnecte = $authentification->getIdUtilisateur();
             $mailUtilisateurConnecte = $this->getMailUtilisateur($idUtilisateurConnecte);
             if (!$mail->isMail($mailUtilisateurConnecte)) {
                 $mailUtilisateurConnecte = "";
             }
         }
         $f = new formGenerator();
         $bb = new bbCodeObject();
         $configBoutonsBBCode = array('formName' => 'messagePrive', 'fieldName' => 'message', 'noUrlInterneButton' => true);
         $help = $this->getHelpMessages('helpEvenement');
         foreach ($help as $index => $value) {
             $configBoutonsBBCode[$index] = $value;
         }
         $configBoutonsBBCode["msgQuote"] = "Selectionnez une partie de votre texte pour le mettre entre quotes";
         $configBoutonsBBCode["msgUrlExterne"] = "Tapez une url commencant par http:// ,  et selectionnez la pour en faire un lien";
         $arrayBBCode = $bb->getBoutonsMiseEnFormeTextArea($configBoutonsBBCode);
         if ($authentification->estConnecte()) {
             $configFieldsContact = array('idUtilisateurDestinataire' => array('type' => 'hidden', 'value' => '', 'forceValueTo' => $idUtilisateur, 'htmlCode' => '', 'default' => '', 'error' => '', 'required' => true), 'mailEnvoyeur' => array('type' => 'email', 'value' => '', 'forceValueTo' => $mailUtilisateurConnecte, 'htmlCode' => '', 'default' => '', 'libelle' => 'Votre mail', 'error' => '', 'required' => true), 'message' => array('type' => 'bigText', 'value' => '', 'htmlCode' => "style='width:400px;height:100px;'", 'default' => '', 'libelle' => 'Votre message', 'error' => '', 'required' => true, 'htmlCodeBeforeField' => $arrayBBCode['boutonsHTML']));
         } else {
             $configFieldsContact = array('idUtilisateurDestinataire' => array('type' => 'hidden', 'value' => '', 'forceValueTo' => $idUtilisateur, 'htmlCode' => '', 'default' => '', 'error' => '', 'required' => true), 'mailEnvoyeur' => array('type' => 'email', 'value' => '', 'forceValueTo' => $mailUtilisateurConnecte, 'htmlCode' => '', 'default' => '', 'libelle' => 'Votre mail', 'error' => '', 'required' => true), 'message' => array('type' => 'bigText', 'value' => '', 'htmlCode' => "style='width:400px;height:100px;'", 'default' => '', 'libelle' => 'Votre message', 'error' => '', 'required' => true, 'htmlCodeBeforeField' => $arrayBBCode['boutonsHTML']), 'captcha' => array('type' => 'captcha', 'value' => '', 'htmlCode' => "", 'default' => '', 'libelle' => 'Vérification', 'error' => '', 'required' => true));
         }
         if (isset($this->variablesPost['message'])) {
             $errors = $f->getArrayFromPost($configFieldsContact);
             $complementMsgVisiteAdresse = "";
             if (isset($this->variablesGet['archiIdEvenementGroupeAdresseOrigine']) && $this->variablesGet['archiIdEvenementGroupeAdresseOrigine'] != '') {
                 // recuperation de l'intitule de l'adresse
                 $adresse = new archiAdresse();
                 $idAdresseMessage = $adresse->getIdAdresseFromIdEvenementGroupeAdresse($this->variablesGet['archiIdEvenementGroupeAdresseOrigine']);
                 $intituleAdresse = $adresse->getIntituleAdresseFrom($this->variablesGet['archiIdEvenementGroupeAdresseOrigine'], 'idEvenementGroupeAdresse', array('ifTitreAfficheTitreSeulement' => true, 'noQuartier' => true, 'noSousQuartier' => true, 'noVille' => true));
                 $complementMsgVisiteAdresse = " à visité l'adresse <a href='" . $this->creerUrl('', '', array('archiAffichage' => 'adresseDetail', 'archiIdAdresse' => $idAdresseMessage, 'archiIdEvenementGroupeAdresse' => $this->variablesGet['archiIdEvenementGroupeAdresseOrigine'])) . "'>" . $intituleAdresse . "</a> et";
             }
             if (count($errors) == 0) {
                 // envoi du mail
                 $contenu = "Bonjour, <br><br>";
                 $contenu .= "Un utilisateur d'archi-strasbourg (<a href=\"mailto:" . $this->variablesPost['mailEnvoyeur'] . "\">" . $this->variablesPost['mailEnvoyeur'] . "</a>){$complementMsgVisiteAdresse} vous envoie un message privé :<br><br>";
                 $contenu .= stripslashes($bb->convertToDisplay(array('text' => $this->variablesPost['message'])));
                 $contenu .= "";
                 $contenu .= "";
                 if ($mail->sendMail($this->siteMail, $infosArray['mail'], "Un utilisateur d'archi-strasbourg vous envoie un message", $contenu, $writeMailToLogs = false, $this->variablesPost['mailEnvoyeur'])) {
                     echo "<span style='color:red;'>Mail envoyé.</span>";
                 }
             }
         }
         $arrayUrlViensDeAdresse = array();
         if (isset($this->variablesGet['archiIdEvenementGroupeAdresseOrigine']) && $this->variablesGet['archiIdEvenementGroupeAdresseOrigine'] != '') {
             $arrayUrlViensDeAdresse = array('archiIdEvenementGroupeAdresseOrigine' => $this->variablesGet['archiIdEvenementGroupeAdresseOrigine']);
         }
         $configForm = array('formAction' => $this->creerUrl('', 'detailProfilPublique', array_merge($arrayUrlViensDeAdresse, array('archiIdUtilisateur' => $idUtilisateur))), 'fields' => $configFieldsContact, 'formName' => 'messagePrive', 'codeHtmlInFormAfterFields' => "Prévisualisation :" . $arrayBBCode['divAndJsAfterForm']);
         $html .= "<br><br><h2>Lui envoyer un message personnel :</h2>";
         $html .= $f->afficherFromArray($configForm);
     }
     return $html;
 }
 /**
  * Ajoute une source
  * 
  * @return int ID de la nouvelle source
  * */
 public function ajouter()
 {
     $newIdSource = 0;
     $formulaire = new formGenerator();
     if (isset($this->variablesPost['submit'])) {
         $modeAffichage = '';
         if (isset($this->variablesGet['modeAffichage']) && $this->variablesGet['modeAffichage'] != '') {
             $modeAffichage = $this->variablesGet['modeAffichage'];
         }
         switch ($modeAffichage) {
             case 'nouveauDossier':
             case 'modifEvenement':
                 $tabForm = array('nom' => array('default' => '', 'value' => '', 'required' => true, 'error' => '', 'type' => 'text'), 'description' => array('default' => '', 'value' => '', 'required' => false, 'error' => '', 'type' => 'text'), 'type' => array('default' => 'aucune', 'value' => '', 'required' => false, 'error' => '', 'type' => 'numeric', 'checkExist' => array('table' => 'typeSource', 'primaryKey' => 'idTypeSource')));
                 break;
             default:
                 $tabForm = array('nom' => array('default' => '', 'value' => '', 'required' => true, 'error' => '', 'type' => 'text'), 'description' => array('default' => '', 'value' => '', 'required' => false, 'error' => '', 'type' => 'text'), 'nomNouveauType' => array('default' => '', 'value' => '', 'required' => false, 'error' => '', 'type' => 'text'), 'type' => array('default' => 'aucune', 'value' => '', 'required' => false, 'error' => '', 'type' => 'numeric', 'checkExist' => array('table' => 'typeSource', 'primaryKey' => 'idTypeSource')));
                 break;
         }
         $erreur = $formulaire->getArrayFromPost($tabForm);
         if (count($erreur) === 0) {
             $nom = mysql_escape_string($tabForm['nom']['value']);
             $description = '';
             if (isset($tabForm['description']['value'])) {
                 $description = mysql_escape_string(htmlspecialchars($tabForm['description']['value']));
             }
             //
             // Récupération de l'id du type de source
             // c'est un nouveau type de source :
             if (isset($tabForm['nomNouveauType']['value']) && !empty($tabForm['nomNouveauType']['value'])) {
                 // vérification si le type n'existe pas déjà
                 $nomNouveauType = mysql_escape_string($tabForm['nomNouveauType']['value']);
                 $sql = "SELECT idTypeSource FROM typeSource WHERE nom='" . $nomNouveauType . "' LIMIT 1";
                 $rep = $this->connexionBdd->requete($sql);
                 if ($res = mysql_fetch_object($rep)) {
                     // il existe
                     $idTypeSource = $res->idTypeSource;
                 } else {
                     // il n'existe pas
                     $sql = "INSERT INTO typeSource (nom) VALUES ('" . $nomNouveauType . "')";
                     $this->connexionBdd->requete($sql);
                     $idTypeSource = mysql_insert_id();
                 }
             } else {
                 if ($formulaire->estChiffre($tabForm['type']['value'])) {
                     // Sinon, si le type est bien renseigné
                     $idTypeSource = $tabForm['type']['value'];
                 } else {
                     // Sinon, rien ne va, on met une valeur par défaut
                     $this->erreurs->ajouter(_("Ajout de source : type de source incorrect ! Utilisateur du choix par défaut = 1"));
                     echo _("Erreur ajout source");
                     $idTypeSource = 1;
                 }
             }
             $sql = "INSERT INTO source (nom,  idTypeSource,  description) VALUES \n                    ('" . $nom . "', " . $idTypeSource . ", '" . $description . "')";
             $this->connexionBdd->requete($sql);
             $newIdSource = mysql_insert_id();
             $mail = new mailObject();
             $message = _("Une nouvelle source a été ajoutée :") . " <br>";
             $message .= $nom . " : " . $description . "<br><br>";
             $message .= "<a href='" . $this->creerUrl('', 'administrationAfficheModification', array('tableName' => 'source', 'idModification' => $newIdSource)) . "'>" . $this->creerUrl('', 'administrationAfficheModification', array('tableName' => 'source', 'idModification' => $newIdSource)) . "</a>";
             $mail->sendMailToAdministrators($mail->getSiteMail(), "archi-strasbourg.org : " . _("un utilisateur ajouté une source"), $message, " and alerteMail='1' ", true);
             $u = new archiUtilisateur();
             $u->ajouteMailEnvoiRegroupesAdministrateurs(array('contenu' => $message, 'idTypeMailRegroupement' => 9, 'criteres' => " and alerteMail='1' "));
         } else {
             $this->erreurs->ajouter($tabForm);
         }
     }
     return $newIdSource;
 }
 public function afficherFormulaireModification($id = 0, $type = '', $arrayListeIdImages = array())
 {
     $html = "";
     $utilisateur = new archiUtilisateur();
     $authentification = new archiAuthentification();
     //echo "afficherFormulaireModification : id=".$id." type=".$type;
     $arrayModifUrlParams = array();
     echo "<script>\n\n            function retirerPrisDepuis(idAdresseValue, identifiantUniqueRetour) {\n                document.getElementById('listePrisDepuisDiv'+identifiantUniqueRetour).innerHTML='';\n\n                if (idAdresseValue!=0)\n                {\n                    selectField = document.getElementById('prisDepuis'+identifiantUniqueRetour);\n                    divField = document.getElementById('listePrisDepuisDiv'+identifiantUniqueRetour);\n                    for(i=0 ; i<selectField.options.length; i++ ) {\n                        if (selectField.options[i]!=null) {\n                            if (selectField.options[i].value==idAdresseValue)\n                            {\n                                indiceARetirer = i;\n                            }\n                            else\n                            {\n                                divField.innerHTML+=selectField.options[i].innerHTML+'<a href=\\'#\\' style=\\'cursor:pointer;\\' onclick=\"retirerPrisDepuis(\\''+selectField.options[i].value+'\\',  '+identifiantUniqueRetour+')\">(-)</a><br>';\n                            }\n                        }\n                    }\n\n                    selectField.options[indiceARetirer]=null;\n                }\n\n            }\n\n\n            function retirerVueSur(idAdresseValue, identifiantUniqueRetour) {\n                document.getElementById('listeVueSurDiv'+identifiantUniqueRetour).innerHTML='';\n\n                if (idAdresseValue!=0)\n                {\n                    selectField = document.getElementById('vueSur'+identifiantUniqueRetour);\n                    divField = document.getElementById('listeVueSurDiv'+identifiantUniqueRetour);\n                    for(i=0 ; i<selectField.options.length; i++ ) {\n                        if (selectField.options[i]!=null) {\n                            if (selectField.options[i].value==idAdresseValue)\n                            {\n                                indiceARetirer = i;\n                            }\n                            else\n                            {\n                                divField.innerHTML+=selectField.options[i].innerHTML+'<a href=\\'#\\' style=\\'cursor:pointer;\\' onclick=\\\"retirerVueSur(\\''+selectField.options[i].value+'\\',  '+identifiantUniqueRetour+')\\\">(-)</a><br>';\n                            }\n                        }\n                    }\n\n                    selectField.options[indiceARetirer]=null;\n                }\n\n            }\n            </script>\n        ";
     $t = new Template('modules/archi/templates/');
     $t->set_filenames(array('imageFormModif' => 'imageFormulaire.tpl'));
     /******
      ** Source - récupration
      **/
     $sqlSource = 'SELECT idSource,  nom,  idTypeSource FROM source';
     $tabSource = array();
     if ($result = $this->connexionBdd->requete($sqlSource)) {
         while ($rep = mysql_fetch_object($result)) {
             $tabSource[$rep->idSource] = $rep->nom;
         }
     }
     switch ($type) {
         case 'adresse':
             break;
         case 'evenement':
             // recherche des images liées a l'evenement
             $arrayListeIdImages = array();
             if (isset($this->variablesGet['archiIdEvenement']) && $this->variablesGet['archiIdEvenement'] != '0' && $this->variablesGet['archiIdEvenement'] != '') {
                 $evenement = new archiEvenement();
                 $adresse = new archiAdresse();
                 // affichages des recapitulatifs en haut de la page ( adresse + titres des evenements)
                 $idEvenementGroupeAdresse = $evenement->getParent($this->variablesGet['archiIdEvenement']);
                 $idEvenementCourant = $this->variablesGet['archiIdEvenement'];
                 if ($idPerson = archiPersonne::isPerson($idEvenementGroupeAdresse)) {
                     $person = new archiPersonne();
                     $infos = $person->getInfosPersonne($idPerson);
                     $t->assign_vars(array('recapitulatifAdresses' => "<h2 class='h1'><a href='" . $this->creerUrl('', '', array('archiAffichage' => 'evenementListe', 'selection' => "personne", 'id' => $idPerson)) . "'>" . $infos["prenom"] . " " . $infos["nom"] . "</a></h2>"));
                 } else {
                     $t->assign_vars(array("recapitulatifAdresses" => $adresse->afficherRecapitulatifAdresses($idEvenementGroupeAdresse)));
                 }
                 $t->assign_vars(array("recapitulatifHistoriqueEvenements" => $evenement->afficherRecapitulatifAncres($idEvenementGroupeAdresse, $idEvenementCourant)));
                 $t->assign_vars(array("liensModifEvenements" => $evenement->afficherLiensModificationEvenement($idEvenementCourant)));
                 $reqEvenement = "SELECT distinct idImage from _evenementImage WHERE idEvenement ='" . $this->variablesGet['archiIdEvenement'] . "' ORDER BY position";
                 $resEvenement = $this->connexionBdd->requete($reqEvenement);
                 while ($fetchEvenement = mysql_fetch_assoc($resEvenement)) {
                     $arrayListeIdImages[] = $fetchEvenement['idImage'];
                 }
             }
             break;
         default:
             if (count($arrayListeIdImages) == 1) {
                 $evenement = new archiEvenement();
                 $adresse = new archiAdresse();
                 if (isset($this->variablesGet['archiIdEvenementGroupeAdresseAffichageAdresse']) && $this->variablesGet['archiIdEvenementGroupeAdresseAffichageAdresse'] != '') {
                     $idEvenementGroupeAdresse = $this->variablesGet['archiIdEvenementGroupeAdresseAffichageAdresse'];
                     $arrayModifUrlParams = array('archiIdEvenementGroupeAdresseAffichageAdresse' => $this->variablesGet['archiIdEvenementGroupeAdresseAffichageAdresse']);
                 } else {
                     $idEvenementImageUnique = $this->getArrayIdEvenementFromIdImage($arrayListeIdImages[0]);
                     $idEvenementGroupeAdresse = $evenement->getParent($idEvenementImageUnique);
                 }
                 if ($idPerson = archiPersonne::isPerson($idEvenementGroupeAdresse)) {
                     $person = new archiPersonne();
                     $infos = $person->getInfosPersonne($idPerson);
                     $t->assign_vars(array('recapitulatifAdresses' => "<h2 class='h1'><a href='" . $this->creerUrl('', '', array('archiAffichage' => 'evenementListe', 'selection' => "personne", 'id' => $idPerson)) . "'>" . $infos["prenom"] . " " . $infos["nom"] . "</a></h2>"));
                 } else {
                     $t->assign_vars(array("recapitulatifAdresses" => $adresse->afficherRecapitulatifAdresses($idEvenementGroupeAdresse)));
                 }
             }
             break;
     }
     //echo "afficherFormulaireModification $type";
     // cas ou le ne precise pas de idCourant ni de type de liaison ( la photo n'est ni liee a un evenement ni une adresse)
     // on modifie une liste d'images
     // *****************************************************************************************************************************************************************
     if (count($arrayListeIdImages) > 0) {
         $t->assign_block_vars('isImages', array());
         $listeIdImagesAModifier = implode("',  '", $arrayListeIdImages);
         $requeteImages = "\n                SELECT\n                    hi1.idHistoriqueImage as idHistoriqueImage, hi1.idImage as idImage, hi1.nom as nom,\n                    hi1.dateUpload as dateUpload, hi1.dateCliche as dateCliche, hi1.description as description, hi1.tags as tags,\n                    hi1.idUtilisateur as idUtilisateur, u.nom as nomUtilisateur,  u.prenom as prenomUtilisateur,\n                    hi1.idSource as idSource,  hi1.isDateClicheEnviron as isDateClicheEnviron,\n                    hi1.numeroArchive as numeroArchive,\n                    if (_ai.idImage IS NULL,  0, 1) as isAdresseImage,\n                    if (_ei.idImage IS NULL,  0, 1) as isEvenementImage,\n\n                    _ai.seSitue as seSitue,\n                    _ai.prisDepuis as prisDepuis,\n                    _ai.etage as etage,\n                    _ai.hauteur as hauteur,\n                    _ai.idAdresse as idAdresse,\n                    _ei.idEvenement as idEvenement\n\n                FROM historiqueImage hi2, historiqueImage hi1\n                LEFT JOIN _evenementImage _ei ON _ei.idImage = hi1.idImage\n                LEFT JOIN _adresseImage _ai ON _ai.idImage = hi1.idImage\n                LEFT JOIN utilisateur u ON u.idUtilisateur = hi1.idUtilisateur\n\n                WHERE hi2.idImage = hi1.idImage\n                AND hi1.idImage IN ('" . $listeIdImagesAModifier . "')\n                GROUP BY hi1.idImage, hi1.idHistoriqueImage\n                HAVING hi1.idHistoriqueImage = max(hi2.idHistoriqueImage)\n\n            ";
         $resImage = $this->connexionBdd->requete($requeteImages);
         $i = 0;
         $nomUtilisateur = "";
         $prenomUtilisateur = "";
         $listeId = array();
         $adresseObject = new archiAdresse();
         // ********************************************************************************************************************************************
         // boucle sur les images
         // ********************************************************************************************************************************************
         while ($fetch = mysql_fetch_array($resImage)) {
             if ($i == 0) {
                 $nomUtilisateur = $fetch["nomUtilisateur"];
                 $prenomUtilisateur = $fetch["prenomUtilisateur"];
             }
             $dateCliche = "";
             if ($this->date->toFrench($fetch['dateCliche']) == '00/00/0000') {
                 $dateCliche = "";
             } else {
                 $dateCliche = $this->date->toFrench($fetch['dateCliche']);
             }
             // ***********************************************************
             // GESTION AFFICHAGE ADRESSES CHAMPS MULTIPLES
             // gestion de l'affichage des adresses de chaque photo
             //$arrayGereAffichage = $this->gereAffichageAdresses($fetch['idHistoriqueImage'],  $fetch['idImage'],  'modif');
             // ***********************************************************
             //$nbAdressesAffichees = $arrayGereAffichage['nbAdressesAffichees'];
             $adresseObject = new archiAdresse();
             $stringObject = new stringObject();
             // adresses prisDepuis
             $reqPrisDepuis = "SELECT idImage, idAdresse, idEvenementGroupeAdresse FROM _adresseImage WHERE idImage='" . $fetch['idImage'] . "' AND prisDepuis='1'";
             $resPrisDepuis = $this->connexionBdd->requete($reqPrisDepuis);
             $selectPrisDepuisHTML = "";
             $divPrisDepuisHTML = "";
             while ($fetchPrisDepuis = mysql_fetch_assoc($resPrisDepuis)) {
                 if ($fetchPrisDepuis['idEvenementGroupeAdresse'] != '0') {
                     $nomAdresse = $adresseObject->getIntituleAdresseFrom($fetchPrisDepuis['idEvenementGroupeAdresse'], 'idEvenementGroupeAdresse', array('ifTitreAfficheTitreSeulement' => true));
                 } else {
                     $nomAdresse = $adresseObject->getIntituleAdresseFrom($fetchPrisDepuis['idAdresse'], 'idAdresse');
                 }
                 $selectPrisDepuisHTML .= "<option value='" . $fetchPrisDepuis['idAdresse'] . "_" . $fetchPrisDepuis['idEvenementGroupeAdresse'] . "' SELECTED>" . $nomAdresse . "</option>";
                 $divPrisDepuisHTML .= $nomAdresse . "<a onclick=\"retirerPrisDepuis('" . $fetchPrisDepuis['idAdresse'] . "_" . $fetchPrisDepuis['idEvenementGroupeAdresse'] . "',  " . $fetch['idHistoriqueImage'] . ");\" style='cursor:pointer;'>(-)</a><br>";
             }
             // adresses vueSur
             $reqVueSur = "SELECT idImage, idAdresse, idEvenementGroupeAdresse FROM _adresseImage WHERE idImage='" . $fetch['idImage'] . "' AND vueSur='1'";
             $resVueSur = $this->connexionBdd->requete($reqVueSur);
             $selectVueSurHTML = "";
             $divVueSurHTML = "";
             while ($fetchVueSur = mysql_fetch_assoc($resVueSur)) {
                 if ($fetchVueSur['idEvenementGroupeAdresse'] != '0') {
                     $nomAdresse = $adresseObject->getIntituleAdresseFrom($fetchVueSur['idEvenementGroupeAdresse'], 'idEvenementGroupeAdresse', array('ifTitreAfficheTitreSeulement' => true));
                 } else {
                     $nomAdresse = $adresseObject->getIntituleAdresseFrom($fetchVueSur['idAdresse'], 'idAdresse');
                 }
                 $selectVueSurHTML .= "<option value='" . $fetchVueSur['idAdresse'] . "_" . $fetchVueSur['idEvenementGroupeAdresse'] . "' SELECTED>" . $nomAdresse . "</option>";
                 $divVueSurHTML .= $nomAdresse . "<a onclick=\"retirerVueSur('" . $fetchVueSur['idAdresse'] . "_" . $fetchVueSur['idEvenementGroupeAdresse'] . "',  " . $fetch['idHistoriqueImage'] . ");\" style='cursor:pointer;'>(-)</a><br>";
             }
             // ***********************************************************
             // RECUPERATION DES SOURCES
             // on recupere le nom de la source
             // ***********************************************************
             $reqSource = "\n                            select s.idSource as idSource, s.nom as nom,  ts.nom as nomTS ,  if (ts.nom<>'', concat('(', ts.nom,  ')'),  '')as nomTypeSource\n                            from source s\n                            left join typeSource ts ON ts.idTypeSource = s.idTypeSource\n                            where idSource = '" . $fetch['idSource'] . "'";
             $resSource = $this->connexionBdd->requete($reqSource);
             $fetchSource = mysql_fetch_assoc($resSource);
             // ***********************************************************
             // ***********************************************************
             // recuperation des données POST,  avec par defaut les valeurs de la base de données
             // ***********************************************************
             $checkIsDateClicheEnviron = 0;
             if ($fetch['isDateClicheEnviron'] == 1) {
                 $checkIsDateClicheEnviron = 1;
             }
             $tabForm = array('nom_' . $fetch['idHistoriqueImage'] => array('type' => 'text', 'required' => false, 'value' => '', 'default' => $fetch['nom']), 'description_' . $fetch['idHistoriqueImage'] => array('type' => 'text', 'required' => false, 'value' => '', 'default' => $fetch['description']), 'dateUpload_' . $fetch['idHistoriqueImage'] => array('type' => 'date', 'required' => false, 'value' => '', 'default' => $this->date->toFrench($fetch['dateUpload'])), 'dateCliche_' . $fetch['idHistoriqueImage'] => array('type' => 'date', 'required' => false, 'value' => '', 'default' => $this->date->toFrench($fetch['dateCliche'])), 'isDateClicheEnviron_' . $fetch['idHistoriqueImage'] => array('type' => 'checkbox', 'required' => false, 'value' => '', 'default' => $checkIsDateClicheEnviron), 'source' . $fetch['idHistoriqueImage'] => array('type' => 'text', 'required' => false, 'value' => '', 'default' => $fetch['idSource']), 'source' . $fetch['idHistoriqueImage'] . 'txt' => array('type' => 'text', 'required' => false, 'value' => '', 'default' => $fetchSource['nom'] . ' ' . $fetchSource['nomTypeSource'] . ''), 'numeroArchive_' . $fetch['idHistoriqueImage'] => array('type' => 'text', 'required' => false, 'value' => '', 'default' => $fetch['numeroArchive']));
             $formulaire = new formGenerator();
             // appel de la fonction recuperant les valeurs du formulaire
             $errors = $formulaire->getArrayFromPost($tabForm);
             // ***********************************************************
             // ***********************************************************
             // assignation des champs de l'adresse
             // ***********************************************************
             $popupPrisDepuis = new calqueObject(array('idPopup' => 'popupPrisDepuis' . $fetch['idHistoriqueImage']));
             $popupVueSur = new calqueObject(array('idPopup' => 'popupVueSur' . $fetch['idHistoriqueImage']));
             $checkIsDateClicheEnviron = '';
             if ($tabForm['isDateClicheEnviron_' . $fetch['idHistoriqueImage']]['value'] == '1') {
                 $checkIsDateClicheEnviron = 'checked';
             }
             $auteur = $this->getAuteur($fetch['idImage']);
             if (is_array($auteur)) {
                 $nomUpload = $auteur["nom"];
                 $nomAuteur = "";
             } else {
                 $nomAuteur = $auteur;
                 $nomUpload = "";
             }
             $licence = $this->getLicence($fetch['idImage']);
             $idUtilisateur = $authentification->getIdUtilisateur();
             $utilisateur = new ArchiUtilisateur();
             if ($licence["id"] == 3 && !$utilisateur->isAuthorized('admin_licences', $idUtilisateur) && !$utilisateur->canCopyright(array('idUtilisateur' => $idUtilisateur))) {
                 $selectLicenceHTML = "<span title='" . htmlspecialchars(_("Seul l'auteur peut changer la licence de cette image."), ENT_QUOTES) . "'>" . $licence["name"] . "</span>";
                 $enableAuthor = "disabled='disabled'";
             } else {
                 $enableAuthor = "";
                 $reqLicence = $this->connexionBdd->requete("SELECT * FROM licences");
                 $selectLicenceHTML = "";
                 while ($fetchLicence = mysql_fetch_assoc($reqLicence)) {
                     if ($fetchLicence["id"] != 3 || $utilisateur->isAuthorized('admin_licences', $idUtilisateur) || $utilisateur->canCopyright(array('idUtilisateur' => $idUtilisateur))) {
                         $selectLicenceHTML .= "<input type='radio' value='" . $fetchLicence["id"] . "' id='licence_" . $fetchLicence["id"] . "' name='licence_" . $fetch['idHistoriqueImage'] . "'";
                         if ($fetchLicence["id"] == $licence["id"]) {
                             $selectLicenceHTML .= " checked='checked' ";
                         }
                         $selectLicenceHTML .= "/>";
                         $selectLicenceHTML .= "<label title='" . htmlspecialchars($fetchLicence["description"], ENT_QUOTES) . "' for='licence_" . $fetchLicence["id"] . "'>";
                         if (!empty($fetchLicence["link"])) {
                             $selectLicenceHTML .= "<a href='" . $fetchLicence["link"] . "'>";
                         }
                         $selectLicenceHTML .= $fetchLicence["name"];
                         if (!empty($fetchLicence["link"])) {
                             $selectLicenceHTML .= "</a>";
                         }
                         $selectLicenceHTML .= "</label>";
                     }
                 }
             }
             $t->assign_block_vars('listePhotos', array('onClickPopupPrisDepuis' => "document.getElementById('" . $popupPrisDepuis->getJSDivId() . "').style.top=(getScrollHeight()+70)+'px';" . $popupPrisDepuis->getJSOpenPopup($fetch['idHistoriqueImage']) . "document.getElementById('" . $popupPrisDepuis->getJSIFrameId() . "').src='" . $this->creerUrl('', 'recherche', array('noHeaderNoFooter' => 1, 'modeAffichage' => 'popupRechercheAdressePrisDepuis')) . "';", 'popupPrisDepuis' => $popupPrisDepuis->getDiv(array('lienSrcIFrame' => $this->creerUrl('', 'recherche', array('noHeaderNoFooter' => 1, 'modeAffichage' => 'popupRechercheAdressePrisDepuis')), 'width' => 750, 'height' => 500, 'left' => 10, 'top' => 70, 'titre' => 'archi-strasbourg.org : Pris Depuis')), 'selectPrisDepuis' => $selectPrisDepuisHTML, 'listePrisDepuisDiv' => $divPrisDepuisHTML, 'onClickPopupVueSur' => "document.getElementById('" . $popupVueSur->getJSDivId() . "').style.top=(getScrollHeight()+70)+'px';" . $popupVueSur->getJSOpenPopup($fetch['idHistoriqueImage']) . "document.getElementById('" . $popupVueSur->getJSIFrameId() . "').src='" . $this->creerUrl('', 'recherche', array('noHeaderNoFooter' => 1, 'modeAffichage' => 'popupRechercheAdresseVueSur')) . "';", 'popupVueSur' => $popupVueSur->getDiv(array('lienSrcIFrame' => $this->creerUrl('', 'recherche', array('noHeaderNoFooter' => 1, 'modeAffichage' => 'popupRechercheAdresseVueSur')), 'width' => 750, 'height' => 500, 'left' => 10, 'top' => 70, 'titre' => 'archi-strasbourg.org : Vue Sur')), 'selectVueSur' => $selectVueSurHTML, 'listeVueSurDiv' => $divVueSurHTML, 'urlImage' => $this->getUrlImage("grand") . '/' . $fetch['dateUpload'] . '/' . $fetch['idHistoriqueImage'] . '.jpg', 'nom' => $tabForm['nom_' . $fetch['idHistoriqueImage']]['value'], 'description' => stripslashes($tabForm['description_' . $fetch['idHistoriqueImage']]['value']), 'idHistoriqueImage' => $fetch['idHistoriqueImage'], 'dateUpload' => $tabForm['dateUpload_' . $fetch['idHistoriqueImage']]['value'], 'dateCliche' => $tabForm['dateCliche_' . $fetch['idHistoriqueImage']]['value'], 'numeroArchive' => $tabForm['numeroArchive_' . $fetch['idHistoriqueImage']]['value'], 'checkIsDateClicheEnviron' => $checkIsDateClicheEnviron, 'idImage' => $fetch['idImage'], 'adresseUrl' => '#', 'adresseOnClick' => "document.getElementById('calqueAdresse').style.display='block';document.getElementById('paramChampsAppelantAdresse').value='listeAdresses_" . $fetch['idHistoriqueImage'] . "';", 'evenementUrl' => '#', 'evenementOnClick' => "document.getElementById('calqueEvenement').style.display='block';document.getElementById('paramChampsAppelantEvenement').value='listeEvenements_" . $fetch['idHistoriqueImage'] . "';", 'onClickBoutonAjouterAdresse' => "document.getElementById('modifImage').action='" . $this->creerUrl('', 'modifierImageMultiple') . "'", 'onClickBoutonEnleverAdresse' => "document.getElementById('modifImage').action='" . $this->creerUrl('', 'modifierImageMultiple') . "'", 'onClickBoutonChoixVille' => "document.getElementById('calqueVille').style.top=(getScrollHeight()+150)+'px';document.getElementById('calqueVille').style.display='block';document.getElementById('paramChampAppelantVille').value='ville" . $fetch['idHistoriqueImage'] . "';document.getElementById('paramChampVilleIdentifiantUnique').value='" . $fetch['idHistoriqueImage'] . "'", 'onChangeListeQuartier' => "appelAjax('" . $this->creerUrl('', 'afficheSelectSousQuartier', array('noHeaderNoFooter' => 1, 'identifiantUnique' => $fetch['idHistoriqueImage'])) . "&archiIdQuartier='+document.getElementById('quartiers" . $fetch['idHistoriqueImage'] . "').value,  'listeSousQuartier" . $fetch['idHistoriqueImage'] . "')", 'onClickBoutonChoixSource' => "document.getElementById('calqueSource').style.top=(getScrollHeight()+150)+'px';document.getElementById('calqueSource').style.display='block';document.getElementById('paramChampsAppelantSource').value='source_" . $fetch['idHistoriqueImage'] . "';", 'onClickDateCliche' => "document.getElementById('paramChampAppelantDate').value='dateCliche_" . $fetch['idHistoriqueImage'] . "';document.getElementById('calqueDate').style.top=(getScrollHeight()+150)+'px';document.getElementById('calqueDate').style.display='block';", 'idSource' => $tabForm['source' . $fetch['idHistoriqueImage']]['value'], 'nomSource' => $tabForm['source' . $fetch['idHistoriqueImage'] . 'txt']['value'], "nomAuteur" => $nomAuteur, "nomUpload" => $nomUpload, "tags" => $fetch['tags'], "selectLicence" => $selectLicenceHTML, "enableAuthor" => $enableAuthor));
             if ($utilisateur->canChangeNumeroArchiveField(array('idUtilisateur' => $authentification->getIdUtilisateur()))) {
                 $t->assign_block_vars('listePhotos.isDisplayNumeroArchive', array());
             } else {
                 $t->assign_block_vars('listePhotos.isNoDisplayNumeroArchive', array());
             }
             if ($utilisateur->canModifyTags(array('idUtilisateur' => $authentification->getIdUtilisateur()))) {
                 $t->assign_block_vars('listePhotos.canModifyTags', array());
             } else {
                 $t->assign_block_vars('listePhotos.canNotModifyTags', array());
             }
             if ($utilisateur->isAuthorized('affiche_selection_source', $authentification->getIdUtilisateur())) {
                 $t->assign_block_vars('listePhotos.isDisplaySource', array());
             } else {
                 $t->assign_block_vars('listePhotos.isNoDisplaySource', array());
             }
             // ***************************************************
             // IDENTIFIANT d'HISTORIQUES IMAGES
             // recuperation de la liste des identifiants d'images
             $listeId[] = $fetch['idHistoriqueImage'];
             // ***************************************************
             // ***************************************************
             // SOURCES
             // création de la liste des sources
             // ***************************************************
             if (!empty($tabSource)) {
                 foreach ($tabSource as $id => $nom) {
                     if (isset($tabTravail['source']['value']) && $tabTravail['source']['value'] == $id) {
                         $selected = 'selected="selected"';
                     } else {
                         $selected = '';
                     }
                     $t->assign_block_vars('listePhotos.source', array('val' => $id, 'nom' => $nom, 'selected' => $selected));
                 }
             }
             // recuperation des evenements lies à l'image
             $resEvenementsLies = $this->getFetchEvenementsLies($fetch['idImage']);
             while ($fetchEvenementsLies = mysql_fetch_assoc($resEvenementsLies)) {
                 $t->assign_block_vars('listePhotos.evenements', array('value' => $fetchEvenementsLies['idEvenement'], 'nom' => $fetchEvenementsLies['titre']));
             }
             $i++;
         }
         // ***************************************************
         $t->assign_vars(array("proprietaireImages" => "Images concernant l'adresse", 'actionFormImage' => $this->creerUrl('modifImage', '', $arrayModifUrlParams), 'listeId' => implode(',  ', $listeId)));
         // ***************************************************
         // ***************************************************
         // pour les calques :
         // ***************************************************
         $recherche = new archiRecherche();
         $adresse = new archiAdresse();
         $t->assign_vars(array('popupChoixAdresse' => $recherche->getPopupChoixAdresse('resultatRechercheAdresseCalqueImageChampMultiple'), 'popupChoixEvenement' => $recherche->getPopupChoixEvenement('resultatRechercheEvenementCalqueImageChampMultiple'), 'popupChoixSource' => $recherche->getPopupChoixSource('modifImage'), 'popupCalendrier' => $this->getPopupCalendrier(), 'popupAttente' => $this->getPopupAttente()));
     } else {
         $t->assign_vars(array('msgPasdImage' => "Il n'y a pas d'image."));
     }
     // *********************************************************************************
     // recuperation des aides contextuelles
     $helpMessages = $this->getHelpMessages('helpImage');
     $helpMessages = array_merge($helpMessages, $this->getHelpMessages('helpAdresse'));
     foreach ($helpMessages as $fieldName => $message) {
         $t->assign_vars(array($fieldName => $message));
     }
     // *********************************************************************************
     ob_start();
     $t->pparse('imageFormModif');
     $html = ob_get_contents();
     ob_end_clean();
     return $html;
 }
 /**
  * Ajouter une personne
  *
  * @return void
  * */
 public function ajouter()
 {
     $newIdPersonne = 0;
     $formulaire = new formGenerator();
     if (isset($this->variablesPost['submit'])) {
         $modeAffichage = '';
         if (isset($this->variablesGet['modeAffichage']) && $this->variablesGet['modeAffichage'] != '') {
             $modeAffichage = $this->variablesGet['modeAffichage'];
         }
         switch ($modeAffichage) {
             case 'nouveauDossier':
             case "modifEvenement":
                 $tabForm = array('prenom' => array('default' => '', 'value' => '', 'required' => false, 'error' => '', 'type' => 'text'), 'nom' => array('default' => '', 'value' => '', 'required' => true, 'error' => '', 'type' => 'text'), 'description' => array('default' => '', 'value' => '', 'required' => false, 'error' => '', 'type' => 'text'), 'dateNaissance' => array('default' => '', 'value' => '', 'required' => false, 'error' => '', 'type' => 'date'), 'dateDeces' => array('default' => '', 'value' => '', 'required' => false, 'error' => '', 'type' => 'date'), 'metier' => array('default' => 'aucune', 'value' => '', 'required' => false, 'error' => '', 'type' => 'numeric', 'checkExist' => array('table' => 'metier', 'primaryKey' => 'idMetier')));
                 break;
             default:
                 $tabForm = array('prenom' => array('default' => '', 'value' => '', 'required' => false, 'error' => '', 'type' => 'text'), 'nom' => array('default' => '', 'value' => '', 'required' => true, 'error' => '', 'type' => 'text'), 'description' => array('default' => '', 'value' => '', 'required' => false, 'error' => '', 'type' => 'text'), 'nouveauMetier' => array('default' => '', 'value' => '', 'required' => false, 'error' => '', 'type' => 'text'), 'dateNaissance' => array('default' => '', 'value' => '', 'required' => false, 'error' => '', 'type' => 'date'), 'dateDeces' => array('default' => '', 'value' => '', 'required' => false, 'error' => '', 'type' => 'date'), 'metier' => array('default' => 'aucune', 'value' => '', 'required' => false, 'error' => '', 'type' => 'numeric', 'checkExist' => array('table' => 'metier', 'primaryKey' => 'idMetier')));
                 break;
         }
         $erreur = $formulaire->getArrayFromPost($tabForm);
         if (count($erreur) === 0) {
             $prenom = mysql_escape_string($tabForm['prenom']['value']);
             $nom = mysql_escape_string($tabForm['nom']['value']);
             $description = isset($_POST['descriptionPerson']) ? mysql_escape_string($_POST['descriptionPerson']) : mysql_escape_string(htmlspecialchars($tabForm['description']['value']));
             $dateNaissance = $this->date->toBdd($this->date->convertYears($tabForm['dateNaissance']['value']));
             $dateDeces = $this->date->toBdd($this->date->convertYears($tabForm['dateDeces']['value']));
             /*if (!empty($tabForm['nouveauMetier']['value']))
               {
                   // nouveau metier
                   $nomMetier = mysql_escape_string($tabForm['nouveauMetier']['value']);
                   $sql = "SELECT idMetier FROM metier WHERE nom='".$nomMetier."' LIMIT 1";
                   $rep = $this->connexionBdd->requete($sql);
                   if (mysql_num_rows($rep) === 1)
                   {
                       $res = mysql_fetch_object($rep);
                       $idMetier = $res->idMetier;
                       echo "métier existe";
                   }
                   else
                   {
                       $sql = "INSERT INTO metier (nom) VALUES ('".$nomMetier."')";
                       $this->connexionBdd->requete($sql);
                       $idMetier = mysql_insert_id();
                       echo 'métier existe pas';
                   }
               }
               else if (empty($tabForm['metier']['error']) AND !empty($tabForm['metier']['value']))
               {*/
             // valeur du select
             $idMetier = $tabForm['metier']['value'];
             //echo 'métier select';
             /*}
               else
               {
                   // choix par défaut
                   $idMetier = 1;
                   echo 'défaut';
               }*/
             $sql = "INSERT INTO personne (prenom,  nom,  dateNaissance,  dateDeces,  description,  idMetier ) VALUES\n                    ('" . $prenom . "', '" . $nom . "', '" . $dateNaissance . "', '" . $dateDeces . "', '" . $description . "', " . $idMetier . ")";
             $this->connexionBdd->requete($sql);
             $newIdPersonne = mysql_insert_id();
         } else {
             $this->erreurs->ajouter($tabForm);
         }
         $this->erreurs->ajouter($tabForm);
     }
     return $newIdPersonne;
 }
 public function afficheResultatsRechercheAvancee($params = array())
 {
     $html = "";
     $modeAffichage = 'recherche';
     $formulaire = new formGenerator();
     if (isset($this->variablesGet['submitRechercheAvancee'])) {
         $adresses = new archiAdresse();
         $tabForm = array('motcle' => array('default' => '', 'value' => '', 'required' => false, 'error' => '', 'type' => 'text'), 'pays' => array('default' => '0', 'value' => '', 'required' => false, 'error' => '', 'type' => 'numeric', 'checkExist' => array('table' => 'pays', 'primaryKey' => 'idPays')), 'ville' => array('default' => '0', 'value' => '', 'required' => false, 'error' => '', 'type' => 'numeric', 'checkExist' => array('table' => 'ville', 'primaryKey' => 'idVille')), 'quartier' => array('default' => '0', 'value' => '', 'required' => false, 'error' => '', 'type' => 'numeric', 'checkExist' => array('table' => 'quartier', 'primaryKey' => 'idQuartier')), 'sousQuartier' => array('default' => '0', 'value' => '', 'required' => false, 'error' => '', 'type' => 'numeric', 'checkExist' => array('table' => 'sousQuartier', 'primaryKey' => 'idSousQuartier')), 'rue' => array('default' => '0', 'value' => '', 'required' => false, 'error' => '', 'type' => 'multiple', 'checkExist' => array('table' => 'rue', 'primaryKey' => 'idRue')), 'courant' => array('default' => '0', 'value' => '', 'required' => false, 'error' => '', 'type' => 'multiple', 'checkExist' => array('table' => 'courantArchitectural', 'primaryKey' => 'idCourantArchitectural')), 'typeStructure' => array('default' => '0', 'value' => '', 'required' => false, 'error' => '', 'type' => 'numeric', 'checkExist' => array('table' => 'typeStructure', 'primaryKey' => 'idTypeStructure')), 'typeEvenement' => array('default' => '0', 'value' => '', 'required' => false, 'error' => '', 'type' => 'numeric', 'checkExist' => array('table' => 'typeEvenement', 'primaryKey' => 'idTypeEvenement')), 'source' => array('default' => '0', 'value' => '', 'required' => false, 'error' => '', 'type' => 'numeric', 'checkExist' => array('table' => 'source', 'primaryKey' => 'idSource')), 'personnes' => array('default' => 'aucune', 'value' => '', 'required' => false, 'error' => '', 'type' => 'multiple', 'checkExist' => array('table' => 'personne', 'primaryKey' => 'idPersonne')), 'anneeDebut' => array('default' => '', 'value' => '', 'required' => false, 'error' => '', 'type' => 'numeric'), 'anneeFin' => array('default' => '', 'value' => '', 'required' => false, 'error' => '', 'type' => 'numeric'), 'MH' => array('default' => '', 'value' => '', 'required' => false, 'error' => '', 'type' => 'checkbox'), 'ISMH' => array('default' => '', 'value' => '', 'required' => false, 'error' => '', 'type' => 'checkbox'));
         $erreur = $formulaire->getArrayFromPost($tabForm, $_GET);
         if (count($erreur) == 0) {
             foreach ($tabForm as $nom => $valeur) {
                 $criteres['recherche_' . $nom] = $valeur['value'];
             }
             if (isset($this->variablesGet['afficheResultatsSurCarte']) && $this->variablesGet['afficheResultatsSurCarte'] == '1') {
                 $checkedCheckBox = true;
                 $adresses = new archiAdresse();
                 $retourAdresses = $adresses->afficherListe($criteres, $modeAffichage, array('sqlLimitExterne' => "150"));
                 // on limite les resultats a 150 pour avoir au moins 100 groupes d'adresses différents
                 //$arrayIdAdresses = $retourAdresses['arrayIdAdresses'];
                 $arrayIdEvenementsGA = $retourAdresses['arrayIdEvenementsGroupeAdresse'];
                 $gm = new googleMap(array('googleMapKey' => $this->googleMapKey, 'width' => 700, 'height' => 500, 'zoom' => 13));
                 $this->addToJsHeader($gm->getJsFunctions());
                 // ajout des fonctions de google map dans le header
                 // on affiche uniquement les 100 premieres coordonnées
                 // preparation du tableau de liste de coordonnées a transmettre a la classe googlemap
                 $listeCoordonnees = array();
                 $arrayIdEvenementGroupeAdressesConfigGMap = array();
                 for ($i = 0; $i < 100 && isset($arrayIdEvenementsGA[$i]); $i++) {
                     $reqCoordonnees = "\n\t\t\t\t\t\t\t\tSELECT     IF(ae.latitudeGroupeAdresse<>'0',ae.latitudeGroupeAdresse,ha1.latitude) as latitude,\n\t\t\t\t\t\t\t\tIF(ae.longitudeGroupeAdresse<>'0', ae.longitudeGroupeAdresse,ha1.longitude) as longitude\n\t\t\t\t\t\t\t\tFROM historiqueAdresse ha2, historiqueAdresse ha1\n\t\t\t\t\t\t\t\tLEFT JOIN _adresseEvenement ae ON ae.idAdresse = ha1.idAdresse\n\t\t\t\t\t\t\t\tWHERE ha2.idAdresse = ha1.idAdresse\n\t\t\t\t\t\t\t\tAND ha1.longitude!=''\n\t\t\t\t\t\t\t\tAND ha1.latitude!=''\n\t\t\t\t\t\t\t\tAND ha1.longitude!='0'\n\t\t\t\t\t\t\t\tAND ha1.latitude!='0'\n\t\t\t\t\t\t\t\tAND ha1.longitude IS NOT NULL\n\t\t\t\t\t\t\t\tAND ha1.latitude IS NOT NULL\n\t\t\t\t\t\t\t\tAND ae.idEvenement = '" . $arrayIdEvenementsGA[$i] . "'\n\t\t\t\t\t\t\t\t\t\tGROUP BY ha1.idAdresse,ha1.idHistoriqueAdresse\n\t\t\t\t\t\t\t\t\t\tHAVING ha1.idHistoriqueAdresse = max(ha2.idHistoriqueAdresse)\n\n\t\t\t\t\t\t\t\t\t\t";
                     $resCoordonnees = $this->connexionBdd->requete($reqCoordonnees);
                     $arrayIdEvenementGroupeAdressesConfigGMap[$i]['idEvenementGroupeAdresse'] = $arrayIdEvenementsGA[$i];
                     if (mysql_num_rows($resCoordonnees) > 0) {
                         $fetchCoordonnees = mysql_fetch_assoc($resCoordonnees);
                         $arrayIdEvenementGroupeAdressesConfigGMap[$i]['longitude'] = $fetchCoordonnees['longitude'];
                         $arrayIdEvenementGroupeAdressesConfigGMap[$i]['latitude'] = $fetchCoordonnees['latitude'];
                     } else {
                         $arrayIdEvenementGroupeAdressesConfigGMap[$i]['longitude'] = 0;
                         $arrayIdEvenementGroupeAdressesConfigGMap[$i]['latitude'] = 0;
                     }
                 }
                 $retourConfig = $adresses->getArrayGoogleMapConfigCoordonneesFromCenter(array('arrayIdEvenementsGroupeAdresse' => $arrayIdEvenementGroupeAdressesConfigGMap));
                 $html = "<h1>" . _("Résultats de la recherche avancée :") . "</h1>";
                 if ($retourAdresses['nbAdresses'] == 0) {
                     $html .= _("aucun résultat.") . "<br><br>";
                 } else {
                     $html .= "<br>" . $retourAdresses['nbAdresses'] . " " . _("résultats.") . "<br>";
                 }
                 $html .= $gm->getMap(array('listeCoordonnees' => $retourConfig['arrayConfigCoordonnees'], 'urlImageIcon' => $this->urlImages . "pointGM.png", 'pathImageIcon' => $this->getCheminPhysique() . "images/pointGM.png", 'setAutomaticCentering' => true));
             } else {
                 $retourAdresses = $adresses->afficherListe($criteres, $modeAffichage);
                 if ($retourAdresses['nbAdresses'] == 0) {
                     $html = "<h1>" . _("Adresses :") . "</h1>";
                     $html .= _("Aucun résultat.");
                 } else {
                     $html = $retourAdresses['html'];
                 }
             }
         }
     }
     return $html;
 }