public function afficherListe($criteres = array())
 {
     $html = "";
     $evenement = new archiEvenement();
     $arrayListeEvenements = $evenement->getIdEvenementsFromRecherche($criteres);
     $arrayListeEvenements = array_unique($arrayListeEvenements);
     $adresse = new archiAdresse();
     $arrayListeGroupesEvenementsParents = array();
     foreach ($arrayListeEvenements as $idEvenementFils) {
         $arrayListeGroupesEvenementsParents[] = $evenement->getParent($idEvenementFils);
     }
     $retour = $adresse->afficherListe(array('groupesAdressesSupplementairesExternes' => $arrayListeGroupesEvenementsParents), 'personnalite');
     $html .= $retour['html'];
     return $html;
 }
 public function afficheResultatsRechercheAvancee($params = array())
 {
     $html = "";
     $modeAffichage = 'recherche';
     $formulaire = new formGenerator();
     if (isset($this->variablesGet['submitRechercheAvancee'])) {
         $adresses = new archiAdresse();
         $tabForm = array('motcle' => array('default' => '', 'value' => '', 'required' => false, 'error' => '', 'type' => 'text'), 'pays' => array('default' => '0', 'value' => '', 'required' => false, 'error' => '', 'type' => 'numeric', 'checkExist' => array('table' => 'pays', 'primaryKey' => 'idPays')), 'ville' => array('default' => '0', 'value' => '', 'required' => false, 'error' => '', 'type' => 'numeric', 'checkExist' => array('table' => 'ville', 'primaryKey' => 'idVille')), 'quartier' => array('default' => '0', 'value' => '', 'required' => false, 'error' => '', 'type' => 'numeric', 'checkExist' => array('table' => 'quartier', 'primaryKey' => 'idQuartier')), 'sousQuartier' => array('default' => '0', 'value' => '', 'required' => false, 'error' => '', 'type' => 'numeric', 'checkExist' => array('table' => 'sousQuartier', 'primaryKey' => 'idSousQuartier')), 'rue' => array('default' => '0', 'value' => '', 'required' => false, 'error' => '', 'type' => 'multiple', 'checkExist' => array('table' => 'rue', 'primaryKey' => 'idRue')), 'courant' => array('default' => '0', 'value' => '', 'required' => false, 'error' => '', 'type' => 'multiple', 'checkExist' => array('table' => 'courantArchitectural', 'primaryKey' => 'idCourantArchitectural')), 'typeStructure' => array('default' => '0', 'value' => '', 'required' => false, 'error' => '', 'type' => 'numeric', 'checkExist' => array('table' => 'typeStructure', 'primaryKey' => 'idTypeStructure')), 'typeEvenement' => array('default' => '0', 'value' => '', 'required' => false, 'error' => '', 'type' => 'numeric', 'checkExist' => array('table' => 'typeEvenement', 'primaryKey' => 'idTypeEvenement')), 'source' => array('default' => '0', 'value' => '', 'required' => false, 'error' => '', 'type' => 'numeric', 'checkExist' => array('table' => 'source', 'primaryKey' => 'idSource')), 'personnes' => array('default' => 'aucune', 'value' => '', 'required' => false, 'error' => '', 'type' => 'multiple', 'checkExist' => array('table' => 'personne', 'primaryKey' => 'idPersonne')), 'anneeDebut' => array('default' => '', 'value' => '', 'required' => false, 'error' => '', 'type' => 'numeric'), 'anneeFin' => array('default' => '', 'value' => '', 'required' => false, 'error' => '', 'type' => 'numeric'), 'MH' => array('default' => '', 'value' => '', 'required' => false, 'error' => '', 'type' => 'checkbox'), 'ISMH' => array('default' => '', 'value' => '', 'required' => false, 'error' => '', 'type' => 'checkbox'));
         $erreur = $formulaire->getArrayFromPost($tabForm, $_GET);
         if (count($erreur) == 0) {
             foreach ($tabForm as $nom => $valeur) {
                 $criteres['recherche_' . $nom] = $valeur['value'];
             }
             if (isset($this->variablesGet['afficheResultatsSurCarte']) && $this->variablesGet['afficheResultatsSurCarte'] == '1') {
                 $checkedCheckBox = true;
                 $adresses = new archiAdresse();
                 $retourAdresses = $adresses->afficherListe($criteres, $modeAffichage, array('sqlLimitExterne' => "150"));
                 // on limite les resultats a 150 pour avoir au moins 100 groupes d'adresses différents
                 //$arrayIdAdresses = $retourAdresses['arrayIdAdresses'];
                 $arrayIdEvenementsGA = $retourAdresses['arrayIdEvenementsGroupeAdresse'];
                 $gm = new googleMap(array('googleMapKey' => $this->googleMapKey, 'width' => 700, 'height' => 500, 'zoom' => 13));
                 $this->addToJsHeader($gm->getJsFunctions());
                 // ajout des fonctions de google map dans le header
                 // on affiche uniquement les 100 premieres coordonnées
                 // preparation du tableau de liste de coordonnées a transmettre a la classe googlemap
                 $listeCoordonnees = array();
                 $arrayIdEvenementGroupeAdressesConfigGMap = array();
                 for ($i = 0; $i < 100 && isset($arrayIdEvenementsGA[$i]); $i++) {
                     $reqCoordonnees = "\n\t\t\t\t\t\t\t\tSELECT     IF(ae.latitudeGroupeAdresse<>'0',ae.latitudeGroupeAdresse,ha1.latitude) as latitude,\n\t\t\t\t\t\t\t\tIF(ae.longitudeGroupeAdresse<>'0', ae.longitudeGroupeAdresse,ha1.longitude) as longitude\n\t\t\t\t\t\t\t\tFROM historiqueAdresse ha2, historiqueAdresse ha1\n\t\t\t\t\t\t\t\tLEFT JOIN _adresseEvenement ae ON ae.idAdresse = ha1.idAdresse\n\t\t\t\t\t\t\t\tWHERE ha2.idAdresse = ha1.idAdresse\n\t\t\t\t\t\t\t\tAND ha1.longitude!=''\n\t\t\t\t\t\t\t\tAND ha1.latitude!=''\n\t\t\t\t\t\t\t\tAND ha1.longitude!='0'\n\t\t\t\t\t\t\t\tAND ha1.latitude!='0'\n\t\t\t\t\t\t\t\tAND ha1.longitude IS NOT NULL\n\t\t\t\t\t\t\t\tAND ha1.latitude IS NOT NULL\n\t\t\t\t\t\t\t\tAND ae.idEvenement = '" . $arrayIdEvenementsGA[$i] . "'\n\t\t\t\t\t\t\t\t\t\tGROUP BY ha1.idAdresse,ha1.idHistoriqueAdresse\n\t\t\t\t\t\t\t\t\t\tHAVING ha1.idHistoriqueAdresse = max(ha2.idHistoriqueAdresse)\n\n\t\t\t\t\t\t\t\t\t\t";
                     $resCoordonnees = $this->connexionBdd->requete($reqCoordonnees);
                     $arrayIdEvenementGroupeAdressesConfigGMap[$i]['idEvenementGroupeAdresse'] = $arrayIdEvenementsGA[$i];
                     if (mysql_num_rows($resCoordonnees) > 0) {
                         $fetchCoordonnees = mysql_fetch_assoc($resCoordonnees);
                         $arrayIdEvenementGroupeAdressesConfigGMap[$i]['longitude'] = $fetchCoordonnees['longitude'];
                         $arrayIdEvenementGroupeAdressesConfigGMap[$i]['latitude'] = $fetchCoordonnees['latitude'];
                     } else {
                         $arrayIdEvenementGroupeAdressesConfigGMap[$i]['longitude'] = 0;
                         $arrayIdEvenementGroupeAdressesConfigGMap[$i]['latitude'] = 0;
                     }
                 }
                 $retourConfig = $adresses->getArrayGoogleMapConfigCoordonneesFromCenter(array('arrayIdEvenementsGroupeAdresse' => $arrayIdEvenementGroupeAdressesConfigGMap));
                 $html = "<h1>" . _("Résultats de la recherche avancée :") . "</h1>";
                 if ($retourAdresses['nbAdresses'] == 0) {
                     $html .= _("aucun résultat.") . "<br><br>";
                 } else {
                     $html .= "<br>" . $retourAdresses['nbAdresses'] . " " . _("résultats.") . "<br>";
                 }
                 $html .= $gm->getMap(array('listeCoordonnees' => $retourConfig['arrayConfigCoordonnees'], 'urlImageIcon' => $this->urlImages . "pointGM.png", 'pathImageIcon' => $this->getCheminPhysique() . "images/pointGM.png", 'setAutomaticCentering' => true));
             } else {
                 $retourAdresses = $adresses->afficherListe($criteres, $modeAffichage);
                 if ($retourAdresses['nbAdresses'] == 0) {
                     $html = "<h1>" . _("Adresses :") . "</h1>";
                     $html .= _("Aucun résultat.");
                 } else {
                     $html = $retourAdresses['html'];
                 }
             }
         }
     }
     return $html;
 }