public function ajouter($parametres = array(), $liaisonsExternes = array())
 {
     $html = "";
     $this->fields = array();
     $reqFieldsListe = "SHOW COLUMNS FROM " . $parametres['tableName'] . ";";
     $resFieldsListe = $this->connexionBdd->requete($reqFieldsListe);
     // fabrication de la chaine requete d'ajout
     $arrayFields = array();
     $primaryKeyField = "";
     while ($fetchFields = mysql_fetch_assoc($resFieldsListe)) {
         if ($fetchFields['Key'] != 'PRI') {
             //$requeteModification.=$fetchFields['Field']."='".$this->variablesPost[$fetchFields['Field']]."'";
             $arrayFields[] = $fetchFields['Field'];
             if (preg_match("/date/i", $fetchFields['Type'])) {
                 $d = new dateObject();
                 if ((pia_ereg("/", $this->variablesPost[$fetchFields['Field']]) || pia_strlen($this->variablesPost[$fetchFields['Field']]) > 3) && !pia_ereg("-", $this->variablesPost[$fetchFields['Field']])) {
                     $arrayValues[] = $d->toBdd($d->convertYears($this->variablesPost[$fetchFields['Field']]));
                 } else {
                     $arrayValues[] = $this->variablesPost[$fetchFields['Field']];
                 }
             } else {
                 $arrayValues[] = $this->variablesPost[$fetchFields['Field']];
             }
         } else {
             $primaryKeyField = $fetchFields['Field'];
         }
     }
     $listeFields = implode(', ', $arrayFields);
     $listeValues = implode('", "', $arrayValues);
     $requeteAjout = "insert into " . $parametres['tableName'] . " (" . $listeFields . ") VALUES (\"" . $listeValues . "\")";
     $this->connexionBdd->requete($requeteAjout);
     $idNouvelElement = mysql_insert_id();
     // gestion des champs supplementaires du formulaire qui ne sont pas des champs de la base de donnée
     if (isset($parametres['fieldsNotInBdd']) && is_array($parametres['fieldsNotInBdd']) && count($parametres['fieldsNotInBdd']) > 0) {
         foreach ($parametres['fieldsNotInBdd'] as $indice => $valuesFields) {
             // traitement specifiques aux champs qui ne sont pas liés a la base de donnée
             switch ($valuesFields['type']) {
                 case 'uploadImageLiee':
                     // ce cas d'upload n'ajoute pas de nom de fichier dans la base ,  on va en principe se referer a l'identifiant de la table courante
                     // exemple ,  on ajoute une image sur un personne,  l'image aura donc pour nom de fichier "idPersonne".jpg par exemple en fonction du parametrage
                     if (isset($_FILES[$valuesFields['name']]) && $_FILES[$valuesFields['name']]['error']) {
                         switch ($_FILES[$valuesFields['name']]['error']) {
                             case 1:
                                 // UPLOAD_ERR_INI_SIZE
                                 echo "Le fichier dépasse la limite autorisée par le serveur !";
                                 break;
                             case 2:
                                 // UPLOAD_ERR_FORM_SIZE
                                 echo "Le fichier dépasse la limite autorisée dans le formulaire HTML !";
                                 break;
                             case 3:
                                 // UPLOAD_ERR_PARTIAL
                                 echo "L'envoi du fichier a été interrompu pendant le transfert !";
                                 break;
                             case 4:
                                 // UPLOAD_ERR_NO_FILE
                                 echo "Le fichier que vous avez envoyé a une taille nulle !";
                                 break;
                         }
                     } else {
                         // pas d'erreur d'upload
                         $i = new imageObject();
                         // classe image du framework
                         $f = new fileObject();
                         if (isset($valuesFields['redimFilesAndSizesConfig']) && is_array($valuesFields['redimFilesAndSizesConfig']) && count($valuesFields['redimFilesAndSizesConfig']) > 0) {
                             foreach ($valuesFields['redimFilesAndSizesConfig'] as $indiceConfigRedims => $valueConfigRedims) {
                                 $fichierParametre = "";
                                 // on remplace le parametre par une valeur s'il y en a un
                                 $valueReplacementBdd = "";
                                 // valeur que va prendre la parametre a remplacer
                                 $matches = array();
                                 preg_match("/\\#\\#\\#bddField\\[(.+)\\]\\#\\#\\#/", $valueConfigRedims['nomFichierDestinationParametre'], $matches);
                                 // on detecte si il y a un parametre a remplacer par une valeur de la base de donnée ou pas
                                 if (count($matches) > 0) {
                                     $req = "SELECT " . $matches[1] . " FROM " . $parametres['tableName'] . " WHERE " . $primaryKeyField . "='" . $idNouvelElement . "'";
                                     $res = $this->connexionBdd->requete($req);
                                     $fetchValeurCouranteBdd = mysql_fetch_assoc($res);
                                     $valueReplacementBdd = $fetchValeurCouranteBdd[$matches[1]];
                                     $fichierParametre = str_replace($matches[0], $valueReplacementBdd, $valueConfigRedims['nomFichierDestinationParametre']);
                                 }
                                 $imageType = strtolower($f->getExtensionFromFile($_FILES[$valuesFields['name']]['name']));
                                 if (file_exists($valueConfigRedims['repertoireDestination'] . $fichierParametre)) {
                                     // si un fichier du meme nom existe ,  on l'efface
                                     unlink($valueConfigRedims['repertoireDestination'] . $fichierParametre);
                                 }
                                 if ($fichierParametre != '') {
                                     if (isset($valueConfigRedims['taille'])) {
                                         $i->redimension($_FILES[$valuesFields['name']]['tmp_name'], $imageType, $valueConfigRedims['repertoireDestination'] . $fichierParametre, $valueConfigRedims['taille'], array('redimOnlyIfFileSizesSuperiorToRedimValue' => true));
                                     }
                                 } else {
                                     echo "Le fichier n'a pu être redimensionné. Erreur de parametrage dans la fonction du framework formGenerator::modifier()<br>";
                                 }
                             }
                             unlink($_FILES[$valuesFields['name']]['tmp_name']);
                         }
                     }
                     break;
             }
         }
     }
     return $html;
 }
 /**
  * Affiche les adresses par regroupements
  * Quand on clique sur un regroupement , on affiche la liste des elements contenant ce regroupement
  *
  * @return string
  * */
 public function afficheListeRegroupee()
 {
     $html = "";
     $t = new Template($this->getCheminPhysique() . $this->cheminTemplates);
     $t->set_filenames(array('listeRegroupee' => 'listeRegroupee.tpl'));
     $r = new archiRecherche();
     if (isset($this->variablesGet['modeAffichageListe'])) {
         $modeAffichageListe = $this->variablesGet['modeAffichageListe'];
     } else {
         $modeAffichageListe = 'default';
     }
     $idVilleGeneral = 1;
     // strasbourg par defaut
     $s = new objetSession();
     if ($s->isInSession('archiIdVilleGeneral') && $s->getFromSession('archiIdVilleGeneral') != '') {
         $idVilleGeneral = $s->getFromSession('archiIdVilleGeneral');
     } elseif (isset($this->variablesGet['archiIdVilleGeneral'])) {
         $idVilleGeneral = $this->variablesGet['archiIdVilleGeneral'];
         $s->addToSession('archiIdVilleGeneral', $idVilleGeneral);
     }
     $fetchInfosVille = $this->getInfosVille($idVilleGeneral, array('fieldList' => 'v.nom as nomVille'));
     $nomVilleGeneral = $fetchInfosVille['nomVille'];
     $t->assign_vars(array('liens' => "<a href='" . $this->creerUrl('', 'listeDossiers', array('modeAffichageListe' => 'parRues', 'archiIdVilleGeneral' => $idVilleGeneral)) . "'>" . _("Par rues de") . " " . $nomVilleGeneral . "</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;<a href='" . $this->creerUrl('', 'listeDossiers', array('modeAffichageListe' => 'parQuartiers', 'archiIdVilleGeneral' => $idVilleGeneral)) . "'>" . _("Par quartiers de") . " " . $nomVilleGeneral . "</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;<a href='" . $this->creerUrl('', 'listeDossiers', array('modeAffichageListe' => 'parVilles')) . "'>" . _("Par villes") . "</a>"));
     switch ($modeAffichageListe) {
         case 'parQuartiers':
             $pagination = new paginationObject();
             $arrayQuartiers = $this->getIdQuartiersFrom($idVilleGeneral, 'ville');
             $arrayQuartiersNotEmpty = $r->getIdQuartiersNotEmpty();
             $arrayListeQuartiersNotEmpty = array();
             $arrayListeAlphabetique = array();
             foreach ($arrayQuartiers as $indice => $idQuartier) {
                 if (in_array($idQuartier, $arrayQuartiersNotEmpty['arrayListeQuartiersNonVides'])) {
                     $arrayListeQuartiersNotEmpty[] = $idQuartier;
                 }
             }
             // pagination
             $nbEnregistrementTotaux = count($arrayListeQuartiersNotEmpty);
             // nombre d'images affichées sur une page
             $nbEnregistrementsParPage = 12;
             $arrayPagination = $pagination->pagination(array('nomParamPageCourante' => 'archiPageCouranteVille', 'nbEnregistrementsParPage' => $nbEnregistrementsParPage, 'nbEnregistrementsTotaux' => $nbEnregistrementTotaux, 'typeLiens' => 'noformulaire'));
             $t->assign_vars(array('pagination' => $arrayPagination['html']));
             $req = "SELECT idQuartier, nom\n\t\t\t\t\t\tFROM quartier\n\t\t\t\t\t\tWHERE idQuartier in ('" . implode("','", $arrayListeQuartiersNotEmpty) . "')\n\t\t\t\t\t\t\t\tand nom<>'autre'\n\t\t\t\t\t\t\t\tORDER BY nom ASC\n\t\t\t\t\t\t\t\tLIMIT " . $arrayPagination['limitSqlDebut'] . "," . $nbEnregistrementsParPage . "\n\t\t\t\t\t\t\t\t\t\t";
             $tableau = new tableau();
             $res = $this->connexionBdd->requete($req);
             while ($fetch = mysql_fetch_assoc($res)) {
                 // pour chaque ville on va regarder s'il y a des adresses qui correspondent et on les compte
                 /*$reqCount = "
                 		 SELECT distinct ha.idAdresse
                 		FROM historiqueAdresse ha2, historiqueAdresse ha
                 		LEFT JOIN sousQuartier sq ON sq.idQuartier = '".$fetch['idQuartier']."'
                 		LEFT JOIN rue r ON r.idSousQuartier = sq.idSousQuartier
                 		WHERE
                 		(ha.idRue = IFNULL(r.idRue , 0)
                 				OR  ha.idQuartier = '".$fetch['idQuartier']."'
                 				OR  ha.idSousQuartier = IFNULL(sq.idSousQuartier,0))
                 		AND ha2.idHistoriqueAdresse = ha.idHistoriqueAdresse
                 		GROUP BY ha.idAdresse, ha.idHistoriqueAdresse
                 		HAVING ha.idHistoriqueAdresse = max(ha2.idHistoriqueAdresse)
                 		";*/
                 $reqRuesQuartier = "SELECT idRue FROM rue WHERE idSousQuartier IN (SELECT idSousQuartier FROM sousQuartier WHERE idQuartier=" . $fetch['idQuartier'] . ")";
                 $reqSousQuartier = "SELECT idSousQuartier FROM sousQuartier WHERE idQuartier = " . $fetch['idQuartier'];
                 $nbAdressesTotales = 0;
                 $nbAdressesRues = 0;
                 $nbAdressesSousQuartiers = 0;
                 $nbAdressesQuartiers = 0;
                 $resRuesQuartier = $this->connexionBdd->requete($reqRuesQuartier);
                 while ($fetchRuesQuartier = mysql_fetch_assoc($resRuesQuartier)) {
                     $reqCountRuesQuartier = "SELECT count(distinct idAdresse) as nbAdressesRues from historiqueAdresse WHERE idRue='" . $fetchRuesQuartier['idRue'] . "'";
                     $resCountRuesQuartier = $this->connexionBdd->requete($reqCountRuesQuartier);
                     $fetchAdressesRues = mysql_fetch_assoc($resCountRuesQuartier);
                     $nbAdressesRues += $fetchAdressesRues['nbAdressesRues'];
                 }
                 $resSousQuartier = $this->connexionBdd->requete($reqSousQuartier);
                 while ($fetchSousQuartier = mysql_fetch_assoc($resSousQuartier)) {
                     $reqCountSousQuartierQuartier = "SELECT count(distinct idAdresse) as nbAdressesSousQuartiers FROM historiqueAdresse WHERE idSousQuartier='" . $fetchSousQuartier['idSousQuartier'] . "'";
                     $resCountSousQuartierQuartier = $this->connexionBdd->requete($reqCountSousQuartierQuartier);
                     $fetchAdressesSousQuartiers = mysql_fetch_assoc($resCountSousQuartierQuartier);
                     $nbAdressesSousQuartiers += $fetchAdressesSousQuartiers['nbAdressesSousQuartiers'];
                 }
                 $reqCountQuartiers = "SELECT count(distinct idAdresse) as nbAdressesQuartier FROM historiqueAdresse WHERE idQuartier = '" . $fetch['idQuartier'] . "'";
                 $resCountQuartiers = $this->connexionBdd->requete($reqCountQuartiers);
                 $fetchCountQuartiers = mysql_fetch_assoc($resCountQuartiers);
                 $nbAdressesQuartiers += $fetchCountQuartiers['nbAdressesQuartier'];
                 $nbAdressesTotales = $nbAdressesRues + $nbAdressesSousQuartiers + $nbAdressesQuartiers;
                 $nbResultats = "(" . $nbAdressesTotales . ")";
                 $htmlPhoto = '';
                 $urlPhoto = $this->getUrlImageFromQuartier($fetch['idQuartier'], 'moyen');
                 if (!pia_ereg("transparent.gif", $urlPhoto)) {
                     // la fonction renvoi le lien vers une photo transparente si elle ne trouve pas de photo de du quartier
                     $htmlPhoto = "<a href='" . $this->creerUrl('', 'adresseListe', array('recherche_quartier' => $fetch['idQuartier'])) . "'><img src='" . $urlPhoto . "' border=0></a>";
                 } else {
                     // pas de photo
                     $htmlPhoto = "<span style='float:right;margin:0px;padding:0px;'><a href='" . $this->creerUrl('', 'adresseListe', array('recherche_quartier' => $fetch['idQuartier'])) . "'><table border='' style='margin:0px;padding:0px;border:1px solid #000000;font-size:11px;background-image:url(" . $this->getUrlImage() . "imageDefautArchiv2.jpg);' width=200 height=150><tr><td align=center valign=center style='padding-top:100px;'>Pas de photo</td></tr></table></a></span>";
                 }
                 $lien = "<a href='" . $this->creerUrl('', 'adresseListe', array('recherche_quartier' => $fetch['idQuartier'])) . "'>" . stripslashes($fetch['nom']) . "</a>" . $nbResultats;
                 if ($nbAdressesTotales > 0) {
                     $tableau->addValue($htmlPhoto . "<br>" . $lien);
                 }
             }
             $t->assign_vars(array('elements' => $tableau->createHtmlTableFromArray(3)));
             break;
         case "parVilles":
             $arrayVillesNotEmpty = $r->getIdVillesNotEmpty();
             $arrayListeVillesAvecAdresses = $arrayVillesNotEmpty["arrayIdVilles"];
             $listeVilleAvecAdresses = implode(",", $arrayListeVillesAvecAdresses);
             //pagination
             $reqNbVilles = "\n\t\t\t\t\t\tSELECT 0\n\t\t\t\t\t\tFROM ville\n\t\t\t\t\t\twhere (idPays = '1' or idPays='2')\n\t\t\t\t\t\tAND idVille in (" . $listeVilleAvecAdresses . ")\n\t\t\t\t\t\t\t\tand nom <>'autre'\n\t\t\t\t\t\t\t\t";
             $resNbVilles = $this->connexionBdd->requete($reqNbVilles);
             $nbEnregistrementTotaux = mysql_num_rows($resNbVilles);
             // nombre d'images affichées sur une page
             $nbEnregistrementsParPage = 12;
             $arrayPagination = $this->pagination(array('nomParamPageCourante' => 'archiPageCouranteVille', 'nbEnregistrementsParPage' => $nbEnregistrementsParPage, 'nbEnregistrementsTotaux' => $nbEnregistrementTotaux, 'typeLiens' => 'noformulaire'));
             $t->assign_vars(array('pagination' => $arrayPagination['html']));
             $req = "\n\t\t\t\t\t\tSELECT v.nom,v.idVille, lower(substr(v.nom,1,1)) as lettre\n\t\t\t\t\t\tFROM ville v\n\n\t\t\t\t\t\tWHERE (v.idPays = '1' or v.idPays='2')\n\t\t\t\t\t\tAND v.nom<>'autre'\n\t\t\t\t\t\tAND idVille in (" . $listeVilleAvecAdresses . ")\n\t\t\t\t\t\t\t\tORDER BY v.nom\n\t\t\t\t\t\t\t\tLIMIT " . $arrayPagination['limitSqlDebut'] . "," . $nbEnregistrementsParPage;
             $tableau = new tableau();
             $res = $this->connexionBdd->requete($req);
             while ($fetch = mysql_fetch_assoc($res)) {
                 $listeRuesVille = "SELECT idRue FROM rue WHERE idSousQuartier IN (SELECT idSousQuartier FROM sousQuartier WHERE idQuartier IN (SELECT idQuartier FROM quartier WHERE idVille='" . $fetch['idVille'] . "'))";
                 $listeSousQuartiersVille = "SELECT idSousQuartier FROM sousQuartier WHERE idQuartier IN (SELECT idQuartier FROM quartier WHERE idVille='" . $fetch['idVille'] . "')";
                 $listeQuartiersVille = "SELECT idQuartier FROM quartier WHERE idVille='" . $fetch['idVille'] . "'";
                 // comptage du nombre d'adresse liés a ces elements d'adresses
                 $resRuesVille = $this->connexionBdd->requete($listeRuesVille);
                 $nbRues = 0;
                 while ($fetchRuesVilles = mysql_fetch_assoc($resRuesVille)) {
                     $reqNbAdressesRue = "SELECT count(distinct idAdresse) as nbAdressesRue FROM historiqueAdresse WHERE idRue='" . $fetchRuesVilles['idRue'] . "'";
                     $resNbAdressesRue = $this->connexionBdd->requete($reqNbAdressesRue);
                     $fetchNbAdressesRue = mysql_fetch_assoc($resNbAdressesRue);
                     $nbRues += $fetchNbAdressesRue['nbAdressesRue'];
                 }
                 $resSousQuartiersVille = $this->connexionBdd->requete($listeSousQuartiersVille);
                 $nbSousQuartiers = 0;
                 while ($fetchSousQuartiersVille = mysql_fetch_assoc($resSousQuartiersVille)) {
                     $reqNbAdressesSousQuartier = "SELECT count(distinct idAdresse) as nbAdressesSousQuartiers FROM historiqueAdresse WHERE idSousQuartier='" . $fetchSousQuartiersVille['idSousQuartier'] . "'";
                     $resNbAdressesSousQuartier = $this->connexionBdd->requete($reqNbAdressesSousQuartier);
                     $fetchNbAdressesSousQuartier = mysql_fetch_assoc($resNbAdressesSousQuartier);
                     $nbSousQuartiers += $fetchNbAdressesSousQuartier['nbAdressesSousQuartiers'];
                 }
                 $resQuartiersVille = $this->connexionBdd->requete($listeQuartiersVille);
                 $nbQuartiers = 0;
                 while ($fetchQuartiersVille = mysql_fetch_assoc($resQuartiersVille)) {
                     $reqNbAdressesQuartier = "SELECT count(distinct idAdresse) as nbAdressesQuartiers FROM historiqueAdresse WHERE idQuartier='" . $fetchQuartiersVille['idQuartier'] . "'";
                     $resNbAdressesQuartier = $this->connexionBdd->requete($reqNbAdressesQuartier);
                     $fetchNbAdressesQuartier = mysql_fetch_assoc($resNbAdressesQuartier);
                     $nbQuartiers += $fetchNbAdressesQuartier['nbAdressesQuartiers'];
                 }
                 $nbVilles = 0;
                 $reqNbAdressesVilles = "SELECT count(distinct idAdresse) as nbAdressesVilles FROM historiqueAdresse WHERE idVille='" . $fetch['idVille'] . "'";
                 $resNbAdressesVilles = $this->connexionBdd->requete($reqNbAdressesVilles);
                 $fetchNbAdressesVilles = mysql_fetch_assoc($resNbAdressesVilles);
                 $nbVilles = $fetchNbAdressesVilles['nbAdressesVilles'];
                 $totalAdresses = $nbRues + $nbQuartiers + $nbVilles;
                 $recherche = new archiRecherche();
                 $nbResult = $recherche->getNumberOfAdresse(array('ville' => $fetch['idVille']));
                 $nbResultats = " (" . $nbResult . ")";
                 $htmlPhoto = "";
                 $urlPhoto = $this->getUrlImageFromVille($fetch['idVille'], 'moyen');
                 if ($urlPhoto != '') {
                     $htmlPhoto = "<a href='" . $this->creerUrl('', 'adresseListe', array('recherche_ville' => $fetch['idVille'])) . "'><img src='" . $urlPhoto . "' border=0></a>";
                 }
                 $lien = "<a href='" . $this->creerUrl('', 'adresseListe', array('recherche_ville' => $fetch['idVille'])) . "'>" . stripslashes($fetch['nom']) . "</a>" . $nbResultats . "<br>";
                 if ($totalAdresses > 0) {
                     $tableau->addValue($htmlPhoto . "<br>" . $lien);
                 }
             }
             $t->assign_vars(array('elements' => $tableau->createHtmlTableFromArray(3)));
             break;
         case "parRuesDeQuartier":
         default:
             // DEFAULT : affichage parRues
             // s'il n'y a pas de criteres on affiche les dossiers des rues de strasbourg
             $r = new archiRecherche();
             $s = new stringObject();
             if (isset($this->variablesGet['archiIdQuartier']) && $this->variablesGet['archiIdQuartier'] != '') {
                 $arrayRues = $this->getIdRuesFrom($this->variablesGet['archiIdQuartier'], 'quartier');
             } else {
                 $arrayRues = $this->getIdRuesFrom($idVilleGeneral, 'ville');
             }
             $arrayRuesNotEmpty = $r->getIdRuesNotEmpty();
             $arrayIdRuesNotEmpty = array();
             $arrayListeAlphabetique = array();
             foreach ($arrayRues as $indice => $idRue) {
                 if (in_array($idRue, $arrayRuesNotEmpty['arrayIdRues'])) {
                     $arrayIdRuesNotEmpty[] = $idRue;
                     $reqInitiales = "SELECT lower(substring(nom,1,1)) as initiale FROM rue WHERE idRue='" . $idRue . "'";
                     $resInitiales = $this->connexionBdd->requete($reqInitiales);
                     $fetchInitiales = mysql_fetch_assoc($resInitiales);
                     $initiale = $fetchInitiales['initiale'];
                     $arrayListeAlphabetique[] = $s->sansAccents($initiale);
                     // enleve les accents
                     if (!isset($this->variablesGet['lettreCourante']) || isset($this->variablesGet['lettreCourante']) && $s->sansAccents($initiale) == $this->variablesGet['lettreCourante']) {
                         $arrayIdRuesNotEmptyWithSelection[] = $idRue;
                         // prend en compte le nombre de rue selectionnée ou non par leur initiales
                     }
                 }
             }
             $sqlCritere = "";
             if (isset($this->variablesGet['lettreCourante']) && $this->variablesGet['lettreCourante'] != '') {
                 $sqlCritere = " AND lower(SUBSTRING(nom,1,1))=lower('" . $this->variablesGet['lettreCourante'] . "') ";
             }
             $nbEnregistrementTotaux = count($arrayIdRuesNotEmptyWithSelection);
             // nombre d'images affichées sur une page
             $nbEnregistrementsParPage = 40;
             $pagination = new paginationObject();
             if (isset($this->variablesGet['archiIdQuartier'])) {
                 $arrayPagination = $pagination->pagination(array('nomParamPageCourante' => 'archiPageRuesQuartier', 'nbEnregistrementsParPage' => $nbEnregistrementsParPage, 'nbEnregistrementsTotaux' => $nbEnregistrementTotaux, 'typeLiens' => 'freeLink', 'urlFreeLink' => $this->creerUrl('', 'listeDossiers', array('archiIdQuartier' => $this->variablesGet['archiIdQuartier'], 'modeAffichageListe' => 'parRuesDeQuartier', 'archiPageRuesQuartier' => '##numPage##'))));
             } else {
                 $arrayPagination = $pagination->pagination(array('nomParamPageCourante' => 'archiPageCouranteVille', 'nbEnregistrementsParPage' => $nbEnregistrementsParPage, 'nbEnregistrementsTotaux' => $nbEnregistrementTotaux, 'typeLiens' => 'noformulaire', 'arrayListeAlphabetique' => $arrayListeAlphabetique));
             }
             $t->assign_vars(array('pagination' => $arrayPagination['html']));
             $req = "\n\t\t\t\t\t\tSELECT nom,idRue,prefixe, lower(substr(nom,1,1)) as lettre\n\t\t\t\t\t\tFROM rue\n\t\t\t\t\t\tWHERE\n\t\t\t\t\t\tidRue in ('" . implode("','", $arrayIdRuesNotEmpty) . "')\n\t\t\t\t\t\t{$sqlCritere}\n\t\t\t\t\t\tORDER BY lettre\n\t\t\t\t\t\tLIMIT " . $arrayPagination['limitSqlDebut'] . "," . $nbEnregistrementsParPage;
             $res = $this->connexionBdd->requete($req);
             $tableau = new tableau();
             while ($fetch = mysql_fetch_assoc($res)) {
                 // pour chaque rue on va regarder s'il y a des adresses qui correspondent et on les compte (affichage du nombre de resultats)
                 $reqCount = "SELECT count(distinct idAdresse) as nbAdresses FROM historiqueAdresse WHERE idRue='" . $fetch['idRue'] . "'";
                 $resCount = $this->connexionBdd->requete($reqCount);
                 $fetchCount = mysql_fetch_assoc($resCount);
                 $valCount = $fetchCount['nbAdresses'];
                 $nbResultats = " (" . $valCount . ")";
                 $htmlPhoto = '';
                 //$urlPhoto = $this->getUrlImageFromRue($fetch['idRue'],'moyen');
                 $urlPhoto = "resizeImage.php?id=" . $this->getIdImageFromRue($fetch['idRue']);
                 if (!pia_ereg("transparent.gif", $urlPhoto)) {
                     // la fonction renvoi le lien vers une photo transparente si elle ne trouve pas de photo de la rue
                     $htmlPhoto = "<a href='" . $this->creerUrl('', 'adresseListe', array('recherche_rue' => $fetch['idRue'])) . "'><img src='" . $urlPhoto . "' border=0></a><br>";
                 } else {
                     // pas de photo
                     $htmlPhoto = "<a style='margin:0px;padding:0px;' href='" . $this->creerUrl('', 'adresseListe', array('recherche_rue' => $fetch['idRue'])) . "'><table border='' style='margin:0px;padding:0px;border:1px solid #000000;font-size:11px;background-image:url(" . $this->getUrlImage() . "imageDefautArchiv2.jpg);' width=200 height=150><tr><td align=center valign=center style='padding-top:100px;'>Pas de photo</td></tr></table></a>";
                 }
                 $lien = "<a href='" . $this->creerUrl('', 'adresseListe', array('recherche_rue' => $fetch['idRue'])) . "'>" . stripslashes($fetch['prefixe'] . " " . $fetch['nom']) . "</a>" . $nbResultats;
                 if ($valCount > 0) {
                     $tableau->addValue($htmlPhoto . $lien);
                 }
             }
             $t->assign_vars(array('elements' => $tableau->createHtmlTableFromArray(5)));
             break;
     }
     ob_start();
     $t->pparse('listeRegroupee');
     $html = ob_get_contents();
     ob_end_clean();
     return $html;
 }
 /**
  * Permet de couper un texte trop long
  * 
  * @param string $texte  Texte à couper
  * @param int    $nbMots Nombre de mots maximum à conserver
  * 
  * @return string
  * */
 public function coupureTexte($texte, $nbMots)
 {
     $retour = "";
     $texte = trim($this->sansBalisesHtml($texte));
     $tabMots = explode(" ", $texte);
     if (count($tabMots) < $nbMots) {
         $nbMots = count($tabMots);
     }
     $i = 0;
     while ($i < $nbMots && !pia_ereg("\\[url", $tabMots[$i])) {
         $retour .= $tabMots[$i];
         if ($i < $nbMots - 1) {
             $retour .= " ";
         }
         $i++;
     }
     if (pia_strlen($texte) > 0 && pia_strlen($texte) > pia_strlen($retour)) {
         $retour .= "…";
     }
     return $retour;
 }