Example #1
0
     echo $s->afficheQuiSommesNousArchiStrasbourg();
     break;
 case 'faireUnDon':
     $s = new archiStatic();
     echo $s->afficheFaireUnDon();
     break;
     // ajout fabien du 30/11/2011
 // ajout fabien du 30/11/2011
 case 'donateurs':
     $s = new archiStatic();
     echo $s->afficheDonateurs();
     break;
     // Popup source : operation ajout dans la popup
 // Popup source : operation ajout dans la popup
 case 'afficherAjouterSource':
     $source = new archiSource();
     echo $source->afficherFormulaire();
     break;
     //Popup personne : operation ajout dans la popup
 //Popup personne : operation ajout dans la popup
 case 'afficherAjouterPersonne':
     $personne = new archiPersonne();
     echo $personne->afficherFormulaire();
     break;
     // Cas de l'ajout d'un nouveau dossier
 // Cas de l'ajout d'un nouveau dossier
 case "editPerson":
     include "inc/editPerson.php";
     break;
 case "choosePicturePerson":
     include "inc/choosePicturePerson.php";
 public function afficherDetail($idAdresse = 0, $idEvenementGroupeAdresse = 0)
 {
     // attention s'il y a plusieurs evenement distinct (pas associes entre eux) reliés a l'adresse on les affichera a la suite
     if (isset($_GET["archiIdAdresse"])) {
         $address = $this->getArrayAdresseFromIdAdresse($_GET["archiIdAdresse"]);
     }
     $reqTitre = "\n\t\t\t\tSELECT he1.titre as titre\n\t\t\t\tFROM _adresseEvenement ae\n\t\t\t\tLEFT JOIN _evenementEvenement ee ON ee.idEvenement = ae.idEvenement\n\t\t\t\tLEFT JOIN evenements he1 ON he1.idEvenement = ee.idEvenementAssocie\n\t\t\t\tLEFT JOIN evenements he2 ON he2.idEvenement = he1.idEvenement\n\t\t\t\tWHERE he1.titre!=''\n\t\t\t\tAND ae.idAdresse = '" . $idAdresse . "'\n\t\t\t\tAND he1.idTypeEvenement <>'6'\n\t\t\t\tGROUP BY he1.idEvenement\n\t\t\t\tORDER BY he1.dateDebut\n\t\t\t\tLIMIT 1\n\n\t\t\t\t\t\t";
     $resTitre = $this->connexionBdd->requete($reqTitre);
     if (mysql_num_rows($resTitre) == 1) {
         $fetchTitre = mysql_fetch_assoc($resTitre);
         $titre = stripslashes($fetchTitre['titre']);
         if (trim($fetchTitre['titre']) == '') {
             $noTitreDetected = true;
             $titre = '';
         }
     }
     //    }
     $html = "<div class='fb-like right' data-send='false' data-layout='button_count' data-show-faces='true' data-action='recommend'></div>\n\t\t\t\t<a href='https://twitter.com/share' class='twitter-share-button right' data-via='ArchiStrasbourg' data-lang='fr' data-related='ArchiStrasbourg'>Tweeter</a>\n\t\t\t\t<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src='//platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document,'script','twitter-wjs');</script>";
     $html .= "<h2>";
     $e = new archiEvenement();
     $archiIdEvenementGroupeAdresse = isset($_GET['archiIdEvenementGroupeAdresse']) ? $_GET['archiIdEvenementGroupeAdresse'] : $e->getIdEvenementGroupeAdresseFromIdEvenement($_GET["archiIdEvenement"]);
     $titre = $intituleAdresse = $this->getIntituleAdresseFrom($archiIdEvenementGroupeAdresse, "idEvenementGroupeAdresse", array("afficheTitreSiTitreSinonRien" => true, "noHTML" => true));
     if (isset($titre) && !empty($titre)) {
         if (isset($_GET['archiAffichage']) && $_GET['archiAffichage'] == 'adresseDetail') {
             $html .= "<span itemprop='name'>";
         }
         $html .= $titre;
         if (isset($_GET['archiAffichage']) && $_GET['archiAffichage'] == 'adresseDetail') {
             $html .= "</span>";
         }
         if (!empty($address["nomRue"])) {
             $html .= "&nbsp;-&nbsp;";
         }
     }
     if (isset($address)) {
         if (isset($_GET['archiAffichage']) && $_GET['archiAffichage'] == 'adresseDetail') {
             $html .= "<span itemprop='address' itemscope itemtype='http://schema.org/PostalAddress'><span itemprop='streetAddress'>";
         }
         if ($address["numero"] . " " != 0) {
             $html .= $address["numero"];
             if (isset($address['nomIndicatif'])) {
                 $html .= $address["nomIndicatif"];
             }
             $html .= ' ';
         }
         $html .= $address["prefixeRue"] . " " . $address["nomRue"];
         if (isset($_GET['archiAffichage']) && $_GET['archiAffichage'] == 'adresseDetail') {
             $html .= "</span>\n\t\t\t\t\t\t<meta itemprop='addressLocality' content='" . $address["nomVille"] . "'/>\n\t\t\t\t\t\t\t\t<meta itemprop='addressCountry' content='" . $address["nomPays"] . "'/>\n\t\t\t\t\t\t\t\t\t\t</span>";
         }
     }
     $html .= "</h2>";
     $evenement = new archiEvenement();
     // si le groupe d'adresse est precisé dans l'url , on ne va afficher que celui ci
     if (isset($this->variablesGet['archiIdEvenementGroupeAdresse']) && $this->variablesGet['archiIdEvenementGroupeAdresse'] != '') {
         $retourEvenement = $evenement->afficher($this->variablesGet['archiIdEvenementGroupeAdresse'], '', null, array());
         // cette fonction va afficher les evenements liés au groupe d'adresse
         $html .= $retourEvenement['html'];
         $html .= $this->getFormComment($this->variablesGet['archiIdEvenementGroupeAdresse'], $this->getCommentairesFields());
         $html .= $this->getListeCommentaires($this->variablesGet['archiIdEvenementGroupeAdresse']);
     } elseif ($idEvenementGroupeAdresse != '' && $idEvenementGroupeAdresse != '0') {
         $retourEvenement = $evenement->afficher($idEvenementGroupeAdresse, '', null, array());
         $html .= $retourEvenement['html'];
         $html .= $this->getFormComment($idEvenementGroupeAdresse, $this->getCommentairesFields());
         $html .= $this->getListeCommentaires($idEvenementGroupeAdresse);
     } else {
         $resEvenements = $this->getIdEvenementsFromAdresse($idAdresse);
         //c'est l'evenement groupe d'adresse qui est relié a l'idAdresse donc on recupere un idEvenementGroupeAdresse en fait
         if (mysql_num_rows($resEvenements) == 1) {
             // un seul evenement groupe d'adresse correspond a l'adresse cliquée
             $fetchEvenements = mysql_fetch_assoc($resEvenements);
             $retourEvenement = $evenement->afficher($fetchEvenements['idEvenement'], '', null, array());
             // cette fonction va afficher les evenements liés au groupe d'adresse
             $html .= $retourEvenement['html'];
             $html .= $this->getFormComment($fetchEvenements['idEvenement'], $this->getCommentairesFields('evenement'));
             $html .= $this->getListeCommentaires($fetchEvenements['idEvenement']);
         } else {
             // il y a plusieurs evenements groupes d'adresses qui correspondent a la meme adresse
             // on n'affiche que les evenements qui concernent la recherche
             // archiIdEvenementGroupeAdresse , correspond au groupe d'adresse de l'adresse resultat de la recherche
             if (isset($this->variablesGet['recherche_motcle'])) {
                 // on refait une recherche sur les evenements concernés par l'adresse correspondant a plusieurs evenements groupe adresse
                 $req = "\n\t\t\t\t\t\t\tSELECT ee.idEvenement as idEvenementGroupeAdresse, he1.idEvenement as idEvenement\n\t\t\t\t\t\t\tFROM evenements he2, evenements he1\n\t\t\t\t\t\t\tRIGHT JOIN _adresseEvenement ae ON ae.idAdresse = '" . $idAdresse . "'\n\t\t\t\t\t\t\t\t\tRIGHT JOIN _evenementEvenement ee ON ee.idEvenement = ae.idEvenement\n\t\t\t\t\t\t\t\t\tWHERE he2.idEvenement = he1.idEvenement\n\t\t\t\t\t\t\t\t\tAND he1.idEvenement = ee.idEvenementAssocie\n\t\t\t\t\t\t\t\t\tAND CONCAT_WS('',lower(he1.titre),lower(he1.description)) like \"%" . strtolower($this->variablesGet['recherche_motcle']) . "%\"\n\t\t\t\t\t\t\t\t\t\t\tGROUP BY he1.idEvenement\n\t\t\t\t\t\t\t\t\t\t\t";
                 $res = $this->connexionBdd->requete($req);
                 while ($fetch = mysql_fetch_assoc($res)) {
                     $retourEvenement = $evenement->afficher($fetch['idEvenementGroupeAdresse'], '', null, array(), array());
                     // cette fonction va afficher les evenements liés au groupe d'adresse
                     $html .= $retourEvenement['html'];
                 }
             } else {
                 $nbGroupesAdressesAffiches = 0;
                 while ($fetchEvenements = mysql_fetch_assoc($resEvenements)) {
                     $retourEvenement = $evenement->afficher($fetchEvenements['idEvenement'], '', null, array());
                     // cette fonction va afficher les evenements liés au groupe d'adresse
                     $html .= $retourEvenement['html'];
                     $nbGroupesAdressesAffiches += count($retourEvenement['listeGroupeAdressesAffichees']);
                     if (isset($retourEvenement['listeGroupeAdressesAffichees'][0])) {
                         $groupeAdresse = $retourEvenement['listeGroupeAdressesAffichees'][0];
                     }
                 }
                 if ($nbGroupesAdressesAffiches == 1) {
                     $html .= $this->getFormComment($groupeAdresse, $this->getCommentairesFields(), '');
                     $html .= $this->getListeCommentaires($groupeAdresse);
                 }
             }
         }
     }
     // popup pour la description de la source
     $s = new archiSource();
     $html .= $s->getPopupDescriptionSource();
     return $html;
 }
 /**
  * Affiche la liste des adresses suivant criteres et modeAffichage ,  modeAffichage permet de préciser ou sera affiché la liste (calque ou non,  et lieu du calque)
  * afin de changer le comportement des liens et limiter certains affichages,  non utiles dans la popup par exemple
  * cette fonction ,  permet maintenant aussi de renvoyer les resultats dans un tableau ,  sans forcement les affichers (utile dans la recherche ...)
  *
  * InPeople n'est pas responsable de cette fonction sortie des enfers
  *
  * @param array  $criteres      Critères
  * @param string $modeAffichage Mode d'affichage
  * @param array  $params        Paramètres
  *
  * @return array
  * */
 public function afficherListe($criteres = array(), $modeAffichage = '', $params = array())
 {
     $sqlId = '';
     $nbAdresses = 0;
     $arrayRetour = array();
     // tableau de renvoyé a la sortie de la fonction contenant les liens
     $arrayRetourLiensVoirBatiments = array();
     // tableau renvoyé a la sortie de la fonction contenant les liens "voir tous les batiments de la rue/quartier"
     $arrayIdAdressesRetour = array();
     // tableau renvoyé a la sortir de la fonction contenant la liste des idAdresses ,  permet d'economiser quelques requetes
     $arrayIdEvenementsGARetour = array();
     // tableau avec la liste des evenements de groupes d'adresses
     $tabParametresAutorises = array('ordre', 'tri', 'limit', 'archiIdEvenement', 'debut', 'selection', 'id', 'recherche_rue', 'recherche_quartier', 'recherche_ville', 'recherche_longitude', 'recherche_latitude', 'recherche_rayon', 'recherche_groupesAdressesFromAdresse', 'recherche_sousQuartier', 'displayAdresseIfNoCoordonneesGroupeAdresse');
     $sqlMotCle = "";
     $sqlSelectMotCle = "";
     $sqlOrderByPoidsMotCle = "";
     $sqlOrderBy = " ha1.date";
     foreach ($tabParametresAutorises as $param) {
         if (isset($this->variablesGet[$param]) and !isset($criteres[$param])) {
             $criteres[$param] = $this->variablesGet[$param];
         }
     }
     if (isset($criteres['recherche_groupesAdressesFromAdresse']) && $criteres['recherche_groupesAdressesFromAdresse'] != '') {
         $tabSqlWhere[] = ' AND ha1.idAdresse=' . $criteres['recherche_groupesAdressesFromAdresse'];
         if (isset($criteres['displayAdresseIfNoCoordonneesGroupeAdresse']) && $criteres['displayAdresseIfNoCoordonneesGroupeAdresse'] == 1) {
             $tabSqlWhere[] = " (ae.longitudeGroupeAdresse='0' AND ae.latitudeGroupeAdresse='0') ";
         }
     }
     $locationCriterias = '';
     $sqlWhere = $locationCriterias;
     $tabSqlWhere[] = $locationCriterias;
     $sqlAdressesSupplementaires = "";
     $tabidAdresses = array();
     $whereVillesModerees = "";
     if (!empty($criteres['recherche_motcle'])) {
         // recherche du mot cle dans les adresses
         $motcle = $criteres['recherche_motcle'];
         $motcle = Pia_eregreplace(", ", " ", $motcle);
         $motcle = Pia_eregreplace("\"", " ", $motcle);
         if ($modeAffichage == 'popupAjoutAdressesLieesSurEvenement') {
             // si on est en mode affichage popupAjoutAdressesLieesSurEvenement,  on est dans la popup de selection d'adresse pour lier un evenement a une ou plusieurs adresses
             // dans le cas d'un moderateur ,  il faut donc limiter sa recherche aux adresses de la ville qu'il administre
             $authentification = new archiAuthentification();
             $u = new archiUtilisateur();
             if ($authentification->estConnecte() && $u->isAuthorized('evenement_lier_adresses', $authentification->getIdUtilisateur())) {
                 if ($u->getIdProfil($authentification->getIdUtilisateur()) == 3) {
                     $arrayVillesModerees = $u->getArrayVillesModereesPar($authentification->getIdUtilisateur());
                     if (count($arrayVillesModerees) > 0) {
                         $whereVillesModerees = " AND v.idVille IN (" . implode(', ', $arrayVillesModerees) . ") ";
                     } else {
                         $whereVillesModerees = " AND v.idVille=0 ";
                         // si le moderateur n'a aucune ville en moderation on limite sa recherche a aucune ville
                     }
                 }
             }
         }
         $motcleEscaped = str_replace(' ', '%', $motcle);
         $motcleEscaped = mysql_real_escape_string($motcleEscaped);
         $motcleEntier = $motcle;
         $motcleEntierEscaped = str_replace("'", '', $motcleEntier);
         $motcleEntierEscaped = mysql_real_escape_string($motcleEntierEscaped);
         $motcleEntierEscaped = str_replace("\\", " ", $motcleEntierEscaped);
         $motcleEntierEscaped = "REGEXP \"[[:<:]]" . $motcleEntierEscaped . "[[:>:]]\"";
         $motcleAdresseEntiere = "REGEXP \"[[:<:]]" . str_replace(array("'", "\\"), array('', ''), $motcleEntier) . "[[:>:]]\"";
         $sqlMotCle = "\n\t\t\t\t\tAND\n\t\t\t\t\t(\n\t\t\t\t\tq.nom LIKE \"%" . $motcleEscaped . "%\"\n\t\t\t\t\tOR sq.nom LIKE \"%" . $motcleEscaped . "%\"\n\t\t\t\t\tOR v.nom LIKE \"%" . $motcleEscaped . "%\"\n\t\t\t\t\tOR p.nom LIKE \"%" . $motcleEscaped . "%\"\n\t\t\t\t\tOR r.nom LIKE \"%" . $motcleEscaped . "%\"\n\t\t\t\t\tOR he1.titre LIKE \"%" . $motcleEscaped . "%\"\n\t\t\t\t\tOR he1.description LIKE \"%" . $motcleEscaped . "%\"\n\t\t\t\t\tOR CONCAT_WS('', he1.titre, CONVERT(ha1.numero USING utf8), ind.nom, r.prefixe, r.nom, sq.nom,  q.nom,  v.nom,  p.nom) LIKE '%" . $motcleEscaped . "%'\n\t\t\t\t\tOR CONCAT_WS('', pers.nom, pers.prenom) LIKE \"%" . $motcleEscaped . "%\"\n\t\t\t\t\tOR CONCAT_WS('', pers.prenom, pers.nom) LIKE \"%" . $motcleEscaped . "%\"\n\t\t\t\t\t)";
         $sqlSelectMotCle = "";
         $sqlOrderBy = "(\n\t\t\tIF(r.nom LIKE \"%" . $motcle . "%\", 10000, 0)\n\t\t\t+ IF(sq.nom LIKE \"%" . $motcle . "%\", 10000, 0)\n\t\t\t+ IF(q.nom  LIKE \"%" . $motcle . "%\", 10000, 0)\n\t\t\t+ IF(v.nom  LIKE \"%" . $motcle . "%\", 10000, 0)\n\t\t\t+ IF(he1.titre LIKE \"%" . $motcle . "%\", 100, 0)\n\t\t\t+ IF(he1.description LIKE \"%" . $motcle . "%\", 10, 0)\n\t\t\t+ IF(he1.titre " . $motcleEntierEscaped . ", 2000000000000000000, 0)\n\t\t\t+ IF(he1.description " . $motcleEntierEscaped . ", 200000000000000000, 0)\n\t\t\t+ IF(ha1.idQuartier !=0 and ha1.idRue=0 and ha1.numero=0 and q.nom  LIKE \"%" . $motcle . "%\", 1000000000, 0)\n\t\t\t+ IF(ha1.numero=0 and CONCAT_WS('', r.prefixe, ' ', r.nom) " . $motcleAdresseEntiere . ", 1000000000000000000000000000, 0)\n\t\t\t+ IF(ha1.numero=0 and ha1.idRue=0 and ha1.idQuartier=0 and ha1.idSousQuartier=0 and v.nom LIKE \"%" . $motcle . "%\", 10000000000000000, 0)\n\t\t\t+ IF(CONCAT_WS('', CONVERT(ha1.numero USING utf8), ind.nom, r.prefixe, r.nom, sq.nom,  q.nom,  v.nom,  p.nom) LIKE '%" . $motcleEscaped . "%', 1000000000000000000000000000, 0)\n\t\t\t+ IF(CONCAT_WS('', CONVERT(ha1.numero USING utf8), ' ', r.prefixe, ' ', r.nom) " . $motcleAdresseEntiere . ", 1000000000000000000000000000, 0)\n\t\t\t+ IF(CONCAT_WS('', he1.titre, CONVERT(ha1.numero USING utf8), ' ', r.prefixe, ' ', r.nom) LIKE \"%" . $motcleEscaped . "%\", 2000000000000000000000000000, 0)\n\t\t\t+ IF(CONCAT_WS('', pers.nom, pers.prenom) LIKE \"%" . $motcleEscaped . "%\", 20000000000000000, 0)\n\t\t\t+ IF(CONCAT_WS('', pers.prenom, pers.nom) LIKE \"%" . $motcleEscaped . "%\", 20000000000000000, 0)\n\t\t\t)\n\t\t\t\t\t";
     }
     /*
      * Recherche dans les evenements
      */
     if (!isset($sqlWhere)) {
         $sqlWhere = '';
     }
     if (!isset($sqlJoin)) {
         $sqlJoin = '';
         // debug laurent
     }
     if (isset($criteres['recherche_courant']) && $criteres['recherche_courant'] != '') {
         $courant = implode("', '", $criteres['recherche_courant']);
         $sqlWhere .= ' AND _eCA.idCourantArchitectural IN (\'' . $courant . '\') ';
         $sqlJoin .= " LEFT JOIN _evenementCourantArchitectural _eCA ON _eCA.idEvenement = he1.idEvenement ";
     }
     if (isset($criteres['recherche_typeStructure']) && $criteres['recherche_typeStructure'] != '' && $criteres['recherche_typeStructure'] != '0') {
         $sqlWhere .= " AND he1.idTypeStructure='" . $criteres['recherche_typeStructure'] . "' ";
     }
     if (isset($criteres['recherche_typeEvenement']) && !empty($criteres['recherche_typeEvenement'])) {
         $sqlWhere .= " AND he1.idTypeEvenement='" . $criteres['recherche_typeEvenement'] . "' ";
     }
     if (isset($criteres['recherche_source']) && !empty($criteres['recherche_source'])) {
         $sqlWhere .= " AND he1.idSource='" . $criteres['recherche_source'] . "' ";
     }
     if (isset($criteres['recherche_personnes']) && !empty($criteres['recherche_personnes'])) {
         $personnes = implode("', '", $criteres['recherche_personnes']);
         $sqlWhere .= " AND _eP.idPersonne IN (\\'" . $personnes . "\\') ";
         $sqlJoin .= " LEFT JOIN _evenementPersonne _eP ON _eP.idEvenement = he1.idEvenement ";
     }
     if (isset($criteres['recherche_anneeDebut']) && $criteres['recherche_anneeDebut'] != '') {
         $sqlWhere .= " AND (extract(YEAR FROM he1.dateDebut)>='" . $criteres['recherche_anneeDebut'] . "') ";
     }
     if (isset($criteres['recherche_anneeFin']) && $criteres['recherche_anneeDebut'] != '') {
         $sqlWhere .= " AND (extract(YEAR FROM he1.dateDebut)<='" . $criteres['recherche_anneeFin'] . "') ";
     }
     if (isset($criteres['recherche_MH']) && $criteres['recherche_MH'] == '1' && isset($criteres['recherche_ISMH']) && $criteres['recherche_ISMH'] == '1') {
         // ATTENTION,  si les deux cases sont cochées ,  on fait un "OU" entre les deux champs pour le résultat de la recherche
         $sqlWhere .= " AND (he1.MH='1' OR he1.ISMH='1') ";
     } else {
         if (isset($criteres['recherche_MH']) && $criteres['recherche_MH'] == '1') {
             $sqlWhere .= " AND he1.MH='1' ";
         }
         if (isset($criteres['recherche_ISMH']) && $criteres['recherche_ISMH'] == '1') {
             $sqlWhere .= " AND he1.ISMH='1' ";
         }
     }
     // ************************************************************************************************************************************************
     $sqlSelectCoordonnees = "";
     // criteres concernant les coordonnées longitudes et latitude : recherche des adresses dans un rayon de n metres autour des coordonnées donnees en criteres
     if (isset($criteres['recherche_latitude']) && isset($criteres['recherche_longitude']) && isset($criteres['recherche_rayon']) && $criteres['recherche_latitude'] != '' && $criteres['recherche_longitude'] != '' && $criteres['recherche_rayon'] != '') {
         $sqlSelectCoordonnees = " AND ha1.latitude<>0 AND ha1.longitude<>0 AND ha1.latitude<>'' AND ha1.longitude<>'' AND ((acos(sin(" . $criteres['recherche_latitude'] . "*PI()/180) * sin(ha1.latitude*PI()/180) + cos(" . $criteres['recherche_latitude'] . "*PI()/180) * cos(ha1.latitude*PI()/180) * cos((" . $criteres['recherche_longitude'] . " - ha1.longitude)*PI()/180))/ pi() * 180.0)* 60 * 1.1515 * 1.609344)*1000<" . $criteres['recherche_rayon'] . " ";
     }
     // ****************************************************************************************************
     // ajout d'adresses pouvant provenir de la recherche avancee d'evenements
     // ****************************************************************************************************
     if (isset($criteres['adressesSupplementairesExternes'])) {
         $listeIdAdresses = implode("', '", array_unique(array_merge($tabidAdresses, $criteres['adressesSupplementairesExternes'])));
         $sqlAdressesSupplementaires = " AND ha1.idAdresse in ('" . $listeIdAdresses . "') ";
         $sqlOrderBy = " CAST(ha1.numero as signed) ASC,  1 ";
     }
     $sqlEvenementsGroupeAdressesSupplementaires = "";
     if (isset($criteres['groupesAdressesSupplementairesExternes'])) {
         $listeGroupesAdresses = implode("','", array_unique($criteres['groupesAdressesSupplementairesExternes']));
         $sqlEvenementsGroupeAdressesSupplementaires = "AND ee.idEvenement in ('" . $listeGroupesAdresses . "')";
         $sqlOrderBy = " CAST(ha1.numero as signed) ASC,  1 ";
     }
     if (!isset($criteres['ordre'])) {
         $sqlOrdre = 'nomRue';
     } else {
         switch ($criteres['ordre']) {
             case 'rue':
                 $sqlOrdre = 'nomRue';
                 break;
             case 'sousQuartier':
                 $sqlOrdre = 'nomSousQuartier';
                 break;
             case 'quartier':
                 $sqlOrdre = 'nomQuartier';
                 break;
             case 'ville':
                 $sqlOrdre = 'nomVille';
                 break;
             case 'pays':
                 $sqlOrdre = 'nomPays';
                 break;
             default:
                 $sqlOrdre = 'nomRue';
         }
     }
     if (isset($criteres['selection']) and is_numeric($criteres['id']) and $criteres['id'] > 0) {
         switch ($criteres['selection']) {
             case 'rue':
                 $tabSqlWhere[] = ' AND (ha1.idRue=' . $criteres['id'] . ' OR r.idRue=' . $criteres['id'] . ')';
                 break;
             case 'ville':
                 $tabSqlWhere[] = ' AND (ha1.idVille=' . $criteres['id'] . ' OR v.idVille=' . $criteres['id'] . ')';
                 break;
             case 'quartier':
                 $tabSqlWhere[] = ' AND (ha1.idQuartier=' . $criteres['id'] . ' OR q.idQuartier=' . $criteres['id'] . ')';
                 break;
             case 'sousQuartier':
                 $tabSqlWhere[] = ' AND (ha1.idSousQuartier=' . $criteres['id'] . ' OR sq.idSousQuartier=' . $criteres['id'] . ')';
                 break;
             case 'pays':
                 $tabSqlWhere[] = ' AND (ha1.idPays=' . $criteres['id'] . ' OR p.idPays=' . $criteres['id'] . ')';
                 break;
             default:
                 break;
         }
     }
     // si l'on precise un id evenement dans les criteres    (attention : idEvenement est de type GROUPE d'ADRESSES)
     if (!isset($sqlJoin)) {
         $sqlJoin = "";
     }
     $selectEvenement = "";
     if (isset($criteres['archiIdEvenement'])) {
         $tabSqlWhere[] = "  ae.idEvenement = '" . $criteres['archiIdEvenement'] . "'";
     } else {
         //  die(debug(debug_backtrace()));
         //debug($criteres);
     }
     if (!isset($sqlWhere)) {
         // debug laurent : je ne sais pas pourquoi cela n'a pas ete initialisé plus haut ,  a verifier
         $sqlWhere = '';
     }
     if (isset($tabSqlWhere)) {
         $prefix = '';
         foreach ($tabSqlWhere as $val) {
             $sqlWhere .= ' ' . $prefix . ' ' . $val;
             $prefix = 'AND';
         }
     }
     if (!isset($criteres['debut']) or !is_numeric($criteres['debut']) or $criteres['debut'] < 1) {
         $sqlLimit = '0,  10';
         $valDebutSuivant = 0;
         $valDebutPrecedent = 0;
         $criteres['debut'] = 0;
     } else {
         $sqlLimit = $criteres['debut'] . ',  10';
         if ($criteres['debut'] > 9) {
             $valDebutPrecedent = $criteres['debut'] - 10;
         } else {
             $valDebutPrecedent = 0;
         }
         $valDebutSuivant = $criteres['debut'];
     }
     // permet de rajouter une limite au retour de la requete principale ,  utilisé dans les modes ou l'on affiche pas le resultat ,  mais ou l'on recupere les idAdresses seulement dans le tableau de retour
     if (isset($params['sqlLimitExterne']) && $params['sqlLimitExterne'] != '') {
         $sqlLimit = " " . $params['sqlLimitExterne'] . " ";
     }
     if (isset($criteres['tri'])) {
         if ($criteres['tri'] == 'desc') {
             $sqlTri = 'DESC';
         } else {
             $sqlTri = 'ASC';
         }
     } else {
         $sqlTri = 'ASC';
     }
     // si une ville generale est precisé sinon c'est strasbourg
     if (isset($this->variablesGet['archiIdVilleGeneral']) && $this->variablesGet['archiIdVilleGeneral'] != '' && isset($this->variablesGet['archiIdPaysGeneral']) && $this->variablesGet['archiIdPaysGeneral'] != '') {
         $sqlWhere .= " AND v.idVille = '" . $this->variablesGet['archiIdVilleGeneral'] . "' AND p.idPays='" . $this->variablesGet['archiIdPaysGeneral'] . "' ";
     }
     if (isset($criteres['toutesLesDemolitions'])) {
         $arrayIdAdressesDemolitions = $this->getIdAdressesFromCriteres(array('whereSql' => "te.nom = 'Démolition'"));
         $sqlAdressesSupplementaires = " AND ha1.idAdresse in ('" . implode("', '", $arrayIdAdressesDemolitions) . "')";
         if (!isset($sqlWhere)) {
             $sqlWhere = "";
         }
     }
     if (isset($criteres['tousLesTravaux'])) {
         if (!isset($sqlWhere)) {
             $sqlWhere = "";
         }
         $arrayIdAdressesTravaux = $this->getIdAdressesFromCriteres(array('whereSql' => "(te.nom ='Construction' and EXTRACT(YEAR FROM he1.dateDebut)='" . date('Y') . "') or te.nom='Rénovation' or te.nom='Extension' or te.nom='Transformation' or te.nom='Ravalement'"));
         $sqlAdressesSupplementaires = " AND ha1.idAdresse in ('" . implode("', '", $arrayIdAdressesTravaux) . "')";
     }
     if (isset($criteres['tousLesEvenementsCulturels'])) {
         $arrayIdAdressesEvenements = $this->getIdAdressesFromCriteres(array('whereSql' => "te.groupe='1'"));
         $sqlAdressesSupplementaires = " AND ha1.idAdresse in ('" . implode("', '", $arrayIdAdressesEvenements) . "')";
         if (!isset($sqlWhere)) {
             $sqlWhere = "";
         }
     }
     $sqlSelectionExterne = "";
     if (isset($criteres['sqlSelectionExterne'])) {
         $sqlSelectionExterne = $criteres['sqlSelectionExterne'];
     }
     // bidouille pour que l'on affiche encore toutes les adresses en mode detail dans l'encars qui affiche la liste des adresses,  ce qui va faire que la requete ne renvoie des groupes d'adresses en double
     $critereSelectionIdAdressesModeAffichageListeAdressesCount = "";
     $critereSelectionIdAdressesModeAffichageListeAdressesRequete = "";
     if ($modeAffichage == 'listeDesAdressesDuGroupeAdressesSurDetailAdresse') {
         $critereSelectionIdAdressesModeAffichageListeAdressesCount = ",  ha1.idAdresse";
         $critereSelectionIdAdressesModeAffichageListeAdressesRequete = ",  ha1.idAdresse as idAdresse,  ha1.numero,  ha1.idQuartier,  ha1.idVille, ind.nom,\n\t\t\t\t\tr.nom as nomRue,\n\t\t\t\t\tsq.nom as nomSousQuartier,\n\t\t\t\t\tq.nom as nomQuartier,\n\t\t\t\t\tv.nom as nomVille,\n\t\t\t\t\tp.nom as nomPays,\n\t\t\t\t\tha1.numero as numeroAdresse,\n\t\t\t\t\tha1.idRue,\n\t\t\t\t\tr.prefixe as prefixeRue,\n\t\t\t\t\tIF (ha1.idSousQuartier != 0,  ha1.idSousQuartier,  r.idSousQuartier) AS idSousQuartier,\n\t\t\t\t\tIF (ha1.idQuartier != 0,  ha1.idQuartier,  sq.idQuartier) AS idQuartier,\n\t\t\t\t\tIF (ha1.idVille != 0,  ha1.idVille,  q.idVille) AS idVille,\n\t\t\t\t\tIF (ha1.idPays != 0,  ha1.idPays,  v.idPays) AS idPays,\n\n\t\t\t\t\tha1.numero as numero,\n\t\t\t\t\tha1.idHistoriqueAdresse,\n\t\t\t\t\tha1.idIndicatif as idIndicatif";
     } else {
         //debug($modeAffichage);
     }
     /*
      * Getting number of results
      */
     $sqlCount = "\n\t\tSELECT distinct ee.idEvenement as idEvenementGroupeAdresse    {$critereSelectionIdAdressesModeAffichageListeAdressesCount}\n\n\t\tFROM historiqueAdresse ha2, historiqueAdresse ha1\n\n\t\tRIGHT JOIN _adresseEvenement ae ON ae.idAdresse = ha1.idAdresse\n\t\tRIGHT JOIN _evenementEvenement ee ON ee.idEvenement = ae.idEvenement\n\t\tRIGHT JOIN evenements he1 ON he1.idEvenement = ee.idEvenementAssocie\n\t\tRIGHT JOIN evenements he2 ON he2.idEvenement = he1.idEvenement\n\n\t\tLEFT JOIN rue r         ON r.idRue = ha1.idRue\n\t\tLEFT JOIN sousQuartier sq    ON sq.idSousQuartier = IF(ha1.idRue='0' and ha1.idSousQuartier!='0' , ha1.idSousQuartier , r.idSousQuartier )\n\t\tLEFT JOIN quartier q        ON q.idQuartier = IF(ha1.idRue='0' and ha1.idSousQuartier='0' and ha1.idQuartier!='0' , ha1.idQuartier , sq.idQuartier )\n\t\tLEFT JOIN ville v        ON v.idVille = IF(ha1.idRue='0' and ha1.idSousQuartier='0' and ha1.idQuartier='0' and ha1.idVille!='0' , ha1.idVille , q.idVille )\n\t\tLEFT JOIN pays p        ON p.idPays = IF(ha1.idRue='0' and ha1.idSousQuartier='0' and ha1.idQuartier='0' and ha1.idVille='0' and ha1.idPays!='0' , ha1.idPays , v.idPays )\n\t\tLEFT JOIN _evenementPersonne ep ON ep.idEvenement = he1.idEvenement\n\t\tLEFT JOIN personne pers ON pers.idPersonne = ep.idPersonne\n\t\tLEFT JOIN indicatif ind ON ind.idIndicatif = ha1.idIndicatif\n\t\t" . $sqlJoin . "\n\t\tWHERE\n\t\tha2.idAdresse = ha1.idAdresse\n\t\t" . $sqlWhere . " " . $sqlAdressesSupplementaires . " " . $sqlEvenementsGroupeAdressesSupplementaires . " " . $sqlSelectionExterne . " " . $sqlMotCle . "\n\t\t" . $sqlSelectCoordonnees . " " . $whereVillesModerees . "\n\t\tGROUP BY ha1.idAdresse,  he1.idEvenement, ha1.idHistoriqueAdresse\n\t\tHAVING ha1.idHistoriqueAdresse = max(ha2.idHistoriqueAdresse)\n\t\t";
     if ($modeAffichage != "listeDesAdressesDuGroupeAdressesSurDetailAdresse") {
         $result = $this->connexionBdd->requete($sqlCount);
     }
     $nbReponses = mysql_num_rows($result);
     $nbResult = $nbReponses;
     if ($nbResult - $valDebutSuivant > 10) {
         $valDebutSuivant += 10;
     }
     $nbAdresses = $nbReponses;
     $sqlAdressesSupplementairesRechercheRelancee = "";
     // on a effectue une recherche par mot cle ,  mais pas de resultat,  on va donc voir si la recherche concerne une adresse precise et rechercher les numeros autour de cette adresse
     if ($nbAdresses == 0 && isset($criteres['recherche_motcle']) && $criteres['recherche_motcle'] != '' && !isset($this->variablesGet['relanceRecherche'])) {
         // si la recherche par mot cle n'a pas donné de resultat ,  on la relance avec seulement le nom de la rue sans l'eventuel numero d'adresse qui a pu etre ajouté par l'utilisateur
         $retourAdressesAutour = $this->getIdAdressesAutourAdressesCourante($criteres['recherche_motcle']);
         $sqlMotCle = $retourAdressesAutour['sqlMotCle'];
         $arrayAdressesProches = $retourAdressesAutour['arrayIdAdresses'];
         $sqlAdressesSupplementairesRechercheRelancee = " AND ha1.idAdresse in ('" . implode("', '", $arrayAdressesProches) . "') ";
         $nbAdresses = count($arrayAdressesProches);
         $nbResult = $nbAdresses;
         $nbReponses = $nbAdresses;
     }
     $t = new Template('modules/archi/templates/');
     if (!isset($criteres['useTemplateFile'])) {
         $t->set_filenames(array('listeAdresses' => 'listeAdresses.tpl'));
     } else {
         $t->set_filenames(array('listeAdresses' => $criteres['useTemplateFile']));
     }
     // gestion du titre de la liste des adresses
     if (!isset($criteres['cacheTitre'])) {
         if (isset($criteres['titre'])) {
             $t->assign_vars(array('titre' => $criteres['titre']));
         } else {
             if (isset($this->variablesGet['selection']) && $this->variablesGet['selection'] == 'personne' && isset($this->variablesGet['id']) && $this->variablesGet['id'] != '0') {
                 // on affiche un titre et une description
                 $personneObj = new archiPersonne();
                 $infosPersonne = $personneObj->getInfosPersonne($this->variablesGet['id']);
                 if (empty($infosPersonne['nom']) && empty($infosPersonne['prenom'])) {
                     http_response_code(404);
                     echo '<p>Erreur&nbsp;: Personne introuvable</p>';
                     return;
                 }
                 $titre = "";
                 if (isset($infosPersonne['nomMetier']) && $infosPersonne['nomMetier'] != "") {
                     $titre = "<span itemprop='jobTitle'>" . ucfirst(stripslashes($infosPersonne['nomMetier'])) . "</span> : ";
                 }
                 $titre .= "<span itemprop='name'><span itemprop='familyName'>" . ucwords(stripslashes($infosPersonne['nom'])) . "</span> <span itemprop='givenName'>" . ucwords(stripslashes($infosPersonne['prenom'])) . "</span></span>";
                 $description = "<div class='personHeader tableauResumeAdresse'>";
                 $authentification = new archiAuthentification();
                 if ($authentification->estConnecte()) {
                     $description .= "<ul style='float:right;'><li><a href='" . $this->creerUrl("", "editPerson", array("id" => $_GET["id"])) . "'>" . _("Modifier") . "</a></li>";
                     $description .= "<li><a href='" . $this->creerUrl("", "choosePicturePerson", array("id" => $_GET["id"])) . "'>" . _("Sélectionner l'image principale") . "</a></li>";
                     if ($authentification->estAdmin()) {
                         $description .= "<li><a href='" . $this->creerUrl("", "deletePerson", array("id" => $_GET["id"])) . "'>" . _("Supprimer") . "</a></li>";
                     }
                     $description .= '</ul>';
                 }
                 $description .= "<img src='" . archiPersonne::getImage($this->variablesGet['id']) . "' alt=''/>\n\t\t\t\t\t\t\t<div style='display:inline-block;'>";
                 if ($infosPersonne['dateNaissance'] != '0000-00-00') {
                     $description .= "<br>" . _("Date de naissance :") . " <span itemprop='birthDate'>" . $this->date->toFrench($infosPersonne['dateNaissance']) . "</span>";
                 }
                 if ($infosPersonne['dateDeces'] != '0000-00-00') {
                     $description .= "<br>" . _("Date de décès :") . " <span itemprop='deathDate'>" . $this->date->toFrench($infosPersonne['dateDeces']) . "</span>";
                 }
                 $description .= "</div><br/>";
                 $relatedPeople = archiPersonne::getRelatedPeople($this->variablesGet['id']);
                 if (!empty($relatedPeople)) {
                     $description .= "<div style='float:right;'>";
                     $description .= "<h3>Personnes liées :</h3>";
                     $description .= "<ul>";
                     foreach ($relatedPeople as $relatedPerson) {
                         $name = archiPersonne::getName($relatedPerson);
                         $description .= "<li><a href='" . $this->creerUrl("", "evenementListe", array("selection" => "personne", "id" => $relatedPerson)) . "'>" . $name->prenom . " " . $name->nom . "</a></li>";
                     }
                     $description .= "</ul></div>";
                 }
                 $description .= "<div style='clear:right;'></div>";
                 $description .= "</div><br/><br/>";
                 $e = new archiEvenement();
                 $reqEvent = "\n\t\t\t\t\t\t\tSELECT idEvenement\n\t\t\t\t\t\t\tFROM _personneEvenement\n\t\t\t\t\t\t\tWHERE idPersonne = '" . mysql_real_escape_string($this->variablesGet['id']) . "';";
                 $resEvent = $this->connexionBdd->requete($reqEvent);
                 if (mysql_num_rows($resEvent) > 0) {
                     $fetchEvent = mysql_fetch_assoc($resEvent);
                     $e = $e->afficher($fetchEvent["idEvenement"], "personne");
                     $description .= $e["html"];
                 }
                 $t->assign_vars(array('titre' => $titre, 'description' => $description, "divBegin" => "<div itemscope itemtype='http://schema.org/Person'>", "divEnd" => "</div>"));
             } elseif (isset($this->variablesGet['selection']) && $this->variablesGet['selection'] == 'source' && isset($this->variablesGet['id']) && $this->variablesGet['id'] != '') {
                 $sourceObj = new archiSource();
                 $bbCode = new bbCodeObject();
                 $resSource = $sourceObj->getMysqlResSource(array('sqlFields' => "s.nom as nomSource,  s.description as descriptionSource,  ts.nom as nomTypeSource", 'sqlWhere' => " AND s.idSource ='" . $this->variablesGet['id'] . "' "));
                 $fetchSource = mysql_fetch_assoc($resSource);
                 $titre = "Source : " . $fetchSource['nomSource'];
                 $description = "";
                 if ($fetchSource['nomTypeSource'] != '') {
                     $description .= "<b>Type de source : </b>" . $fetchSource['nomTypeSource'] . "<br><br>";
                 }
                 $description .= $fetchSource['descriptionSource'];
                 $t->assign_vars(array('titre' => $titre));
                 $t->assign_vars(array('description' => "<br>" . $bbCode->convertToDisplay(array('text' => $description)) . "<br><br><h2>Liste des événements concernés :</h2>"));
             } elseif (isset($this->variablesGet['archiAffichage']) && $this->variablesGet['archiAffichage'] == 'listeAdressesFromSource' && isset($this->variablesGet['source']) && $this->variablesGet['source'] != '') {
                 if (!isset($this->variablesGet['noDescription'])) {
                     $bbCode = new bbCodeObject();
                     $reqSource = "SELECT nom,  description FROM source WHERE idSource='" . $this->variablesGet['source'] . "'";
                     $resSource = $this->connexionBdd->requete($reqSource);
                     $fetchSource = mysql_fetch_assoc($resSource);
                     $t->assign_vars(array('titre' => 'Source : ' . stripslashes($fetchSource['nom'])));
                     $logoSource = "";
                     $colspan = "";
                     if (file_exists($this->getCheminPhysique() . "images/logosSources/" . $this->variablesGet['source'] . ".jpg")) {
                         $logoSource = "<td><a href='" . $this->creerUrl('', 'afficheGrandFormatSource', array("archiIdSource" => $this->variablesGet['source'])) . "'><img src='" . $this->getUrlImage() . "logosSources/" . $this->variablesGet['source'] . ".jpg' border=0></a></td>";
                         $colspan = "colspan=2";
                     }
                     $t->assign_vars(array('description' => "<table border=''><tr>{$logoSource}<td>" . $bbCode->convertToDisplay(array('text' => stripslashes($fetchSource['description']))) . "</td></tr><tr><td {$colspan}><b><div style='font-size:12px;'>Voici la liste des adresses auxquelles cette source est attachée</div></b></td></tr></table>"));
                 }
             } else {
                 $t->assign_vars(array('titre' => 'Adresses'));
             }
         }
     }
     // gestion de la pagination de la recherche
     switch ($modeAffichage) {
         case 'calqueImage':
             $urlPrecedent = '#';
             $urlPrecedentOnClick = "appelAjax('" . $this->creerUrl('', '', array_merge($this->variablesGet, array('debut' => $valDebutPrecedent))) . "', 'resultatsAdresse')";
             $urlSuivant = '#';
             $urlSuivantOnClick = "appelAjax('" . $this->creerUrl('', '', array_merge($this->variablesGet, array('debut' => $valDebutSuivant))) . "', 'resultatsAdresse')";
             break;
         case 'calqueImageChampsMultiples':
             $urlPrecedent = '#';
             $urlPrecedentOnClick = "appelAjax('" . $this->creerUrl('', '', array_merge($this->variablesGet, array('debut' => $valDebutPrecedent))) . "', 'resultatsAdresse')";
             $urlSuivant = '#';
             $urlSuivantOnClick = "appelAjax('" . $this->creerUrl('', '', array_merge($this->variablesGet, array('debut' => $valDebutSuivant))) . "', 'resultatsAdresse')";
             break;
         case 'calqueEvenement':
             $urlPrecedent = $this->creerUrl('', '', array_merge($this->variablesGet, array('debut' => $valDebutPrecedent)));
             $urlPrecedentOnClick = "";
             $urlSuivant = $this->creerUrl('', '', array_merge($this->variablesGet, array('debut' => $valDebutSuivant)));
             $urlSuivantOnClick = "";
             $tabTempo = array(array('url' => $this->creerUrl('', '', array_merge($this->variablesGet, array('ordre' => 'nom'))), 'urlOnClick' => '', 'titre' => 'Titre', 'urlDesc' => $this->creerUrl('', '', array_merge($this->variablesGet, array('ordre' => 'nom', 'tri' => 'desc'))), 'urlDescOnClick' => '', 'urlAsc' => $this->creerUrl('', '', array_merge($this->variablesGet, array('ordre' => 'nom', 'tri' => 'asc'))), 'urlAscOnClick' => ''), array('url' => $this->creerUrl('', '', array_merge($this->variablesGet, array('ordre' => 'image'))), 'urlOnClick' => '', 'titre' => 'Image', 'urlDesc' => $this->creerUrl('', '', array_merge($this->variablesGet, array('ordre' => 'image', 'tri' => 'desc'))), 'urlDescOnClick' => '', 'urlAsc' => $this->creerUrl('', '', array_merge($this->variablesGet, array('ordre' => 'image', 'tri' => 'asc'))), 'urlAscOnClick' => ''));
             break;
         default:
             $urlPrecedent = $this->creerUrl('', '', array_merge($this->variablesGet, array('debut' => $valDebutPrecedent)));
             $urlPrecedentOnClick = "";
             $urlSuivant = $this->creerUrl('', '', array_merge($this->variablesGet, array('debut' => $valDebutSuivant)));
             $urlSuivantOnClick = "";
             $tabTempo = array(array('url' => $this->creerUrl('', '', array_merge($this->variablesGet, array('ordre' => 'nom'))), 'urlOnClick' => '', 'titre' => 'Titre', 'urlDesc' => $this->creerUrl('', '', array_merge($this->variablesGet, array('ordre' => 'nom', 'tri' => 'desc'))), 'urlDescOnClick' => '', 'urlAsc' => $this->creerUrl('', '', array_merge($this->variablesGet, array('ordre' => 'nom', 'tri' => 'asc'))), 'urlAscOnClick' => ''));
     }
     if (!isset($_GET["selection"]) || $_GET["selection"] != "personne") {
         // on peut cacher l'affichage du nombre de reponses suivant l'affichage souhaité
         if (!isset($criteres['cacheNbReponses'])) {
             $nbReponses = $nbReponses . " " . ngettext("réponse", "réponses", $nbReponses);
         } else {
             $nbReponses = "";
         }
         $t->assign_block_vars('t', array('urlPrecedent' => $urlPrecedent, 'urlPrecedentOnClick' => $urlPrecedentOnClick, 'urlSuivant' => $urlSuivant, 'urlSuivantOnClick' => $urlSuivantOnClick, 'nbReponses' => $nbReponses));
         if (!isset($criteres['cacheEnteteTri'])) {
             for ($i = 0; $i < count($tabTempo); $i++) {
                 $t->assign_block_vars('t.liens', $tabTempo[$i]);
             }
         }
         if ($criteres['debut'] == 0 or $criteres['debut'] < 51) {
             $debutNav = 0;
             $finNav = 200;
         } else {
             $debutNav = $criteres['debut'] - 50;
             $finNav = $debutNav + 150;
         }
         for ($i = $debutNav; $i < $finNav; $i += 10) {
             if ($criteres['debut'] == $i - 10 && $nbReponses > 0) {
                 $t->assign_block_vars('t.nav.courant', array());
             }
             if ($nbReponses > $i) {
                 switch ($modeAffichage) {
                     case 'calqueImage':
                         $urlNbOnClick = "appelAjax('" . $this->creerUrl('', '', array_merge($this->variablesGet, array('debut' => $i))) . "', 'resultatsAdresse');";
                         $urlNb = '#';
                         break;
                     case 'calqueEvenement':
                         $urlNbOnClick = '';
                         $urlNb = $this->creerUrl('', '', array_merge($this->variablesGet, array('debut' => $i)));
                         break;
                     case 'calqueImageChampsMultiples':
                         $urlNbOnClick = '';
                         $urlNb = $this->creerUrl('', '', array_merge($this->variablesGet, array('debut' => $i)));
                         break;
                     default:
                         $urlNbOnClick = '';
                         $urlNb = $this->creerUrl('', '', array_merge($this->variablesGet, array('debut' => $i)));
                 }
                 $t->assign_block_vars('t.nav', array('urlNbOnClick' => $urlNbOnClick, 'urlNb' => $urlNb, 'nb' => $i / 10 + 1));
             }
         }
         $sql = "\n\t\t\tSELECT DISTINCT ee.idEvenement as idEvenementGA {$critereSelectionIdAdressesModeAffichageListeAdressesRequete},\n\n\t\t\tr.nom as nomRue,\n\t\t\tsq.nom as nomSousQuartier,\n\t\t\tq.nom as nomQuartier,\n\t\t\tv.nom as nomVille,\n\t\t\tp.nom as nomPays,\n\t\t\tha1.numero as numeroAdresse,\n\t\t\tha1.idRue,\n\t\t\tr.prefixe as prefixeRue,\n\t\t\tIF (ha1.idSousQuartier != 0, ha1.idSousQuartier, r.idSousQuartier) AS idSousQuartier,\n\t\t\tIF (ha1.idQuartier != 0, ha1.idQuartier, sq.idQuartier) AS idQuartier,\n\t\t\tIF (ha1.idVille != 0, ha1.idVille, q.idVille) AS idVille,\n\t\t\tIF (ha1.idPays != 0, ha1.idPays, v.idPays) AS idPays,\n\n\t\t\tha1.numero as numero,\n\t\t\tha1.idHistoriqueAdresse,\n\t\t\tha1.idAdresse,\n\t\t\tha1.idIndicatif as idIndicatif\n\n\n\t\t\tFROM historiqueAdresse ha2, historiqueAdresse ha1\n\t\t\tLEFT JOIN rue r         ON r.idRue = ha1.idRue\n\t\t\tLEFT JOIN sousQuartier sq    ON sq.idSousQuartier = IF(ha1.idRue='0' and ha1.idSousQuartier!='0' , ha1.idSousQuartier , r.idSousQuartier )\n\t\t\tLEFT JOIN quartier q        ON q.idQuartier = IF(ha1.idRue='0' and ha1.idSousQuartier='0' and ha1.idQuartier!='0' , ha1.idQuartier , sq.idQuartier )\n\t\t\tLEFT JOIN ville v        ON v.idVille = IF(ha1.idRue='0' and ha1.idSousQuartier='0' and ha1.idQuartier='0' and ha1.idVille!='0' , ha1.idVille , q.idVille )\n\t\t\tLEFT JOIN pays p        ON p.idPays = IF(ha1.idRue='0' and ha1.idSousQuartier='0' and ha1.idQuartier='0' and ha1.idVille='0' and ha1.idPays!='0' , ha1.idPays , v.idPays )\n\n\t\t\tLEFT JOIN _adresseEvenement ae ON ae.idAdresse = ha1.idAdresse\n\t\t\tLEFT JOIN _evenementEvenement ee ON ee.idEvenement = ae.idEvenement\n\t\t\tLEFT JOIN evenements he1 ON he1.idEvenement = ee.idEvenementAssocie\n\t\t\tLEFT JOIN evenements he2 ON he2.idEvenement = he1.idEvenement\n\n\t\t\tLEFT JOIN _evenementPersonne ep ON ep.idEvenement = he1.idEvenement\n\t\t\tLEFT JOIN personne pers ON pers.idPersonne = ep.idPersonne\n\t\t\tLEFT JOIN indicatif ind ON ind.idIndicatif = ha1.idIndicatif\n\t\t\t" . $sqlJoin . "\n\n\n\t\t\tWHERE\n\t\t\tha2.idAdresse = ha1.idAdresse\n\n\t\t\t" . $sqlWhere . " " . $sqlAdressesSupplementaires . " " . $sqlEvenementsGroupeAdressesSupplementaires . " " . $sqlSelectionExterne . " " . $sqlMotCle . "\n\t\t\t" . $sqlSelectCoordonnees . " " . $sqlAdressesSupplementairesRechercheRelancee . " " . $whereVillesModerees . "\n\t\t\tAND ae.idAdresse IS NOT NULL\n\t\t\tGROUP BY ha1.idAdresse, he1.idEvenement, ha1.idHistoriqueAdresse\n\t\t\tHAVING ha1.idHistoriqueAdresse = max(ha2.idHistoriqueAdresse)\n\t\t\tORDER BY  " . $sqlOrderBy . "\n\t\t\tDESC,  CAST(ha1.numero as signed) ASC";
         if (!isset($params['sqlNoLimit']) || $params['sqlNoLimit'] == false) {
             $sql .= " LIMIT " . $sqlLimit . "\n\t\t\t\t\t\t";
         } else {
             debug($sql);
             die(debug(debug_backtrace()));
         }
         /*debug($sql);
         		debug(array(
         				"sqlWhere" => (!isset($sqlWhere) || $sqlWhere=="" || $sqlWhere==" "),
         				"sqlAdressesSupplementaires"=>(!isset($sqlAdressesSupplementaires) || $sqlAdressesSupplementaires=="" || $sqlAdressesSupplementaires==" "),
         				'sqlEvenementAddressesSupplementaire'=>(!isset($sqlEvenementsGroupeAdressesSupplementaires) || $sqlEvenementsGroupeAdressesSupplementaires=="" || $sqlEvenementsGroupeAdressesSupplementaires==" "),
         				'sqlSelectionExterne'=>(!isset($sqlSelectionExterne) || $sqlSelectionExterne=="" || $sqlSelectionExterne==" "),
         				'sqlMotCle'=>(!isset($sqlMotCle) || $sqlMotCle=="" || $sqlMotCle==" "),
         				'sqlSElectCoord'=>(!isset($sqlSelectCoordonnees) || $sqlSelectCoordonnees=="" || $sqlSelectCoordonnees==" "),
         				'sqlAddressSupplRechercheRelancee'=> (!isset($sqlAdressesSupplementairesRechercheRelancee) || $sqlAdressesSupplementairesRechercheRelancee=="" || $sqlAdressesSupplementairesRechercheRelancee==" "),
         				'whereVilleModerees' => (!isset($whereVillesModerees) || $whereVillesModerees=="" || $whereVillesModerees==" ")
         		));
         		*/
         if ((!isset($sqlWhere) || $sqlWhere == "" || $sqlWhere == " ") && (!isset($sqlAdressesSupplementaires) || $sqlAdressesSupplementaires == "" || $sqlAdressesSupplementaires == " ") && (!isset($sqlEvenementsGroupeAdressesSupplementaires) || $sqlEvenementsGroupeAdressesSupplementaires == "" || $sqlEvenementsGroupeAdressesSupplementaires == " ") && (!isset($sqlSelectionExterne) || $sqlSelectionExterne == "" || $sqlSelectionExterne == " ") && (!isset($sqlMotCle) || $sqlMotCle == "" || $sqlMotCle == " ") && (!isset($sqlSelectCoordonnees) || $sqlSelectCoordonnees == "" || $sqlSelectCoordonnees == " ") && (!isset($sqlAdressesSupplementairesRechercheRelancee) || $sqlAdressesSupplementairesRechercheRelancee == "" || $sqlAdressesSupplementairesRechercheRelancee == " ") && (!isset($whereVillesModerees) || $whereVillesModerees == "" || $whereVillesModerees == " ")) {
             die(debug(debug_backtrace()));
             /*
             	debug(array(
             		"sqlWhere" => $sqlWhere,
             		"sqlAdressesSupplementaires"=>$sqlAdressesSupplementaires,
             		'sqlEvenementAddressesSupplementaire'=>$sqlEvenementsGroupeAdressesSupplementaires,
             		'sqlSelectionExterne'=>$sqlSelectionExterne,
             		'sqlMotCle'=>$sqlMotCle,
             		'sqlSElectCoord'=>$sqlSelectCoordonnees,
             		'sqlAddressSupplRechercheRelancee'=> $sqlAdressesSupplementairesRechercheRelancee,
             		'whereVilleModerees' => $whereVillesModerees
             ));
             */
         }
         /*
         debug(array(
         		"sqlWhere" => $sqlWhere,
         		"sqlAdressesSupplementaires"=>$sqlAdressesSupplementaires,
         		'sqlEvenementAddressesSupplementaire'=>$sqlEvenementsGroupeAdressesSupplementaires,
         		'sqlSelectionExterne'=>$sqlSelectionExterne,
         		'sqlMotCle'=>$sqlMotCle,
         		'sqlSElectCoord'=>$sqlSelectCoordonnees,
         		'sqlAddressSupplRechercheRelancee'=> $sqlAdressesSupplementairesRechercheRelancee,
         		'whereVilleModerees' => $whereVillesModerees
         ));
         */
         // ***************************************************************************************************************************************
         // affichage des resultats de la recherche
         // ***************************************************************************************************************************************
         //debug($sql);
         $requeteAdresse = $this->connexionBdd->requete($sql);
         // dans le cas de la popup on ne veut pas afficher le detail d'une adresse
         // ceci arrive quand le resultat de la recherche ne renvoit qu'un resultat ,  par defaut on va sur l'evenement,  sauf pour les cas suivant:
         switch ($modeAffichage) {
             case 'popupAjoutAdressesLieesSurEvenement':
             case 'popupRechercheAdressePrisDepuis':
             case 'popupRechercheAdresseVueSur':
             case 'popupRechercheAdresseAdminParcours':
             case 'popupDeplacerEvenementVersGroupeAdresse':
             case 'personnalite':
                 $criteres['desactivateRedirection'] = true;
                 break;
             default:
                 break;
         }
         // dans le cas de la liste des adresses des sources (menu 'nos sources'),  on ne fait pas de redirection sur le detail s'il n'y a qu'une seule adresse
         if (isset($this->variablesGet['archiAffichage']) && $this->variablesGet['archiAffichage'] == 'listeAdressesFromSource') {
             $criteres['desactivateRedirection'] = true;
         }
         // si on utilise le template par defaut ,  c'est qu'on est dans un affichage de resultat de recherche ,  sinon c'est un affichage de detail d'adresse
         if (!isset($criteres['useTemplateFile']) && $nbReponses == 1 && !isset($criteres['desactivateRedirection'])) {
             $fetch = mysql_fetch_assoc($requeteAdresse);
             // s'il n'y a qu'un seul resultat a la recherche on redirige automatiquement vers le resultat
             // a voir pour ne pas utiliser le javascript et afficher directement avec la fonction afficherDetail
             $fetchIdAdresse = $this->getFetchOneAdresseElementsFromGroupeAdresse($fetch['idEvenementGA']);
             header("Location: " . $this->creerUrl('', '', array('archiAffichage' => 'adresseDetail', 'archiIdAdresse' => $fetchIdAdresse['idAdresse'], 'archiIdEvenementGroupeAdresse' => $fetch['idEvenementGA']), false, false));
         } else {
             if (mysql_num_rows($requeteAdresse) > 0) {
                 while ($fetch = mysql_fetch_assoc($requeteAdresse)) {
                     // on recupere un idAdresse,  idQuartier ,  idRue etc appartenant au groupe d'adresse pour l'urlRewriting
                     /*
                      * Desactivated for now because we are getting all the necessary fields in the previous request
                      */
                     // *******************************************************************************************************************
                     // recuperation de l'adresse
                     // *******************************************************************************************************************
                     // *******************************************************************************************************************
                     // titre de l'evenement ajouté derriere l'adresse
                     // on prend le premier titre qui n'est pas vide
                     // et on fabrique le lien avec l'ancre vers l'evenement qui pourra etre cliqué directement
                     // on a une adresse qui correspond a un groupe d'adresse ,  on va donc chercher le titre des evenements qui correspondent au groupe d'adresse
                     switch ($modeAffichage) {
                         case 'popupRechercheAdressePrisDepuis':
                         case 'popupRechercheAdresseVueSur':
                             // pas d'affichage des evenements dans le cas des popups sur la modification d'image
                             $titresEvenements = "";
                             break;
                         default:
                             // dans les autres cas on affiche les evenements
                             $titresEvenements = "";
                             $tabTitresEvenements = array();
                             $reqTitresEvenements = "\n\t\t\t\t\t\t\t\t\t\tSELECT he1.titre as titre ,  ae.idAdresse as idAdresse,  he1.idSource as idSource,  he1.numeroArchive as numeroArchive\n\t\t\t\t\t\t\t\t\t\tFROM evenements he1,  evenements he2\n\t\t\t\t\t\t\t\t\t\tRIGHT JOIN _evenementEvenement ee ON ee.idEvenement = " . $fetch['idEvenementGA'] . "\n\t\t\t\t\t\t\t\t\t\t\t\tRIGHT JOIN _adresseEvenement ae ON ae.idEvenement = ee.idEvenement\n\t\t\t\t\t\t\t\t\t\t\t\tWHERE he2.idEvenement = he1.idEvenement\n\t\t\t\t\t\t\t\t\t\t\t\tAND he1.idEvenement = ee.idEvenementAssocie\n\t\t\t\t\t\t\t\t\t\t\t\tGROUP BY he1.idEvenement\n\t\t\t\t\t\t\t\t\t\t\t\tORDER BY he1.dateDebut, he1.idEvenement\n\t\t\t\t\t\t\t\t\t\t\t\t";
                             $resTitresEvenements = $this->connexionBdd->requete($reqTitresEvenements);
                             $positionAncre = 0;
                             while ($fetchTitresEvenements = mysql_fetch_assoc($resTitresEvenements)) {
                                 if (trim($fetchTitresEvenements['titre']) != '') {
                                     $baliseDebutEvenementConcerne = "";
                                     $baliseFinEvenementConcerne = "";
                                     // si on est en mode affichage de la liste des sources sur menu "nos sources"
                                     if (isset($this->variablesGet['archiAffichage']) && $this->variablesGet['archiAffichage'] == 'listeAdressesFromSource' && isset($this->variablesGet['source']) && $fetchTitresEvenements['idSource'] == $this->variablesGet['source'] || $fetchTitresEvenements['idSource'] == 0 && $fetchTitresEvenements['numeroArchive'] != '' && isset($this->variablesGet['source']) && $this->variablesGet['source'] == 24) {
                                         $baliseDebutEvenementConcerne = "<b>";
                                         $baliseFinEvenementConcerne = "</b>";
                                     }
                                     $tabTitresEvenements[] = "<a href='" . $this->creerUrl('', '', array('archiIdAdresse' => $fetch['idAdresse'], 'archiAffichage' => 'adresseDetail', 'archiIdEvenementGroupeAdresse' => $fetch['idEvenementGA'], 'debut' => '')) . "#" . $positionAncre . "'>" . $baliseDebutEvenementConcerne . stripslashes($fetchTitresEvenements['titre']) . $baliseFinEvenementConcerne . "</a>";
                                 }
                                 $positionAncre++;
                             }
                             $titresEvenements = implode(' - ', $tabTitresEvenements);
                             break;
                     }
                     // *******************************************************************************************************************
                     $stringObject = new stringObject();
                     // recherche de l'intitule de l'adresse
                     if (isset($this->variablesGet['archiAffichage']) && $this->variablesGet['archiAffichage'] != 'recherche') {
                         switch ($this->variablesGet['archiAffichage']) {
                             case 'listeAdressesFromRue':
                                 $nomAdresse = '';
                                 $nomAdresse = stripslashes($this->getIntituleAdresseFrom($fetch['idEvenementGA'], 'idEvenementGroupeAdresse', array('styleCSSAdresse' => "style='font-size:12px;'", 'displayFirstTitreAdresse' => true, 'isAfficheAdresseStyle' => true)));
                                 //$nomAdresse = stripslashes($this->getIntituleAdresse($fetch, array('styleCSSAdresse'=>"style='font-size:12px;'", 'displayFirstTitreAdresse'=>true, 'isAfficheAdresseStyle'=>true)));
                                 $nomAdresseNoStyle = stripslashes($this->getIntituleAdresseFrom($fetch['idEvenementGA'], 'idEvenementGroupeAdresse'));
                                 break;
                             default:
                                 $nomAdresse = '';
                                 $nomAdresse = stripslashes($this->getIntituleAdresse($fetch));
                                 $nomAdresseNoStyle = $nomAdresse;
                                 break;
                         }
                     } elseif (isset($this->variablesGet['archiAffichage']) && $this->variablesGet['archiAffichage'] == 'recherche') {
                         $nomAdresse = '';
                         $nomAdresse = stripslashes($this->getIntituleAdresseFrom($fetch['idEvenementGA'], 'idEvenementGroupeAdresse', array('styleCSSAdresse' => "style='font-size:12px;'", 'displayFirstTitreAdresse' => true, 'isAfficheAdresseStyle' => true)));
                         $nomAdresseNoStyle = stripslashes($this->getIntituleAdresseFrom($fetch['idEvenementGA'], 'idEvenementGroupeAdresse'));
                     } else {
                         $nomAdresse = '';
                         $nomAdresse = stripslashes($this->getIntituleAdresse($fetch));
                         $nomAdresseNoStyle = $nomAdresse;
                     }
                     // mise en place du lien de l'adresse suivant l'affichage ou l'on est
                     switch ($modeAffichage) {
                         case 'calqueImage':
                             $urlDetailHref = "#";
                             $urlDetailOnClick = "document.getElementById(document.getElementById('paramChampsAppelantAdresse').value).value='" . $fetch['idAdresse'] . "';document.getElementById(document.getElementById('paramChampsAppelantAdresse').value+'txt').value='" . $nomAdresse . "';document.getElementById('calqueAdresse').style.display='none';";
                             break;
                         case 'calqueImageChampsMultiples':
                             // les liens renvoient la valeur dans un champ select et non pas dans un champ texte ,  mais la meme popup peut etre appelé plusieurs fois pour plusieurs champs differents du meme type
                             $urlDetailHref = "#";
                             $urlDetailOnClick = "parent.document.getElementById(parent.document.getElementById('paramChampsAppelantAdresse').value).innerHTML+='<option selected=\\'selected\\' value=\\'" . $fetch['idAdresse'] . "\\'>" . addslashes($nomAdresse) . "</option>';";
                             $urlNomRue = '#';
                             $urlNomRueOnClick = "appelAjax('" . $this->creerUrl('', '', array_merge($this->variablesGet, array('selection' => 'rue', 'id' => $fetch['idRue'], 'debut' => 0))) . "', 'resultatsAdresse');";
                             $urlNomSousQuartier = '#';
                             $urlNomSousQuartierOnClick = "appelAjax('" . $this->creerUrl('', '', array_merge($this->variablesGet, array('selection' => 'sousQuartier', 'id' => $fetch['idSousQuartier'], 'debut' => 0))) . "', 'resultatsAdresse');";
                             $urlNomQuartier = '#';
                             $urlNomQuartierOnClick = "appelAjax('" . $this->creerUrl('', '', array_merge($this->variablesGet, array('selection' => 'quartier', 'id' => $fetch['idQuartier'], 'debut' => 0))) . "', 'resultatsAdresse');";
                             $urlNomVille = '#';
                             $urlNomVilleOnClick = "appelAjax('" . $this->creerUrl('', '', array_merge($this->variablesGet, array('selection' => 'ville', 'id' => $fetch['idVille'], 'debut' => 0))) . "', 'resultatsAdresse');";
                             $urlNomPays = '#';
                             $urlNomPaysOnClick = "appelAjax('" . $this->creerUrl('', '', array_merge($this->variablesGet, array('selection' => 'pays', 'id' => $fetch['idPays'], 'debut' => 0))) . "', 'resultatsAdresse');";
                             break;
                         case 'calqueImageChampsMultiplesRetourSimple':
                             // les liens renvoient la valeur dans un champ texte et non pas dans une liste multiple ,  mais la meme popup peut etre appelé plusieurs fois pour plusieurs champs differents du meme type
                             $urlDetailHref = "#";
                             $urlDetailOnClick = "parent.document.getElementById(parent.document.getElementById('paramChampsAppelantAdresse').value).value='" . $fetch['idAdresse'] . "'; parent.document.getElementById(parent.document.getElementById('paramChampsAppelantAdresse').value+'txt').value='" . addslashes($nomAdresse) . "';";
                             $urlNomRue = '#';
                             $urlNomRueOnClick = "appelAjax('" . $this->creerUrl('', '', array_merge($this->variablesGet, array('selection' => 'rue', 'id' => $fetch['idRue'], 'debut' => 0))) . "', 'resultatsAdresse');";
                             $urlNomSousQuartier = '#';
                             $urlNomSousQuartierOnClick = "appelAjax('" . $this->creerUrl('', '', array_merge($this->variablesGet, array('selection' => 'sousQuartier', 'id' => $fetch['idSousQuartier'], 'debut' => 0))) . "', 'resultatsAdresse');";
                             $urlNomQuartier = '#';
                             $urlNomQuartierOnClick = "appelAjax('" . $this->creerUrl('', '', array_merge($this->variablesGet, array('selection' => 'quartier', 'id' => $fetch['idQuartier'], 'debut' => 0))) . "', 'resultatsAdresse');";
                             $urlNomVille = '#';
                             $urlNomVilleOnClick = "appelAjax('" . $this->creerUrl('', '', array_merge($this->variablesGet, array('selection' => 'ville', 'id' => $fetch['idVille'], 'debut' => 0))) . "', 'resultatsAdresse');";
                             $urlNomPays = '#';
                             $urlNomPaysOnClick = "appelAjax('" . $this->creerUrl('', '', array_merge($this->variablesGet, array('selection' => 'pays', 'id' => $fetch['idPays'], 'debut' => 0))) . "', 'resultatsAdresse');";
                             break;
                         case 'calqueEvenement':
                             $urlDetailHref = "#";
                             $urlDetailOnClick = "parent.document.getElementById('adresses').innerHTML+='<option selected=\\'selected\\' value=\\'" . $fetch['idAdresse'] . "\\'>" . addslashes($nomAdresse) . "</option>';";
                             $urlNomRue = '#';
                             $urlNomRueOnClick = "appelAjax('" . $this->creerUrl('', '', array_merge($this->variablesGet, array('selection' => 'rue', 'id' => $fetch['idRue'], 'debut' => 0))) . "', 'resultatsAdresse');";
                             $urlNomSousQuartier = '#';
                             $urlNomSousQuartierOnClick = "appelAjax('" . $this->creerUrl('', '', array_merge($this->variablesGet, array('selection' => 'sousQuartier', 'id' => $fetch['idSousQuartier'], 'debut' => 0))) . "', 'resultatsAdresse');";
                             $urlNomQuartier = '#';
                             $urlNomQuartierOnClick = "appelAjax('" . $this->creerUrl('', '', array_merge($this->variablesGet, array('selection' => 'quartier', 'id' => $fetch['idQuartier'], 'debut' => 0))) . "', 'resultatsAdresse');";
                             $urlNomVille = '#';
                             $urlNomVilleOnClick = "appelAjax('" . $this->creerUrl('', '', array_merge($this->variablesGet, array('selection' => 'ville', 'id' => $fetch['idVille'], 'debut' => 0))) . "', 'resultatsAdresse');";
                             $urlNomPays = '#';
                             $urlNomPaysOnClick = "appelAjax('" . $this->creerUrl('', '', array_merge($this->variablesGet, array('selection' => 'pays', 'id' => $fetch['idPays'], 'debut' => 0))) . "', 'resultatsAdresse');";
                             break;
                         case 'popupRechercheAdressePrisDepuis':
                             $urlDetailHref = "#";
                             $urlDetailOnClick = "parent.document.getElementById('listePrisDepuisDiv'+parent.document.getElementById('identifiantRetour').value).innerHTML+='" . str_replace(array("'", "\""), array("\\'", "&#34;"), $nomAdresse) . "<a  style=\\'cursor:pointer;\\' onclick=\\'retirerPrisDepuis(&#34;" . $fetch['idAdresse'] . "_" . $fetch['idEvenementGA'] . "&#34;, '+parent.document.getElementById('identifiantRetour').value+');\\'>(-)</a><br>';parent.document.getElementById('prisDepuis'+parent.document.getElementById('identifiantRetour').value).innerHTML+='<option value=\\'" . $fetch["idAdresse"] . "_" . $fetch['idEvenementGA'] . "\\' SELECTED>" . str_replace(array("'", "\""), array("\\'", "&#34;"), $nomAdresse) . "</option>';";
                             $urlNomRue = $this->creerUrl('', '', array_merge($this->variablesGet, array('selection' => 'rue', 'id' => $fetch['idRue'], 'debut' => 0)));
                             $urlNomRueOnClick = '';
                             $urlNomSousQuartier = $this->creerUrl('', '', array_merge($this->variablesGet, array('selection' => 'sousQuartier', 'id' => $fetch['idSousQuartier'], 'debut' => 0)));
                             $urlNomSousQuartierOnClick = '';
                             $urlNomQuartier = $this->creerUrl('', '', array_merge($this->variablesGet, array('selection' => 'quartier', 'id' => $fetch['idQuartier'], 'debut' => 0)));
                             $urlNomQuartierOnClick = '';
                             $urlNomVille = $this->creerUrl('', '', array_merge($this->variablesGet, array('selection' => 'ville', 'id' => $fetch['idVille'], 'debut' => 0)));
                             $urlNomVilleOnClick = '';
                             $urlNomPays = $this->creerUrl('', '', array_merge($this->variablesGet, array('selection' => 'pays', 'id' => $fetch['idPays'], 'debut' => 0)));
                             $urlNomPaysOnClick = '';
                             break;
                         case 'popupRechercheAdresseVueSur':
                             $urlDetailHref = "#";
                             $urlDetailOnClick = "parent.document.getElementById('listeVueSurDiv'+parent.document.getElementById('identifiantRetour').value).innerHTML+='" . str_replace(array("'", "\""), array("\\'", "    &#34;"), $nomAdresse) . "<a style=\\'cursor:pointer;\\' onclick=\\' retirerVueSur(&#34;" . $fetch['idAdresse'] . "_" . $fetch['idEvenementGA'] . "&#34;, &#34;'+parent.document.getElementById('identifiantRetour').value+'&#34;); \\'>(-)</a><br>';\n\n\t\t\t\t\t\t\t\t\t\tparent.document.getElementById('vueSur'+parent.document.getElementById('identifiantRetour').value).innerHTML+='<option value=\\'" . $fetch['idAdresse'] . "_" . $fetch['idEvenementGA'] . "\\' SELECTED>" . str_replace(array("'", "\""), array("\\'", "&#34;"), $nomAdresse) . "</option>';";
                             $urlNomRue = $this->creerUrl('', '', array_merge($this->variablesGet, array('selection' => 'rue', 'id' => $fetch['idRue'], 'debut' => 0)));
                             $urlNomRueOnClick = '';
                             $urlNomSousQuartier = $this->creerUrl('', '', array_merge($this->variablesGet, array('selection' => 'sousQuartier', 'id' => $fetch['idSousQuartier'], 'debut' => 0)));
                             $urlNomSousQuartierOnClick = '';
                             $urlNomQuartier = $this->creerUrl('', '', array_merge($this->variablesGet, array('selection' => 'quartier', 'id' => $fetch['idQuartier'], 'debut' => 0)));
                             $urlNomQuartierOnClick = '';
                             $urlNomVille = $this->creerUrl('', '', array_merge($this->variablesGet, array('selection' => 'ville', 'id' => $fetch['idVille'], 'debut' => 0)));
                             $urlNomVilleOnClick = '';
                             $urlNomPays = $this->creerUrl('', '', array_merge($this->variablesGet, array('selection' => 'pays', 'id' => $fetch['idPays'], 'debut' => 0)));
                             $urlNomPaysOnClick = '';
                             break;
                         case "popupAjoutAdressesLieesSurEvenement":
                             $urlDetailHref = "#";
                             $urlDetailOnClick = "parent.document.getElementById('listeGroupesAdressesLiees').innerHTML+='" . str_replace("'", "\\'", $nomAdresse) . "<a  style=\\'cursor:pointer\\' onclick=\\'retirerGroupeAdresse(" . $fetch['idEvenementGA'] . ");\\'>(-)</a><br>';parent.document.getElementById('listeIdGroupesAdressesLiees').innerHTML+='<option value=\\'" . $fetch["idEvenementGA"] . "\\' SELECTED>" . str_replace("'", "\\'", $nomAdresse) . "</option>';";
                             $urlNomRue = $this->creerUrl('', '', array_merge($this->variablesGet, array('selection' => 'rue', 'id' => $fetch['idRue'], 'debut' => 0)));
                             $urlNomRueOnClick = '';
                             $urlNomSousQuartier = $this->creerUrl('', '', array_merge($this->variablesGet, array('selection' => 'sousQuartier', 'id' => $fetch['idSousQuartier'], 'debut' => 0)));
                             $urlNomSousQuartierOnClick = '';
                             $urlNomQuartier = $this->creerUrl('', '', array_merge($this->variablesGet, array('selection' => 'quartier', 'id' => $fetch['idQuartier'], 'debut' => 0)));
                             $urlNomQuartierOnClick = '';
                             $urlNomVille = $this->creerUrl('', '', array_merge($this->variablesGet, array('selection' => 'ville', 'id' => $fetch['idVille'], 'debut' => 0)));
                             $urlNomVilleOnClick = '';
                             $urlNomPays = $this->creerUrl('', '', array_merge($this->variablesGet, array('selection' => 'pays', 'id' => $fetch['idPays'], 'debut' => 0)));
                             $urlNomPaysOnClick = '';
                             break;
                         case "popupDeplacerEvenementVersGroupeAdresse":
                             $urlDetailHref = "#";
                             $urlDetailOnClick = "if (confirm('Etes vous sûr de vouloir deplacer cet événement ?')){parent.location.href='" . $this->creerUrl('deplacerEvenementVersGA', 'evenement', array('idEvenementADeplacer' => $this->variablesGet['idEvenementADeplacer'], 'deplacerVersIdGroupeAdresse' => $fetch['idEvenementGA'], 'idEvenement' => $this->variablesGet['idEvenementADeplacer'])) . "';}";
                             $urlNomRue = $this->creerUrl('', '', array_merge($this->variablesGet, array('selection' => 'rue', 'id' => $fetch['idRue'], 'debut' => 0)));
                             $urlNomRueOnClick = '';
                             $urlNomSousQuartier = $this->creerUrl('', '', array_merge($this->variablesGet, array('selection' => 'sousQuartier', 'id' => $fetch['idSousQuartier'], 'debut' => 0)));
                             $urlNomSousQuartierOnClick = '';
                             $urlNomQuartier = $this->creerUrl('', '', array_merge($this->variablesGet, array('selection' => 'quartier', 'id' => $fetch['idQuartier'], 'debut' => 0)));
                             $urlNomQuartierOnClick = '';
                             $urlNomVille = $this->creerUrl('', '', array_merge($this->variablesGet, array('selection' => 'ville', 'id' => $fetch['idVille'], 'debut' => 0)));
                             $urlNomVilleOnClick = '';
                             $urlNomPays = $this->creerUrl('', '', array_merge($this->variablesGet, array('selection' => 'pays', 'id' => $fetch['idPays'], 'debut' => 0)));
                             $urlNomPaysOnClick = '';
                             break;
                         case 'popupRechercheAdresseAdminParcours':
                             $urlDetailHref = "#";
                             $urlDetailOnClick = "parent.document.getElementById('libelleEvenementGroupeAdresse').value='" . str_replace("'", "\\'", $nomAdresseNoStyle) . "';parent.document.getElementById('idEvenementGroupeAdresse').value='" . $fetch['idEvenementGA'] . "';parent.document.getElementById('divpopupChoixAdresses').style.display='none';";
                             $urlNomRue = $this->creerUrl('', '', array_merge($this->variablesGet, array('selection' => 'rue', 'id' => $fetch['idRue'], 'debut' => 0)));
                             $urlNomRueOnClick = '';
                             $urlNomSousQuartier = $this->creerUrl('', '', array_merge($this->variablesGet, array('selection' => 'sousQuartier', 'id' => $fetch['idSousQuartier'], 'debut' => 0)));
                             $urlNomSousQuartierOnClick = '';
                             $urlNomQuartier = $this->creerUrl('', '', array_merge($this->variablesGet, array('selection' => 'quartier', 'id' => $fetch['idQuartier'], 'debut' => 0)));
                             $urlNomQuartierOnClick = '';
                             $urlNomVille = $this->creerUrl('', '', array_merge($this->variablesGet, array('selection' => 'ville', 'id' => $fetch['idVille'], 'debut' => 0)));
                             $urlNomVilleOnClick = '';
                             $urlNomPays = $this->creerUrl('', '', array_merge($this->variablesGet, array('selection' => 'pays', 'id' => $fetch['idPays'], 'debut' => 0)));
                             $urlNomPaysOnClick = '';
                             break;
                         default:
                             $criteresFiltres = array();
                             $urlDetailHref = $this->creerUrl('', '', array_merge($criteresFiltres, array('archiIdAdresse' => $fetch['idAdresse'], 'archiAffichage' => 'adresseDetail', 'archiIdEvenementGroupeAdresse' => $fetch['idEvenementGA'], 'debut' => '')));
                             $urlDetailOnClick = '';
                             $urlNomRue = $this->creerUrl('', '', array_merge($this->variablesGet, array('selection' => 'rue', 'id' => $fetch['idRue'], 'debut' => 0)));
                             $urlNomRueOnClick = '';
                             $urlNomSousQuartier = $this->creerUrl('', '', array_merge($this->variablesGet, array('selection' => 'sousQuartier', 'id' => $fetch['idSousQuartier'], 'debut' => 0)));
                             $urlNomSousQuartierOnClick = '';
                             $urlNomQuartier = $this->creerUrl('', '', array_merge($this->variablesGet, array('selection' => 'quartier', 'id' => $fetch['idQuartier'], 'debut' => 0)));
                             $urlNomQuartierOnClick = '';
                             $urlNomVille = $this->creerUrl('', '', array_merge($this->variablesGet, array('selection' => 'ville', 'id' => $fetch['idVille'], 'debut' => 0)));
                             $urlNomVilleOnClick = '';
                             $urlNomPays = $this->creerUrl('', '', array_merge($this->variablesGet, array('selection' => 'pays', 'id' => $fetch['idPays'], 'debut' => 0)));
                             $urlNomPaysOnClick = '';
                             // patch laurent pour gerer l'affichage de la liste des dependances d'une source dans l'admin
                             if (isset($this->variablesGet['archiAffichage']) && $this->variablesGet['archiAffichage'] == 'listeAdressesFromSource' && isset($this->variablesGet['source']) && $this->variablesGet['source'] != '' && isset($this->variablesGet['modeAdmin']) && $this->variablesGet['modeAdmin'] == '1') {
                                 $urlDetailOnClick = "parent.document.location.href='" . $urlDetailHref . "'";
                                 $urlDetailHref = "#";
                             }
                             break;
                     }
                     // recuperation d'une image d'illustration pour l'affichage de l'adresse
                     // on s'etonnera peut etre de voir en parametre un groupe d'adresse ET un idAdresse ,  voir l'historique
                     $illustration = $this->getUrlImageFromAdresse($fetch['idAdresse'], 'mini', array('idEvenementGroupeAdresse' => $fetch['idEvenementGA']));
                     // si on est en mode d'affichage du detail d'une adresse,  on affiche le titre de l'evenement avant la liste des adresses concernées par le groupe d'adresse
                     $titreAdresse = "";
                     $styleAdresse = "";
                     if ($modeAffichage == 'listeDesAdressesDuGroupeAdressesSurDetailAdresse') {
                         $idAdresse = 0;
                         if (isset($criteres['archiIdEvenement'])) {
                             $reqAdresse = "\n\t\t\t\t\t                SELECT  distinct ae.idAdresse as idAdresse\n\t\t\t\t\t                FROM _adresseEvenement ae\n\t\t\t\t\t                WHERE ae.idEvenement = '" . $criteres['archiIdEvenement'] . "'\n        \t\t\t\t\t\t";
                             $resAdresse = $this->connexionBdd->requete($reqAdresse);
                             $fetchAdresse = mysql_fetch_assoc($resAdresse);
                             $idAdresse = $fetchAdresse['idAdresse'];
                             $e = new archiEvenement();
                             $idEvenementTitreAdresses = $e->getIdEvenementTitre(array("idEvenementGroupeAdresse" => $criteres['archiIdEvenement']));
                             if ($this->variablesGet['archiAffichage'] == 'modifierEvenement') {
                                 $idEvenementTitreAdresses = $this->variablesGet['archiIdEvenement'];
                             }
                             $reqTitreAdresse = "\n\t\t\t\t\t\t\t\t\t\tSELECT he1.titre as titre\n\t\t\t\t\t\t\t\t\t\tFROM evenements he2,  evenements he1\n\t\t\t\t\t\t\t\t\t\tWHERE he2.idEvenement = he1.idEvenement\n\t\t\t\t\t\t\t\t\t\tAND he1.idEvenement='" . $idEvenementTitreAdresses . "'\n\t\t\t\t\t\t\t\t\t\t\t\tGROUP BY he1.idEvenement\n\t\t\t\t\t\t\t\t\t\t\t\t";
                             $resTitreAdresse = $this->connexionBdd->requete($reqTitreAdresse);
                             $fetchTitreAdresse = mysql_fetch_assoc($resTitreAdresse);
                             $titreAdresse = stripslashes($fetchTitreAdresse['titre']);
                             $t->assign_vars(array('titreAdresses' => $titreAdresse . "<br>"));
                             if ($idEvenementTitreAdresses != 0 && $titreAdresse != '') {
                                 $styleAdresse = "font-size:13px;";
                             }
                         } elseif (isset($this->variablesGet['archiIdEvenement'])) {
                             $reqAdresse = $this->getIdAdressesFromIdEvenement(array('idEvenement' => $this->variablesGet['archiIdEvenement']));
                             $resAdresse = $this->connexionBdd->requete($reqAdresse);
                             $fetchAdresse = mysql_fetch_assoc($resAdresse);
                             $idAdresse = $fetchAdresse['idAdresse'];
                             $e = new archiEvenement();
                             $idEvenementTitreAdresses = $e->getIdEvenementTitre(array("idEvenementGroupeAdresse" => $this->variablesGet['archiIdEvenement']));
                             $reqTitreAdresse = "\n\t\t\t\t\t\t\t\t\t\tSELECT he1.titre as titre\n\t\t\t\t\t\t\t\t\t\tFROM evenements he2,  evenements he1\n\t\t\t\t\t\t\t\t\t\tWHERE he2.idEvenement = he1.idEvenement\n\t\t\t\t\t\t\t\t\t\tAND he1.idEvenement='" . $idEvenementTitreAdresses . "'\n\t\t\t\t\t\t\t\t\t\t\t\tGROUP BY he1.idEvenement\n\t\t\t\t\t\t\t\t\t\t\t\t";
                             $resTitreAdresse = $this->connexionBdd->requete($reqTitreAdresse);
                             $fetchTitreAdresse = mysql_fetch_assoc($resTitreAdresse);
                             $titreAdresse = stripslashes($fetchTitreAdresse['titre']);
                             $t->assign_vars(array('titreAdresses' => $titreAdresse . "<br>"));
                             if ($idEvenementTitreAdresses != 0 && $titreAdresse != '') {
                                 $styleAdresse = "font-size:13px;";
                             }
                         } elseif (isset($this->variablesGet['archiIdAdresse'])) {
                             $idAdresse = $this->variablesGet['archiIdAdresse'];
                             $e = new archiEvenement();
                             $resGroupeAdresses = $this->getIdEvenementGroupeAdresseFromAdresse($idAdresse);
                             $fetchGroupeAdresses = mysql_fetch_assoc($resGroupeAdresses);
                             $idEvenementTitreAdresses = $e->getIdEvenementTitre(array("idEvenementGroupeAdresse" => $fetchGroupeAdresses['idEvenement']));
                             $reqTitreAdresse = "\n\t\t\t\t\t\t\t\t\t\tSELECT he1.titre as titre\n\t\t\t\t\t\t\t\t\t\tFROM evenements he2,  evenements he1\n\t\t\t\t\t\t\t\t\t\tWHERE he2.idEvenement = he1.idEvenement\n\t\t\t\t\t\t\t\t\t\tAND he1.idEvenement='" . $idEvenementTitreAdresses . "'\n\t\t\t\t\t\t\t\t\t\t\t\tGROUP BY he1.idEvenement\n\t\t\t\t\t\t\t\t\t\t\t\t";
                             $resTitreAdresse = $this->connexionBdd->requete($reqTitreAdresse);
                             $fetchTitreAdresse = mysql_fetch_assoc($resTitreAdresse);
                             $titreAdresse = stripslashes($fetchTitreAdresse['titre']);
                             $t->assign_vars(array('titreAdresses' => $titreAdresse . "<br>"));
                             if ($idEvenementTitreAdresses != 0 && $titreAdresse != '') {
                                 $styleAdresse = "font-size:13px;";
                             }
                         }
                     }
                     // a la suite de titresEvenements je rajoutes les images qui concerne la source courante quand on est en mode listeAdressesFromSource
                     if (isset($this->variablesGet['archiAffichage']) && $this->variablesGet['archiAffichage'] == 'listeAdressesFromSource' && isset($this->variablesGet['source']) && $this->variablesGet['source'] != '') {
                         $reqImagesSource = "\n\t\t\t\t\t\t\t\t\tSELECT hi1.idHistoriqueImage as idHistoriqueImage,  hi1.dateUpload as dateUpload, hi1.idImage as idImage,  ee.idEvenementAssocie as idEvenementAssocie\n\t\t\t\t\t\t\t\t\tFROM historiqueImage hi2,  historiqueImage hi1\n\t\t\t\t\t\t\t\t\tLEFT JOIN _evenementEvenement ee ON ee.idEvenement = '" . $fetch['idEvenementGA'] . "'\n\t\t\t\t\t\t\t\t\t\t\tLEFT JOIN _evenementImage ei ON ei.idEvenement = ee.idEvenementAssocie\n\t\t\t\t\t\t\t\t\t\t\tWHERE hi2.idImage = hi1.idImage\n\t\t\t\t\t\t\t\t\t\t\tAND hi1.idSource = '" . $this->variablesGet['source'] . "'\n\t\t\t\t\t\t\t\t\t\t\t\t\tAND hi1.idImage = ei.idImage\n\t\t\t\t\t\t\t\t\t\t\t\t\tGROUP BY hi1.idImage,  hi1.idHistoriqueImage\n\t\t\t\t\t\t\t\t\t\t\t\t\tHAVING hi1.idHistoriqueImage = max(hi2.idHistoriqueImage)\n\t\t\t\t\t\t\t\t\t\t\t\t\t";
                         $resImagesSource = $this->connexionBdd->requete($reqImagesSource);
                         if (mysql_num_rows($resImagesSource) > 0) {
                             $idAdresseSource = $this->getIdAdresseFromIdEvenementGroupeAdresse($fetch['idEvenementGA']);
                             if ($titresEvenements != "") {
                                 $titresEvenements .= "<br>";
                             }
                             while ($fetchImagesSource = mysql_fetch_assoc($resImagesSource)) {
                                 $lienDetailImageSource = $this->creerUrl('', 'imageDetail', array('archiRetourAffichage' => 'evenement', 'archiRetourIdName' => 'idEvenement', 'archiIdImage' => $fetchImagesSource['idImage'], 'archiIdAdresse' => $idAdresseSource, 'archiRetourIdValue' => $fetchImagesSource['idEvenementAssocie']));
                                 // ancien code avec l'extension '.jpg' qui buggait (pas d'affichage de miniature)
                                 //$titresEvenements.="<div style='float:left;padding-right:5px;'><a href='".$lienDetailImageSource."'><img src='".$this->getUrlImage("mini").$fetchImagesSource['dateUpload'].'/'.$fetchImagesSource['idHistoriqueImage']."'.jpg'' border=0></a></div>";
                                 // debug fabien du 20/12/2011
                                 $titresEvenements .= "<div style='float:left;padding-right:5px;'><a href='" . $lienDetailImageSource . "'><img src='" . $this->getUrlImage("mini") . $fetchImagesSource['dateUpload'] . '/' . $fetchImagesSource['idHistoriqueImage'] . ".jpg'" . " border=0></a></div>";
                             }
                             $titresEvenements .= "<div style='clear:both;'></div>";
                         }
                     }
                     $t->assign_block_vars('t.adresses', array('styleAdresses' => $styleAdresse, 'nom' => $nomAdresse, 'titresEvenements' => $titresEvenements, 'nomRue' => $fetch['nomRue'], 'nomSousQuartier' => $fetch['nomSousQuartier'], 'nomQuartier' => $fetch['nomQuartier'], 'nomVille' => $fetch['nomVille'], 'nomPays' => $fetch['nomPays'], 'urlNomRue' => $urlNomRue, 'urlNomRueOnClick' => $urlNomRueOnClick, 'urlNomSousQuartier' => $urlNomSousQuartier, 'urlNomSousQuartierOnClick' => $urlNomSousQuartierOnClick, 'urlNomQuartier' => $urlNomQuartier, 'urlNomQuartierOnClick' => $urlNomQuartierOnClick, 'urlNomVille' => $urlNomVille, 'urlNomVilleOnClick' => $urlNomVilleOnClick, 'urlNomPays' => $urlNomPays, 'urlNomPaysOnClick' => $urlNomPaysOnClick, 'urlDetailHref' => $urlDetailHref, 'urlDetailOnClick' => $urlDetailOnClick, 'urlImageIllustration' => 'resizeImage.php?id=' . $illustration['idHistoriqueImage'], 'alt' => ''));
                     $arrayRetour[] = "<a href='" . $this->creerUrl('', '', array('archiIdAdresse' => $fetch['idAdresse'], 'archiAffichage' => 'adresseDetail', 'debut' => '')) . "'>" . $nomAdresse . "</a>";
                     $arrayIdAdressesRetour[] = $fetch['idAdresse'];
                     $arrayIdEvenementsGARetour[] = $fetch['idEvenementGA'];
                     // **********************************************************************************************************************************************
                     // lien vers la liste des adresses relatives a l'adresse courante:
                     // **********************************************************************************************************************************************
                     $arrayRetourLiensVoirBatiments = $this->getArrayRetourLiensVoirBatiments($fetch['idAdresse']);
                     // **********************************************************************************************************************************************
                     // recherche des images liées a l'adresse et uniquement les images de la table de liaison _adresseImage
                     // **********************************************************************************************************************************************
                     $reqImageLiees = "    SELECT hi.idImage as idImage, hi.idHistoriqueImage as idHistoriqueImage, hi.dateUpload as dateUpload\n\t\t\t\t\t\t\t\tFROM historiqueImage hi2 ,  historiqueImage hi\n\t\t\t\t\t\t\t\tRIGHT JOIN _adresseImage ai ON hi.idImage = ai.idImage\n\t\t\t\t\t\t\t\tWHERE hi2.idImage = hi.idImage\n\t\t\t\t\t\t\t\tAND ai.idAdresse = '" . $fetch['idAdresse'] . "'\n\t\t\t\t\t\t\t\t\t\tGROUP BY hi.idImage, hi.idHistoriqueImage\n\t\t\t\t\t\t\t\t\t\tHAVING hi.idHistoriqueImage = max(hi2.idHistoriqueImage)\n\t\t\t\t\t\t\t\t\t\t";
                     $resImagesLiees = $this->connexionBdd->requete($reqImageLiees);
                     if (count($resImagesLiees) > 0) {
                         $t->assign_block_vars('t.adresses.isImagesLiees', array());
                     }
                     while ($fetchImagesLiees = mysql_fetch_assoc($resImagesLiees)) {
                         // on affiche l'image liee a l'adresse seulement si elle est différente de l'image d'illustration
                         //if ($fetchImagesLiees['idHistoriqueImage'] != $illustration['idHistoriqueImage'])
                         //{
                         $t->assign_block_vars('t.adresses.isImagesLiees.images', array('url' => $this->getUrlImage("mini") . $fetchImagesLiees['dateUpload'] . '/' . $fetchImagesLiees['idHistoriqueImage'] . '.jpg'));
                         //}
                     }
                     // **********************************************************************************************************************************************
                     $idDerniereAdresse = $fetch['idAdresse'];
                 }
             }
         }
     }
     ob_start();
     $t->pparse('listeAdresses');
     $html = ob_get_contents();
     ob_end_clean();
     return array('html' => $html, 'nbAdresses' => $nbAdresses, 'arrayLiens' => $arrayRetour, 'arrayIdAdresses' => $arrayIdAdressesRetour, 'arrayIdEvenementsGroupeAdresse' => $arrayIdEvenementsGARetour, 'arrayRetourLiensVoirBatiments' => $arrayRetourLiensVoirBatiments);
 }
 /**
  * Fonction permettant a l'administrateur de visualiser l'historique de l'image
  *
  * @param int $idImage ID de l'image
  *
  * @return string HTML
  * */
 public function afficheHistoriqueImage($idImage = 0)
 {
     $u = new archiUtilisateur();
     $html = "";
     $req = "SELECT idHistoriqueImage, dateUpload, idImage, idUtilisateur, description, dateCliche, isDateClicheEnviron, idSource FROM historiqueImage WHERE idImage='" . $idImage . "'";
     $res = $this->connexionBdd->requete($req);
     $t = new tableau();
     $d = new dateObject();
     $bb = new bbCodeObject();
     $s = new archiSource();
     $authentification = new archiAuthentification();
     $droitsObject = new droitsObject();
     $idProfilUtilisateur = $u->getIdProfilFromUtilisateur($authentification->getIdUtilisateur());
     $isRegenerationPossible = false;
     if ($droitsObject->isAuthorized('image_regenerer', $idProfilUtilisateur)) {
         $isRegenerationPossible = true;
     }
     while ($fetch = mysql_fetch_assoc($res)) {
         //$html.="<img src='".$this->getUrlImage("moyen").$fetch['dateUpload']."/".$fetch['idHistoriqueImage'].".jpg"."'><br>";
         $t->addValue("<img src='" . $this->getUrlImage("moyen") . $fetch['dateUpload'] . "/" . $fetch['idHistoriqueImage'] . ".jpg" . "'>", "valign=top");
         $arrayInfosUtilisateur = $u->getArrayInfosFromUtilisateur($fetch['idUtilisateur'], array('listeChamps' => 'nom, prenom'));
         $libelleUtilisateur = $arrayInfosUtilisateur['nom'] . " " . $arrayInfosUtilisateur['prenom'];
         $dateCliche = " - ";
         if ($fetch['dateCliche'] != '0000-00-00') {
             $environ = "";
             if ($fetch['isDateClicheEnviron'] == '1') {
                 $environ = "Environ ";
             }
             $dateCliche = $environ . $d->toFrenchAffichage($fetch['dateCliche']);
         }
         $libelleSource = $s->getSourceLibelle($fetch['idSource']);
         if ($libelleSource != '') {
             $libelleSource = "<tr><td><b>source : </b>" . $libelleSource . "</td></tr>";
         }
         $description = "";
         if ($fetch['description'] != '') {
             $description = "<tr><td><b>description :</b><br>" . $bb->convertToDisplay(array('text' => $fetch['description'])) . "</td></tr>";
         }
         $detailHistoriqueImage = "<table><tr><td>de <a href='" . $this->creerUrl('', 'detailProfilPublique', array('archiIdUtilisateur' => $fetch['idUtilisateur'])) . "'>" . $libelleUtilisateur . "</a> (le " . $d->toFrenchAffichage($fetch['dateUpload']) . ")</td></tr><tr><td><b>date cliché : </b>" . $dateCliche . "</td></tr>" . $description . "" . $libelleSource . "</table>";
         $t->addValue($detailHistoriqueImage);
         if ($isRegenerationPossible) {
             $reqRegenerationAvailable = "SELECT idHistoriqueImage ,  idImage ,  cheminImageUploadee FROM imagesUploadeesPourRegeneration WHERE idHistoriqueImage = '" . $fetch['idHistoriqueImage'] . "' AND idImage='" . $idImage . "'";
             $resRegenerationAvailable = $this->connexionBdd->requete($reqRegenerationAvailable);
             if (mysql_num_rows($resRegenerationAvailable) > 0) {
                 $fetchRegenerationAvailable = mysql_fetch_assoc($resRegenerationAvailable);
                 if (file_exists($this->getCheminPhysique() . "/images/uploadMultiple/" . $fetchRegenerationAvailable['cheminImageUploadee'])) {
                     $t->addValue("<input type='button' name='regenere' value='régéréner les photos à partir de la source' onclick=\"location.href='" . $this->creerUrl('regenereImageFromUploadDir', 'imageDetail', array('archiIdHistoriqueImage' => $fetch['idHistoriqueImage'], 'archiIdImage' => $idImage)) . "';\">");
                 } else {
                     $t->addValue("Enregistrement trouvé,  mais fichier source de régénération inexistant.");
                 }
             } else {
                 $t->addValue("Pas de régénération possible");
             }
         }
     }
     // En principe cette variable represente un idEvenement,  a changer pour l'id evenementGroupeAdresse
     if (isset($this->variablesGet['archiRetourIdValue']) && $this->variablesGet['archiRetourIdValue'] != '') {
         $adresse = new archiAdresse();
         $evenement = new archiEvenement();
         $idEvenementGroupeAdresse = $evenement->getIdEvenementGroupeAdresseFromIdEvenement($this->variablesGet['archiRetourIdValue']);
         $html .= $adresse->afficherRecapitulatifAdresses($idEvenementGroupeAdresse);
     }
     $html .= "<h2>Historique de l'image {$idImage}</h2>";
     if ($isRegenerationPossible) {
         $html .= $t->createHtmlTableFromArray(3, '', '', '');
     } else {
         $html .= $t->createHtmlTableFromArray(2, '', '', '');
     }
     return $html;
 }