public function getDerniersEvenementsParCategorie($nbAdressesParEncart = 5, $params = array()) { // ville de Strasbourg par defaut $sqlWhere = "AND v.idVille=1"; if (isset($params['idVille']) && $params['idVille'] != '') { $sqlWhere = "AND v.idVille=" . $params['idVille']; } $reqEvenements = "\n\n SELECT he1.idEvenement as idEvenement, he1.dateCreationEvenement as dateCreationEvenement,he1.dateDebut as dateDebut,extract(YEAR FROM he1.dateDebut) as annneeDebut, he1.idTypeEvenement as idTypeEvenement,\n ha1.idAdresse as idAdresse, ha1.date as dateAdresse, ha1.numero as numero, ha1.idRue as idRue, ha1.idQuartier as idQuartier,\n ha1.idSousQuartier as idSousQuartier, ha1.idPays as idPays, ha1.idVille as idVille, ha1.idIndicatif as idIndicatif,\n\n r.nom as nomRue,\n q.nom as nomQuartier,\n sq.nom as nomSousQuartier,\n v.nom as nomVille,\n r.prefixe as prefixeRue,\n ae.idEvenement as idEvenementGroupeAdresses\n\n\n FROM historiqueEvenement he2, historiqueEvenement he1\n RIGHT JOIN _evenementEvenement ee ON ee.idEvenementAssocie = he1.idEvenement\n RIGHT JOIN _adresseEvenement ae ON ae.idEvenement = ee.idEvenement\n RIGHT JOIN historiqueAdresse ha1 ON ha1.idAdresse = ae.idAdresse\n RIGHT JOIN historiqueAdresse ha2 ON ha2.idAdresse = ha1.idAdresse\n\n LEFT JOIN typeEvenement te ON te.idTypeEvenement = he1.idTypeEvenement\n\n LEFT JOIN rue r ON r.idRue = ha1.idRue\n LEFT JOIN sousQuartier sq ON sq.idSousQuartier = IF(ha1.idRue='0' and ha1.idSousQuartier!='0' ,ha1.idSousQuartier ,r.idSousQuartier )\n LEFT JOIN quartier q ON q.idQuartier = IF(ha1.idRue='0' and ha1.idSousQuartier='0' and ha1.idQuartier!='0' ,ha1.idQuartier ,sq.idQuartier )\n LEFT 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 LEFT 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\n\n WHERE he2.idEvenement = he1.idEvenement\n\n " . $sqlWhere . "\n\n GROUP BY he1.idEvenement,ha1.idAdresse, he1.idHistoriqueEvenement, ha1.idHistoriqueAdresse\n HAVING he1.idHistoriqueEvenement = max(he2.idHistoriqueEvenement) AND ha1.idHistoriqueAdresse = max(ha2.idHistoriqueAdresse)\n ORDER BY he1.dateCreationEvenement DESC\n "; //,dateCreationEvenement DESC,dateAdresse DESC echo $reqEvenements . "<br/>"; /* LEFT JOIN rue r ON r.idRue = ha1.idRue LEFT JOIN sousQuartier sq ON sq.idSousQuartier = ha1.idSousQuartier LEFT JOIN quartier q ON q.idQuartier = ha1.idQuartier LEFT JOIN ville v ON v.idVille = ha1.idVille */ $resEvenements = $this->connexionBdd->requete($reqEvenements); $tabAdressesEvenementsAffichees = array(); // tableau contenant les idAdresses qu'il ne faudra pas reafficher $tabEvenementGroupeAdressesAffichees = array(); // on ne reaffiche pas les adresses appartenant au meme groupe d'adresse sinon redondance au niveau de certain titre lors de l'affichage (adresses différentes mais titre identiques) $tabConstruction = array(); $tabDemolition = array(); $tabCulturel = array(); $tabDernieresAdresses = array(); $tabAdressesNouvellesAdressesAffichees = array(); $isPhotoContruction = false; $isPhotoDemolition = false; $isPhotoCulturel = false; $image = new archiImage(); while ($fetchEvenements = mysql_fetch_assoc($resEvenements)) { //if(!in_array($fetchEvenements['idAdresse'],$tabAdressesEvenementsAffichees)) //{ //$this->getUrlImage("moyen")."/".$fetchEvenements['dateUpload']."/".$fetchEvenements['idHistoriqueImage'].".jpg" $positionEvenement = $this->getPositionFromEvenement($fetchEvenements['idEvenement']); $infosAdresseCourante = array("idAdresse" => $fetchEvenements['idAdresse'], "idIndicatif" => $fetchEvenements['idIndicatif'], "numero" => $fetchEvenements['numero'], "nomRue" => $fetchEvenements['nomRue'], "nomQuartier" => $fetchEvenements['nomQuartier'], "nomSousQuartier" => $fetchEvenements['nomSousQuartier'], "nomVille" => $fetchEvenements['nomVille'], "prefixeRue" => $fetchEvenements['prefixeRue'], "dateCreationEvenement" => $fetchEvenements['dateCreationEvenement'], "positionEvenement" => $positionEvenement, "idEvenement" => $fetchEvenements['idEvenement'], "idEvenementGroupeAdresse" => $fetchEvenements['idEvenementGroupeAdresses']); //"titreEvenement"=>$fetchEvenements['titreEvenement'], //"description"=>$fetchEvenements['descriptionEvenement'], //"idHistoriqueImage"=>$fetchEvenements['idHistoriqueImage'], //"dateUpload"=>$fetchEvenements['dateUpload'], switch ($fetchEvenements['idTypeEvenement']) { // TRAVAUX OU NOUVELLE ADRESSE suivant l'annee case '1': // construction if ($fetchEvenements['annneeDebut'] == date('Y')) { // TRAVAUX if (!in_array($fetchEvenements['idAdresse'], $tabAdressesEvenementsAffichees) && !in_array($fetchEvenements['idEvenementGroupeAdresses'], $tabEvenementGroupeAdressesAffichees)) { //if(count($tabConstruction)<5) //{ $tabConstruction[] = $infosAdresseCourante; $tabAdressesEvenementsAffichees[] = $fetchEvenements['idAdresse']; $tabEvenementGroupeAdressesAffichees[] = $fetchEvenements['idEvenementGroupeAdresses']; //} $reqImages = $image->getImagesEvenementsFromAdresse($fetchEvenements['idAdresse'], array('idEvenementGroupeAdresse' => $fetchEvenements['idEvenementGroupeAdresses'])); if (mysql_num_rows($reqImages) > 0) { $isPhotoContruction = true; } } } else { // NOUVELLES ADRESSES /*if(!in_array($fetchEvenements['idAdresse'],$tabAdressesEvenementsAffichees)) { if(count($tabDernieresAdresses)<5) { $tabDernieresAdresses = $infosAdresseCourante; $tabAdressesEvenementsAffichees[] = $fetchEvenements['idAdresse']; $tabAdressesNouvellesAdressesAffichees[] = $fetchEvenements['idAdresse']; } }*/ } // TRAVAUX break; case '2': // renovation // renovation case '3': // extension // extension case '4': // transformation // transformation case '5': // ravalement //if($fetchEvenements['annneeDebut']==date('Y')) //{ // TRAVAUX if (!in_array($fetchEvenements['idAdresse'], $tabAdressesEvenementsAffichees) && !in_array($fetchEvenements['idEvenementGroupeAdresses'], $tabEvenementGroupeAdressesAffichees)) { //if(count($tabConstruction)<5) //{ $tabConstruction[] = $infosAdresseCourante; $tabAdressesEvenementsAffichees[] = $fetchEvenements['idAdresse']; $tabEvenementGroupeAdressesAffichees[] = $fetchEvenements['idEvenementGroupeAdresses']; //} $reqImages = $image->getImagesEvenementsFromAdresse($fetchEvenements['idAdresse'], array('idEvenementGroupeAdresse' => $fetchEvenements['idEvenementGroupeAdresses'])); if (mysql_num_rows($reqImages) > 0) { $isPhotoContruction = true; } } //} break; // DEMOLITIONS // DEMOLITIONS case '6': // demolition if (!in_array($fetchEvenements['idAdresse'], $tabAdressesEvenementsAffichees) && !in_array($fetchEvenements['idEvenementGroupeAdresses'], $tabEvenementGroupeAdressesAffichees)) { //if(count($tabDemolition)<5) //{ $tabDemolition[] = $infosAdresseCourante; $tabAdressesEvenementsAffichees[] = $fetchEvenements['idAdresse']; $tabEvenementGroupeAdressesAffichees[] = $fetchEvenements['idEvenementGroupeAdresses']; //} $reqImages = $image->getImagesEvenementsFromAdresse($fetchEvenements['idAdresse'], array('idEvenementGroupeAdresse' => $fetchEvenements['idEvenementGroupeAdresses'])); if (mysql_num_rows($reqImages) > 0) { $isPhotoDemolition = true; } } break; // EVENEMENTS CULTURELS // EVENEMENTS CULTURELS case '14': // visite exceptionnelle // visite exceptionnelle case '13': // portes ouvertes // portes ouvertes case '12': // inauguration // inauguration case '15': // fête // fête case '16': // Journée du Patrimoine // Journée du Patrimoine case '18': // Journée du bâtiment // Journée du bâtiment case '19': // Exposition // Exposition case '20': // Information (Nouveautés) if (!in_array($fetchEvenements['idAdresse'], $tabAdressesEvenementsAffichees) && !in_array($fetchEvenements['idEvenementGroupeAdresses'], $tabEvenementGroupeAdressesAffichees)) { //if(count($tabCulturel)<5) //{ $tabCulturel[] = $infosAdresseCourante; $tabAdressesEvenementsAffichees[] = $fetchEvenements['idAdresse']; $tabEvenementGroupeAdressesAffichees[] = $fetchEvenements['idEvenementGroupeAdresses']; //} $reqImages = $image->getImagesEvenementsFromAdresse($fetchEvenements['idAdresse'], array('idEvenementGroupeAdresse' => $fetchEvenements['idEvenementGroupeAdresses'])); if (mysql_num_rows($reqImages) > 0) { $isPhotoCulturel = true; } } break; } //} if (count($tabConstruction) >= 5 && count($tabDemolition) >= 5 && count($tabCulturel) >= 5 && $isPhotoCulturel && $isPhotoDemolition && $isPhotoContruction) { break; } } $tabAdressesEvenementsAffichees = array_unique($tabAdressesEvenementsAffichees); $sqlAdressesExclues = ""; if (count($tabAdressesEvenementsAffichees) > 0) { $sqlAdressesExclues = " AND ha1.idAdresse NOT IN ('" . implode("','", $tabAdressesEvenementsAffichees) . "') "; } // 2 - les dernieres adresses ajoutées moins celles deja affichées dans les rubriques précédentes /*$reqAdresses = " SELECT ha1.idAdresse as idAdresse, ha1.numero as numero, ha1.idRue as idRue , ha1.idQuartier as idQuartier, ha1.idSousQuartier as idSousQuartier, ha1.idVille as idVille,ha1.idPays as idPays, ha1.idIndicatif as idIndicatif,ha1.date as dateCreationAdresse,hi1.idHistoriqueImage as idHistoriqueImage, hi1.dateUpload as dateUpload, hi1.idHistoriqueImage,hi1.idImage, r.nom as nomRue, q.nom as nomQuartier, sq.nom as nomSousQuartier, v.nom as nomVille, r.prefixe as prefixeRue,ha1.date as date FROM historiqueAdresse ha2, historiqueAdresse ha1 LEFT JOIN _adresseEvenement ae ON ae.idAdresse = ha1.idAdresse LEFT JOIN _evenementEvenement ee ON ee.idEvenement = ae.idEvenement LEFT JOIN historiqueEvenement he1 ON he1.idEvenement = ee.idEvenementAssocie LEFT JOIN historiqueEvenement he2 ON he2.idEvenement = he1.idEvenement LEFT JOIN _evenementImage ei ON ei.idEvenement = he1.idEvenement LEFT JOIN _evenementImage ei2 ON ei2.idEvenement = he1.idEvenement LEFT JOIN historiqueImage hi1 ON hi1.idImage = ei.idImage LEFT JOIN historiqueImage hi2 ON hi2.idImage = hi1.idImage LEFT JOIN rue r ON r.idRue = ha1.idRue LEFT JOIN sousQuartier sq ON sq.idSousQuartier = IF(ha1.idRue='0' and ha1.idSousQuartier!='0' ,ha1.idSousQuartier ,r.idSousQuartier ) LEFT JOIN quartier q ON q.idQuartier = IF(ha1.idRue='0' and ha1.idSousQuartier='0' and ha1.idQuartier!='0' ,ha1.idQuartier ,sq.idQuartier ) LEFT 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 ) LEFT 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 ) WHERE ha2.idAdresse = ha1.idAdresse ".$sqlWhere." ".$sqlAdressesExclues." GROUP BY ha1.idAdresse ,he1.idEvenement,hi1.idImage, ha1.idHistoriqueAdresse, he1.idHistoriqueEvenement, hi1.idHistoriqueImage,ei.position HAVING ha1.idHistoriqueAdresse = max(ha2.idHistoriqueAdresse) and he1.idHistoriqueEvenement = max(he2.idHistoriqueEvenement) and hi1.idHistoriqueImage = max(hi2.idHistoriqueImage) AND ei.position = min(ei2.position) ORDER BY ha1.date DESC "; */ // $reqAdresses = "\n SELECT ha1.idAdresse as idAdresse, ha1.date as dateCreationAdresse,ha1.numero as numero, ha1.idRue as idRue , ha1.idQuartier as idQuartier, ha1.idSousQuartier as idSousQuartier,\n ha1.idVille as idVille,ha1.idPays as idPays, ha1.idIndicatif as idIndicatif,\n\n r.nom as nomRue,\n q.nom as nomQuartier,\n sq.nom as nomSousQuartier,\n v.nom as nomVille,\n r.prefixe as prefixeRue,ha1.date as date,\n ae.idEvenement as idEvenementGroupeAdresses\n\n\n\n FROM historiqueAdresse ha2, historiqueAdresse ha1\n LEFT JOIN _adresseEvenement ae ON ae.idAdresse = ha1.idAdresse\n LEFT JOIN _evenementEvenement ee ON ee.idEvenement = ae.idEvenement\n\n\n\n LEFT JOIN historiqueEvenement he1 ON he1.idEvenement = ee.idEvenementAssocie\n LEFT JOIN historiqueEvenement he2 ON he2.idEvenement = he1.idEvenement\n\n\n\n LEFT JOIN rue r ON r.idRue = ha1.idRue\n LEFT JOIN sousQuartier sq ON sq.idSousQuartier = IF(ha1.idRue='0' and ha1.idSousQuartier!='0' ,ha1.idSousQuartier ,r.idSousQuartier )\n LEFT JOIN quartier q ON q.idQuartier = IF(ha1.idRue='0' and ha1.idSousQuartier='0' and ha1.idQuartier!='0' ,ha1.idQuartier ,sq.idQuartier )\n LEFT 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 LEFT 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\n WHERE ha2.idAdresse = ha1.idAdresse\n " . $sqlWhere . "\n " . $sqlAdressesExclues . "\n GROUP BY ha1.idAdresse ,he1.idEvenement, ha1.idHistoriqueAdresse, he1.idHistoriqueEvenement\n HAVING ha1.idHistoriqueAdresse = max(ha2.idHistoriqueAdresse) and he1.idHistoriqueEvenement = max(he2.idHistoriqueEvenement)\n ORDER BY ha1.date DESC\n "; $resAdresses = $this->connexionBdd->requete($reqAdresses); $image = new archiImage(); $isImageAdresses = false; while ($fetchAdresses = mysql_fetch_assoc($resAdresses)) { if (!in_array($fetchAdresses['idAdresse'], $tabAdressesNouvellesAdressesAffichees) && !in_array($fetchAdresses['idEvenementGroupeAdresses'], $tabEvenementGroupeAdressesAffichees)) { $tabAdressesNouvellesAdressesAffichees[] = $fetchAdresses['idAdresse']; $tabEvenementGroupeAdressesAffichees[] = $fetchAdresses['idEvenementGroupeAdresses']; //$this->getUrlImage("moyen")."/".$fetchAdresses['dateUpload']."/".$fetchAdresses['idHistoriqueImage'].".jpg" $infosAdresseCourante = array("idAdresse" => $fetchAdresses['idAdresse'], "idIndicatif" => $fetchAdresses['idIndicatif'], "numero" => $fetchAdresses['numero'], "nomRue" => $fetchAdresses['nomRue'], "nomQuartier" => $fetchAdresses['nomQuartier'], "nomSousQuartier" => $fetchAdresses['nomSousQuartier'], "nomVille" => $fetchAdresses['nomVille'], "prefixeRue" => $fetchAdresses['prefixeRue'], "idEvenementGroupeAdresse" => $fetchAdresses['idEvenementGroupeAdresses'], "dateCreationAdresse" => $fetchAdresses['dateCreationAdresse']); // ,"description"=>"" $tabDernieresAdresses[] = $infosAdresseCourante; } $resImages = $image->getImagesEvenementsFromAdresse($fetchAdresses['idAdresse']); if (mysql_num_rows($resImages) > 0) { $isImageAdresses = true; } if (count($tabDernieresAdresses) >= 25 && $isImageAdresses) { break; } } // il faut maintenant parcourir les tableaux pour afficher les images de facon correcte $image = new archiImage(); $indiceElementPremierePosition = array(); $imageElementPremierePosition = array(); // ******************************************************************************* // recuperation de l'image qui sera affichée pour les demolitions $trouveImageDemolition = false; $i = 0; $tab5Demolitions = array(); foreach ($tabDemolition as $indice => $value) { if (!$trouveImageDemolition) { if (!isset($value['idHistoriqueImage']) || $value['idHistoriqueImage'] == '0') { // ici on recherche une autre image pour la meme adresse car il n'y en avait pas sur l'evenement concerné //$resImagesDemolitionFromAdresse = $image->getImagesEvenementsFromAdresse($value['idAdresse']); //$fetchImageDemolition = mysql_fetch_assoc($resImagesDemolitionFromAdresse); $fetch = $this->getFirstImageFromEvenement($value['idEvenement']); if (isset($fetch['idHistoriqueImage']) && $fetch['idHistoriqueImage'] != '' && $fetch['idHistoriqueImage'] != '0') { $imageElementPremierePosition['demolition'] = $fetch; //array('idHistoriqueImage'=> $fetchImageDemolition['idHistoriqueImage'], 'dateUpload'=>$fetchImageDemolition['dateUpload'] ); //$indiceElementPremierePosition['demolition'] = $indice; $trouveImageDemolition = true; $tab5Demolitions[0] = $value; $indiceElementPremierePosition['demolition'] = 0; } else { $trouveImageDemolition = false; } } /*else { $trouveImageDemolition=true; $imageElementPremierePosition['demolition'] = array('idHistoriqueImage'=> $value['idHistoriqueImage'], 'dateUpload'=>$value['dateUpload'] ); $indiceElementPremierePosition['demolition'] = $indice; }*/ } $i++; } // si l'on a pas trouvé d'image sur les evenements on va en chercher au niveau de tous les evenements de l'adresse $trouveImageDemolitionSurAdresse = false; if (!$trouveImageDemolition) { foreach ($tabDemolition as $indice => $value) { if (!$trouveImageDemolitionSurAdresse) { $resImagesDemolitionFromAdresse = $image->getImagesEvenementsFromAdresse($value['idAdresse'], array('idEvenementGroupeAdresse' => $value['idEvenementGroupeAdresse'])); if (mysql_num_rows($resImagesDemolitionFromAdresse) > 0) { $fetch = mysql_fetch_assoc($resImagesDemolitionFromAdresse); $imageElementPremierePosition['demolition'] = $fetch; //$indiceElementPremierePosition['demolition'] = $indice; $trouveImageDemolitionSurAdresse = true; $tab5Demolitions[0] = $value; $indiceElementPremierePosition['demolition'] = 0; } } } } // on recupere l'evenement qui comporte l'image et on limite le tableau en sortie a 5 $i = 1; if ($trouveImageDemolitionSurAdresse || $trouveImageDemolition) { // en principe maintenant c'est toujours possible , vu qu'on parcours tout et on s'arrete seulement s'il y a une image dans la boucle précédente foreach ($tabDemolition as $indice => $value) { if ($i > 4) { break; } else { if ($value['idEvenementGroupeAdresse'] != $tab5Demolitions[0]['idEvenementGroupeAdresse']) { // le tableau d'indice 0 est deja renseigne $tab5Demolitions[$i] = $value; $i++; } } } } // ******************************************************************************* // recuperation de l'image qui sera affichee pour les derniers travaux $trouveImageConstruction = false; $i = 0; $tab5Constructions = array(); foreach ($tabConstruction as $indice => $value) { if (!$trouveImageConstruction) { if (!isset($value['idHistoriqueImage']) || $value['idHistoriqueImage'] == '0') { // ici on recherche une autre image pour la meme adresse car il n'y en avait pas sur l'evenement concerné //$resImagesConstructionFromAdresse = $image->getImagesEvenementsFromAdresse($value['idAdresse']); //$fetchImageConstruction = mysql_fetch_assoc($resImagesConstructionFromAdresse); $fetch = $this->getFirstImageFromEvenement($value['idEvenement']); if (isset($fetch['idHistoriqueImage']) && $fetch['idHistoriqueImage'] != '' && $fetch['idHistoriqueImage'] != '0') { $imageElementPremierePosition['construction'] = $fetch; //array('idHistoriqueImage'=> $fetchImageConstruction['idHistoriqueImage'], 'dateUpload'=>$fetchImageConstruction['dateUpload'] ); //$indiceElementPremierePosition['construction'] = $indice; $trouveImageConstruction = true; $tab5Constructions[0] = $value; $indiceElementPremierePosition['construction'] = 0; } else { $trouveImageConstruction = false; } } /*else { $trouveImageConstruction=true; $imageElementPremierePosition['construction'] = array('idHistoriqueImage'=> $value['idHistoriqueImage'], 'dateUpload'=>$value['dateUpload'] ); $indiceElementPremierePosition['construction'] = $indice; }*/ } $i++; } // si l'on a pas trouvé d'image sur les evenements on va en chercher au niveau de tous les evenements de l'adresse $trouveImageConstructionSurAdresse = false; if (!$trouveImageConstruction) { foreach ($tabConstruction as $indice => $value) { if (!$trouveImageConstructionSurAdresse) { $resImagesConstructionFromAdresse = $image->getImagesEvenementsFromAdresse($value['idAdresse'], array('idEvenementGroupeAdresse' => $value['idEvenementGroupeAdresse'])); if (mysql_num_rows($resImagesConstructionFromAdresse) > 0) { $fetch = mysql_fetch_assoc($resImagesConstructionFromAdresse); $imageElementPremierePosition['construction'] = $fetch; //$indiceElementPremierePosition['construction'] = $indice; $trouveImageConstructionSurAdresse = true; $tab5Constructions[0] = $value; $indiceElementPremierePosition['construction'] = 0; } } } } // on recupere l'evenement qui comporte l'image et on limite le tableau en sortie a 5 $i = 1; // en principe maintenant c'est toujours possible, vu qu'on parcours tout et on s'arrete seulement s'il y a une image dans la boucle précédente if ($trouveImageConstructionSurAdresse || $trouveImageConstruction) { foreach ($tabConstruction as $indice => $value) { if ($i > 4) { break; } else { if (isset($tab5Constructions[0]) && $value['idEvenementGroupeAdresse'] != $tab5Constructions[0]['idEvenementGroupeAdresse']) { $tab5Constructions[$i] = $value; $i++; } } } } // ******************************************************************************* // recuperation de l'image qui sera affichee pour les derniers evenements culturels $trouveImageCulturel = false; $i = 0; $tab5Culturel = array(); foreach ($tabCulturel as $indice => $value) { if (!$trouveImageCulturel) { if (!isset($value['idHistoriqueImage']) || $value['idHistoriqueImage'] == '0') { // ici on recherche une autre image pour la meme adresse car il n'y en avait pas sur l'evenement concerné //$resImagesCulturelFromAdresse = $this->getFirstImageFromEvenement($value['idEvenement']);//$image->getImagesEvenementsFromAdresse($value['idAdresse']); //$fetchImageCulturel = mysql_fetch_assoc($resImagesCulturelFromAdresse); $fetch = $this->getFirstImageFromEvenement($value['idEvenement']); if (isset($fetch['idHistoriqueImage']) && $fetch['idHistoriqueImage'] != '' && $fetch['idHistoriqueImage'] != '0') { $imageElementPremierePosition['culturel'] = $fetch; //$this->getFirstImageFromEvenement($value['idEvenement']);//array('idHistoriqueImage'=> $fetchImageCulturel['idHistoriqueImage'], 'dateUpload'=>$fetchImageCulturel['dateUpload'] ); //$indiceElementPremierePosition['culturel'] = $indice; $trouveImageCulturel = true; $indiceElementPremierePosition['culturel'] = 0; $tab5Culturel[0] = $value; } else { $trouveImageCulturel = false; } } /*else { $trouveImageCulturel=true; $imageElementPremierePosition['culturel'] = array('idHistoriqueImage'=> $value['idHistoriqueImage'], 'dateUpload'=>$value['dateUpload'] ); $indiceElementPremierePosition['culturel'] = $indice; }*/ } $i++; } // si l'on a pas trouvé d'image sur les evenements on va en chercher au niveau de tous les evenements de l'adresse $trouveImageCulturelSurAdresse = false; if (!$trouveImageCulturel) { foreach ($tabCulturel as $indice => $value) { if (!$trouveImageCulturelSurAdresse) { $resImagesCulturelFromAdresse = $image->getImagesEvenementsFromAdresse($value['idAdresse'], array('idEvenementGroupeAdresse' => $value['idEvenementGroupeAdresse'])); if (mysql_num_rows($resImagesCulturelFromAdresse) > 0) { $fetch = mysql_fetch_assoc($resImagesCulturelFromAdresse); $imageElementPremierePosition['culturel'] = $fetch; //$indiceElementPremierePosition['culturel'] = $indice; $trouveImageCulturelSurAdresse = true; $indiceElementPremierePosition['culturel'] = 0; $tab5Culturel[0] = $value; } } } } // on recupere l'evenement qui comporte l'image et on limite le tableau en sortie a 5 $i = 1; if ($trouveImageCulturelSurAdresse || $trouveImageCulturel) { // en principe maintenant c'est toujours possible , vu qu'on parcours tout et on s'arrete seulement s'il y a une image dans la boucle précédente foreach ($tabCulturel as $indice => $value) { if ($i > 4) { break; } else { if ($value['idEvenementGroupeAdresse'] != $tab5Culturel[0]['idEvenementGroupeAdresse']) { $tab5Culturel[$i] = $value; $i++; } } } } // ******************************************************************************* // recuperation de l'image qui sera affichee pour les dernieres adresses ajoutées $trouveImageDernieresAdresses = false; $i = 0; $tab5DernieresAdresses = array(); foreach ($tabDernieresAdresses as $indice => $value) { if (!$trouveImageDernieresAdresses) { if (!isset($value['idHistoriqueImage']) || $value['idHistoriqueImage'] == '0') { // ici on recherche une autre image pour la meme adresse car il n'y en avait pas sur l'evenement concerné $resImagesDernieresAdressesFromAdresse = $image->getImagesEvenementsFromAdresse($value['idAdresse']); if (mysql_num_rows($resImagesDernieresAdressesFromAdresse) > 0) { $fetchImageDernieresAdresses = mysql_fetch_assoc($resImagesDernieresAdressesFromAdresse); $imageElementPremierePosition['dernieresAdresses'] = array('idHistoriqueImage' => $fetchImageDernieresAdresses['idHistoriqueImage'], 'dateUpload' => $fetchImageDernieresAdresses['dateUpload']); //$indiceElementPremierePosition['dernieresAdresses'] = $indice; $trouveImageDernieresAdresses = true; //$tabDernieresAdresses[$indice]['description'] = $this->getDescriptionEvenementForDerniereAdresse($value['idAdresse']); $tab5DernieresAdresses[0] = $value; $tab5DernieresAdresses[0]['description'] = $this->getDescriptionEvenementForDerniereAdresse($value['idAdresse']); $indiceElementPremierePosition['dernieresAdresses'] = 0; } } /*else { $trouveImageDernieresAdresses=true; $imageElementPremierePosition['dernieresAdresses'] = array('idHistoriqueImage'=> $value['idHistoriqueImage'], 'dateUpload'=>$value['dateUpload'] ); $indiceElementPremierePosition['dernieresAdresses'] = $indice; $tabDernieresAdresses[$indice]['description'] = $this->getDescriptionEvenementForDerniereAdresse($value['idAdresse']); }*/ } $i++; } $i = 1; foreach ($tabDernieresAdresses as $indice => $value) { if ($i > 4) { break; } else { if ($value['idAdresse'] != $tab5DernieresAdresses[0]['idAdresse']) { $tab5DernieresAdresses[$i] = $value; $i++; } } } // ********************************************************************************************************************************** // encars des dernieres vues $tabDernieresVues = $image->getDernieresVues(array('sqlLimit' => "LIMIT 5", 'noAdressesDoublons' => true, 'listeIdGroupesAdressesVueSurANePasAfficher' => $tabEvenementGroupeAdressesAffichees)); // ********************************************************************************************************************************** // encart des actualites $accueil = new archiAccueil(); $tabActualites = $accueil->getDernieresActualites(array('sqlLimit' => "LIMIT 5", 'sqlWhere' => " AND desactive<>'1' ")); return array("dernieresAdresses" => $tab5DernieresAdresses, "constructions" => $tab5Constructions, "demolitions" => $tab5Demolitions, "culture" => $tab5Culturel, "indiceEvenementsPremierePositions" => $indiceElementPremierePosition, "imagesEvenementsPremieresPositions" => $imageElementPremierePosition, "dernieresVues" => $tabDernieresVues, "actualites" => $tabActualites); }