/** * 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; }