/** * Recupere la listes des architectes * les plus productifs classée * * @param array $params Paramètres * * @return string HTML * */ public function getListeArchitectesProductifs($params = array()) { $pagination = new paginationObject(); $adresse = new archiAdresse(); $nbEnregistrementsParPage = 10; $sqlLimit = ""; $titre = ""; if (isset($params['setTitre'])) { $titre = $params['setTitre'] . "<br><br>"; } if (isset($params['sqlLimit'])) { $sqlLimit = $params['sqlLimit']; } $paginationHTML = ""; if (!isset($params['noPagination']) || $params['noPagination'] == false) { $reqArchitectesCount = "\n\t\t\t\t\tSELECT p.idPersonne, p.nom, p.prenom, count(distinct ae.idAdresse) as nbAdresses\n\t\t\t\t\tFROM personne p\n\t\t\t\t\tLEFT JOIN personne p2 ON p2.idPersonne = p.idPersonne\n\t\t\t\t\tLEFT JOIN _evenementPersonne ep ON ep.idPersonne = p2.idPersonne\n\t\t\t\t\tLEFT JOIN _evenementEvenement ee ON ee.idEvenementAssocie = ep.idEvenement\n\t\t\t\t\tLEFT JOIN _adresseEvenement ae ON ae.idEvenement = ee.idEvenement\n\t\t\t\t\tWHERE ae.idAdresse IS NOT NULL\n\t\t\t\t\tGROUP BY p.idPersonne\n\t\t\t\t\t"; $resArchitectesCount = $this->connexionBdd->requete($reqArchitectesCount); $arrayPagination = $pagination->pagination(array('nomParamPageCourante' => 'archiPageCouranteArchitectes', 'nbEnregistrementsParPage' => $nbEnregistrementsParPage, 'nbEnregistrementsTotaux' => mysql_num_rows($resArchitectesCount), 'typeLiens' => 'noformulaire')); $sqlLimit = "LIMIT " . $arrayPagination['limitSqlDebut'] . ", " . $nbEnregistrementsParPage; } // liste des architectes $reqArchitectes = "\n\t\tSELECT p.idPersonne, p.nom, p.prenom, count(distinct ae.idAdresse) as nbAdresses\n\t\tFROM personne p\n\t\tLEFT JOIN personne p2 ON p2.idPersonne = p.idPersonne\n\t\tLEFT JOIN _evenementPersonne ep ON ep.idPersonne = p2.idPersonne\n\t\tLEFT JOIN _evenementEvenement ee ON ee.idEvenementAssocie = ep.idEvenement\n\t\tLEFT JOIN _adresseEvenement ae ON ae.idEvenement = ee.idEvenement\n\t\tWHERE ae.idAdresse IS NOT NULL\n\t\tGROUP BY p.idPersonne\n\t\tORDER BY nbAdresses DESC\n\t\t{$sqlLimit}\n\t\t"; $resArchitectes = $this->connexionBdd->requete($reqArchitectes); $tableau = new tableau(); if (!isset($params['noPagination']) || $params['noPagination'] == false) { $paginationHTML = $arrayPagination['html'] . "<br>"; } while ($fetchArchitectes = mysql_fetch_assoc($resArchitectes)) { $tableau->addValue("<a href='" . $this->creerUrl('', 'evenementListe', array('selection' => 'personne', 'id' => $fetchArchitectes['idPersonne'])) . "'>" . $fetchArchitectes['nom'] . " " . $fetchArchitectes['prenom'] . "</a> (" . $fetchArchitectes['nbAdresses'] . ")"); $tableau->addValue("<img src='" . $adresse->getUrlImageFromPersonne($fetchArchitectes['idPersonne'], 'mini') . "' alt=\"" . $fetchArchitectes['nom'] . " " . $fetchArchitectes['prenom'] . "\" title=\"" . $fetchArchitectes['nom'] . " " . $fetchArchitectes['prenom'] . "\" >"); } return $titre . $paginationHTML . $tableau->createHtmlTableFromArray(2, "", "tableau"); }