/**
  * Get all the addresses informations from their ID
  * @param unknown $idList
  */
 private function getAddressesInfoFromIdHA($idList = array(), $optionsPagination = array())
 {
     $addressesInformations = array();
     if (!empty($idList)) {
         $i = 0;
         $nbElt = count($idList);
         $arrayAdresse = array();
         foreach ($idList as $id) {
             //If the idHistoAdresse is set, it's an address
             if (isset($id['idHistoriqueAdresse']) && $id['idHistoriqueAdresse'] != '') {
                 $req = "\n\t\t\t\t\tSELECT ha.nom ,\n\t\t\t\t\tha.idHistoriqueAdresse ,\n\t\t\t\t\tha.idAdresse ,\n\t\t\t\t\tae.idEvenement as idEvenementGroupeAdresse\n\n    \t\t\t\tFROM historiqueAdresse ha\n\t\t\t\t\tLEFT JOIN _adresseEvenement ae on ae.idAdresse = ha.idAdresse\n    \t\t\t\tWHERE ha.idAdresse =" . $id['idAdresse'] . "\n    \t\t\t\tand ae.idEvenement = " . $id['idEvenementGroupeAdresse'] . "\n    \t\t\t\tGROUP BY ha.idHistoriqueAdresse\n\t\t\t\t\t\t\t";
                 $res = $this->connexionBdd->requete($req);
                 $row = mysql_fetch_assoc($res);
                 //Sometimes addresses and goup event are strangely not linked between each other so double check
                 if (empty($row)) {
                     $req = "\n\t\t\t\t\t\t\tSELECT ha.nom ,\n\t\t\t\t\t\t\tha.idHistoriqueAdresse ,\n\t\t\t\t\t\t\tha.idAdresse ,\n\t\t\t\t\t\t\tae.idEvenement as idEvenementGroupeAdresse\n\n\t\t    \t\t\t\tFROM historiqueAdresse ha\n\t\t\t\t\t\t\tLEFT JOIN _adresseEvenement ae on ae.idAdresse = ha.idAdresse\n\t\t    \t\t\t\tWHERE ae.idEvenement = " . $id['idEvenementGroupeAdresse'] . "\n\t\t    \t\t\t\tGROUP BY ha.idHistoriqueAdresse\n\t\t\t\t\t\t\t";
                     $res = $this->connexionBdd->requete($req);
                     $row = mysql_fetch_assoc($res);
                 }
                 $arrayAdresse[] = $row;
             } else {
                 $req = "\n\t\t\t\t\tSELECT p.nom ,\n\t\t\t\t\tp.prenom,\n\t\t\t\t\tp.idPersonne,\n\t\t\t\t\tm.nom as nomMetier,\n\t\t\t\t\tep.idEvenement as idEvenementGroupeAdresse\n\n    \t\t\t\tFROM personne p\n\t\t\t\t\tLEFT JOIN _personneEvenement ep on ep.idPersonne = p.idPersonne\n\t\t\t\t\tLEFT JOIN metier m on m.idMetier = p.idMetier\n    \t\t\t\tWHERE p.idPersonne = " . $id['idPersonne'] . "\n\t\t\t\t\t\t\t";
                 $res = $this->connexionBdd->requete($req);
                 $row = mysql_fetch_assoc($res);
                 $nom = $row['prenom'] . ' ' . $row['nom'];
                 $personne['nom'] = $nom;
                 $personne['idPersonne'] = $row['idPersonne'];
                 $personne['idEvenementGroupeAdresse'] = $row['idEvenementGroupeAdresse'];
                 $personne['titresEvenements'][0] = "<a href=\"" . $this->creerUrl('', 'evenementListe', array('selection' => 'personne', 'id' => $row['idPersonne'])) . "\">" . ucfirst($row['nomMetier']) . "</a>";
                 $personne['titre'] = '';
                 $arrayAdresse[] = $personne;
             }
         }
         /*
          * Previous request
          */
         //Processing all the adresses get from the request : getting address title and link to the events linked
         foreach ($arrayAdresse as $fetch) {
             $evenement = new archiEvenement();
             $idTitre = $evenement->getIdEvenementTitre($fetch);
             $requeteTitreLegacy = "SELECT titre from evenements where idEvenement = {$idTitre}";
             $resTitreLegacy = $this->connexionBdd->requete($requeteTitreLegacy);
             $arrayTitre = mysql_fetch_assoc($resTitreLegacy);
             if (isset($fetch['idEvenementGroupeAdresse']) && $fetch['idEvenementGroupeAdresse'] != '') {
                 if (!isset($arrayTitre['titre']) || $arrayTitre['titre'] == '' || empty($arrayTitre['titre'])) {
                     $titreRequest = "\n\t\t\t\t\t\t\tSELECT evt2.titre\n\t\t\t\t\t\t\tFROM evenements evt , evenements evt2\n\t\t\t\t\t\t\tWHERE evt.idEvenement = " . $fetch['idEvenementGroupeAdresse'] . "\n\t\t\t\t\t\t\tAND evt2.idEvenement = evt.idEvenementRecuperationTitre\n\t\t\t\t\t\t\t";
                     $resTitre = $this->connexionBdd->requete($titreRequest);
                     $arrayTitre = mysql_fetch_assoc($resTitre);
                     if (!isset($arrayTitre['titre']) || $arrayTitre['titre'] == '' || empty($arrayTitre['titre'])) {
                         $requeteAutreTitre = "\n\t\t\t\t\t\t\t\tSELECT evt.titre\n\t\t\t\t\t\t\t\tFROM evenements evt\n\t\t\t\t\t\t\t\tLEFT JOIN _evenementEvenement ee on ee.idEvenementAssocie = evt.idEvenement\n\t\t\t\t\t\t\t\tWHERE ee.idEvenement = " . $fetch['idEvenementGroupeAdresse'] . "\n\t\t\t\t\t\t\t\t";
                         $resultAutreTitre = $this->connexionBdd->requete($requeteAutreTitre);
                         if (mysql_num_rows($resultAutreTitre) == 1) {
                             //Si il n'y a qu'un résultat...
                             $arrayTitre = mysql_fetch_assoc($resultAutreTitre);
                         }
                     }
                 }
                 $fetch['titre'] = stripslashes($arrayTitre['titre']);
                 $reqTitresEvenements = "\n\t\t\t\t\t\tSELECT  distinct he1.titre,he1.idEvenement\n\t    \t\t\t\tFROM evenements he1\n\t\t\t\t\t\tLEFT JOIN _evenementEvenement ee on ee.idEvenementAssocie = he1.idEvenement\n\t\t\t\t\t\tLEFT JOIN _adresseEvenement ae on ae.idEvenement = ee.idEvenement\n\t\t\t\t\t\tLEFT JOIN historiqueAdresse ha on ha.idAdresse = ae.idAdresse\n\t\t\t\t\t\tWHERE ee.idEvenement = " . $fetch['idEvenementGroupeAdresse'] . "\n\t\t\t\t\t\tAND TRIM(he1.titre) <> ''\n\t\t\t\t\t\t\t";
                 $resTitresEvenements = $this->connexionBdd->requete($reqTitresEvenements);
                 $titresEvenements = array();
                 $positionAncre = 0;
                 $defaultEventTitle = "Événement sans titre";
                 //Generating all the link to the events linked to current address
                 while ($row = mysql_fetch_assoc($resTitresEvenements)) {
                     $titre = $row['titre'] == "" ? $defaultEventTitle : ucfirst($row['titre']);
                     //Assigning default title to event which doesn't have one
                     //Link creation with the ancre to each event
                     $titresEvenements[] = "<a href='" . $this->creerUrl('', 'adresseDetail', array('archiIdAdresse' => $fetch['idAdresse'], 'archiIdEvenementGroupeAdresse' => $fetch['idEvenementGroupeAdresse'], 'debut' => '')) . "#evenement" . $row['idEvenement'] . "'>" . stripslashes($titre) . "</a>";
                 }
                 //Putting all this in a nice array
                 if (isset($fetch['idHistoriqueAdresse']) && $fetch['idHistoriqueAdresse'] != '') {
                     $fetch['titresEvenements'] = $titresEvenements;
                 }
                 $addressesInformations[] = $fetch;
                 $positionAncre++;
             } else {
                 $this->messages->addError("Problème dans la recherche");
                 $this->messages->display();
                 return null;
             }
         }
     }
     return $addressesInformations;
 }
 public function getLatestModification($nbElts)
 {
     $interest = new archiInterest();
     $auth = new ArchiAuthentification();
     $whereSimple = "WHERE ae.idAdresse IS NOT NULL ";
     $whereSimpleArray = array();
     if ($auth->estConnecte()) {
         $arrayInterest = $interest->getFavorisByCategories();
         if (!empty($arrayInterest)) {
             if (isset($arrayInterest['rue'])) {
                 $fieldRue = implode(',', $arrayInterest['rue']);
                 $subClause[] = "ha.idRue in ({$fieldRue})";
                 foreach ($arrayInterest['rue'] as $idRue) {
                     $whereSimpleArray[] = "ha.idRue = " . $idRue . " ";
                 }
             }
             if (isset($arrayInterest['sousQuartier'])) {
                 $fieldSousQuartier = implode(',', $arrayInterest['sousQuartier']);
                 $subClause[] = "ha.idSousQuartier in ({$fieldSousQuartier})";
                 foreach ($arrayInterest['sousQuartier'] as $idSousQuartier) {
                     $whereSimpleArray[] = " ha.idSousQuartier = " . $idSousQuartier . " ";
                 }
             }
             if (isset($arrayInterest['quartier'])) {
                 $fieldQuartier = implode(',', $arrayInterest['quartier']);
                 $subClause[] = "ha.idQuartier in ({$fieldQuartier})";
                 foreach ($arrayInterest['quartier'] as $idQuartier) {
                     $whereSimpleArray[] = " ha.idQuartier = " . $idQuartier . " ";
                 }
             }
             if (isset($arrayInterest['ville'])) {
                 $fieldVille = implode(',', $arrayInterest['ville']);
                 $subClause[] = "ha.idVille in ({$fieldVille})";
                 foreach ($arrayInterest['ville'] as $idVille) {
                     $whereSimpleArray[] = " ha.idVille = " . $idVille . " ";
                 }
             }
             if (isset($arrayInterest['pays'])) {
                 $fieldPays = implode(',', $arrayInterest['pays']);
                 $subClause[] = "ha.idPays in ({$fieldPays})";
                 foreach ($arrayInterest['pays'] as $idPays) {
                     $whereSimpleArray[] = " ha.idPays = " . $idPays . " ";
                 }
             }
             if (!empty($subClause)) {
                 $whereClause .= " AND (" . implode(' OR ', $subClause) . ")";
             }
             if (!empty($whereSimpleArray)) {
                 $whereSimple .= " AND (" . implode(' OR ', $whereSimpleArray) . ")";
             }
             $leftjoinCondition = "AND " . implode(' AND ', $whereSimpleArray);
         }
     }
     $requeteElements = "select * from (\n   \t\t\t\t\t SELECT\n\t\t\t\t\t ee.idEvenement as idEvenementGroupeAdresse,\n\t\t\t\t\tevt.idEvenement AS idEvenement,\n\t\t\t\t\tae.idAdresse,\n\t\t\t\t\tnull as idPersonne,\n\t\t\t\t\tevt.idEvenementRecuperationTitre ,\n\t\t\t\t\tevt.idImagePrincipale AS idHistoriqueImage,\n\t\t\t\t\tte.nom as typeEvenement,\n\t\t\t\t\tdate_format(evt.dateCreationEvenement," . _('"%e/%m/%Y"') . ") as dateCreationEvenement,\n\t\t\t\t\tDATE_FORMAT(evt.dateCreationEvenement, '%Y%m%d%H%i%s') as DateTri,\n\t\t\t\t\tevt.description,\n\t\t\t\t\t'adresse' as type\n\t\t\n\t\t\t\t\tFROM evenements evt\n\t\t\t\t\tLEFT JOIN _evenementEvenement ee on ee.idEvenementAssocie = evt.idEvenement\n\t\t\t\t\tLEFT JOIN _adresseEvenement ae ON ae.idEvenement = ee.idEvenement\n\t\t\t\t\tLEFT JOIN historiqueAdresse ha on ha.idAdresse = ae.idAdresse\n\t\t\t\t\tLEFT JOIN typeEvenement te ON te.idTypeEvenement = evt.idTypeEvenement\n\t\t\n\t\t\t\t\tWHERE ae.idAdresse IS NOT NULL\n\t\t \t\t\t" . $whereClause . "\n\t\t\n\t\t\t\t    UNION\n\t\t\t\t    SELECT\n\t\t\t\t    ee.idEvenement as idEvenementGroupeAdresse,\n\t\t\t\t    evt.idEvenement AS idEvenement,\n\t\t\t\t\tNULL as idAdresse,\n\t\t\t\t\tp.idPersonne,\n\t\t\t\t    evt.idEvenementRecuperationTitre ,\n\t\t\t\t    evt.idImagePrincipale AS idHistoriqueImage,\n\t\t\t\t    'Personne' as typeEvenement,\n\t\t\t\t\tdate_format(evt.dateCreationEvenement," . _('"%e/%m/%Y"') . ") as dateCreationEvenement,\n\t\t\t\t\tDATE_FORMAT(evt.dateCreationEvenement, '%Y%m%d%H%i%s') as DateTri,\n\t\t\t\t    evt.description,\n\t\t\t\t    'personne' as type\n\t\t\n\t\t\t\t    FROM evenements evt\n\t\t\t\t    LEFT JOIN _evenementEvenement ee on ee.idEvenementAssocie = evt.idEvenement\n\t\t\t\t    LEFT JOIN _personneEvenement pe ON pe.idEvenement = ee.idEvenement\n\t\t\t\t    LEFT JOIN personne p on p.idPersonne = pe.idPersonne\n\t\t\t\t\tLEFT JOIN _evenementPersonne ep on ep.idPersonne = p.idPersonne\n\t\t\t\t\tLEFT JOIN _evenementEvenement ee2 on ee2.idEvenementAssocie = ep.idEvenement\n\t\t\t\t\tLEFT JOIN _adresseEvenement ae on ae.idEvenement = ee2.idEvenement\n\t\t\t\t\tLEFT JOIN historiqueAdresse ha on ha.idAdresse = ae.idAdresse\n\t\t\n\t\t\t\t    WHERE p.idPersonne IS NOT NULL\n\t\t\t\t\t" . $whereClause . "\n\t\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\n\t\t\t\t) as tmp\n\t\t\n\t\t\t\tWHERE tmp.DateTri = (\n\t\t\t\t    SELECT max(DATE_FORMAT(evt2.dateCreationEvenement, '%Y%m%d%H%i%s'))\n\t\t\t\t    FROM evenements evt2\n\t\t\t\t    LEFT JOIN _evenementEvenement ee2 on ee2.idEvenementAssocie = evt2.idEvenement\n\t\t\t\t    WHERE ee2.idEvenement = tmp.idEvenementGroupeAdresse\n\t\t\t\t)\n\t\t\t\tGROUP BY tmp.idEvenement\n\t\t\t\tORDER BY tmp.DateTri DESC\n\t\t\t\tLIMIT 8\n\t\t\n\t\t\t\t";
     $resultIdAdresse = $this->connexionBdd->requete($requeteElements);
     $arrayIdEvenement = array();
     $arrayEvenement = array();
     while ($lastModif = mysql_fetch_assoc($resultIdAdresse)) {
         $tmp = $lastModif;
         if ($lastModif['type'] == 'adresse') {
             $requeteTitre = "SELECT e1.titre , e2.idImagePrincipale\n\t\t\t\t\t\tFROM evenements e1,evenements e2\n\t\t\t\t\t\tWHERE e2.idEvenement = " . $lastModif['idEvenementGroupeAdresse'] . "\n\t\t\t\t\t\tAND e1.idEvenement = e2.idEvenementRecuperationTitre\n\t\t\t\t\t\t\t\t";
             $restitre = $this->connexionBdd->requete($requeteTitre);
             $titreArray = mysql_fetch_assoc($restitre);
             $evenement = new archiEvenement();
             $idTitre = $evenement->getIdEvenementTitre($lastModif);
             $requeteTitreLegacy = "SELECT titre from evenements where idEvenement = {$idTitre}";
             $resTitreLegacy = $this->connexionBdd->requete($requeteTitreLegacy);
             $titreArray = mysql_fetch_assoc($resTitreLegacy);
             $tmp['titre'] = $titreArray['titre'];
             $idImagePrincipale = $titreArray['idImagePrincipale'];
             if (isset($idImagePrincipale) && !empty($idImagePrincipale)) {
                 $requeteIdHistoImage = "\n\t\t\t\t\t\t\tSELECT idHistoriqueImage\n\t\t\t\t\t\t\tFROM historiqueImage hi \n\t\t\t\t\t\t\tWHERE idImage = {$idImagePrincipale}\n\t\t\t\t\t\t\tORDER BY idHistoriqueImage DESC\n\t\t\t\t\t\t\tLIMIT 1\n\t\t\t\t\t\t\t";
                 $resIdImg = $this->connexionBdd->requete($requeteIdHistoImage);
                 $arrayIdHistoImg = mysql_fetch_assoc($resIdImg);
                 $tmp['idHistoriqueImage'] = $arrayIdHistoImg['idHistoriqueImage'];
             }
         } else {
             $p = new ArchiPersonne($tmp['idPersonne']);
             $tmp['titre'] = $p->getPersonneLibelle($tmp['idPersonne']);
         }
         $arrayLastModif[] = $tmp;
     }
     return $arrayLastModif;
 }