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> | <a href='" . $this->creerUrl('', 'listeDossiers', array('modeAffichageListe' => 'parQuartiers', 'archiIdVilleGeneral' => $idVilleGeneral)) . "'>" . _("Par quartiers de") . " " . $nomVilleGeneral . "</a> | <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; }