Rev 1765 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel ///*** Classe gérant la completion des noms de lieux* Encodage en entrée : utf8* Encodage en sortie : utf8** @author David Delon <david.delon@clapas.net>* @author Aurélien Peronnet <aurelien@tela-botanica.org>* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>* @version $Id$* @copyright © 2010, David Delon*//*** Cas d'utilisation :* Service completion nom de commune (plus tard de lieu en général)** 1 : L'application recoit un debut de nom de lieu* 2 : Si la longueur du prefixe est > 2, l'application retourne les 50 premieres lieux* commencant par ce prefixe**/class LocationSearch extends Cel {function getElement($uid){$retour = array();if (isset($uid[0])) {$retour = $this->executerRequeteLieu($uid[0]);}$this->envoyerJson($retour);return true;}function getRessource(){print "[]";return;}private function executerRequeteLieu($lieu) {$lieu_formate = $this->formaterChaineLieuPourRequete($lieu);$retour = array();if ($this->estUneChaineRequeteValide($lieu_formate)) {$requete_information_lieu = 'SELECT DISTINCT nom, code '.'FROM cel_zones_geo '.'WHERE '.'nom LIKE '.Cel::db()->proteger($lieu_formate.'%').' '.'ORDER BY nom LIMIT 50';$liste_lieux = Cel::db()->requeter($requete_information_lieu);if($liste_lieux) {foreach($liste_lieux as $lieu_trouve) {$retour[] = $this->formaterLigneResultat($lieu_trouve);}}}return $retour;}private function formaterChaineLieuPourRequete($params) {$lieu = $params;$lieu=ltrim($lieu);$lieu=preg_replace('/\*+/','%',$lieu);$lieu = str_replace(' ','_',$lieu);$lieu = str_replace('-','_',$lieu);return $lieu;}private function estUneChaineRequeteValide($lieu) {return (strlen($lieu) > 0) && ($lieu != '%');}private function formaterLigneResultat($ligne) {return array($ligne['nom']." (".substr(sprintf("%02s",$ligne['code']),0,2).")",$ligne['code']);}}/* +--Fin du code ---------------------------------------------------------------------------------------+* $Log$* Revision 1.4 2008-01-30 08:57:28 ddelon* fin mise en place mygwt** Revision 1.3 2007-05-21 18:13:03 ddelon* Correction bug recherche commune du type "la canourgue"***/?>