Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 797 → Rev 798

/branches/v1.5-cisaille/jrest/services/LocationSearch.php
New file
0,0 → 1,99
<?php
/**
* Classe gérant l'acceptation de la licence utilisateur
* Encodage en entrée : utf8
* Encodage en sortie : utf8
*
* @author David Delon <david.delon@clapas.net>
* @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
*
* 1 : L'application recoit un debut de nom de commune
* 2 : Si la longueur du prefixe est > 2, l'application retourne les 50 premieres communes
* commencant par ce prefixe
**/
class LocationSearch extends Cel {
 
function getElement($uid){
 
$retour = array();
if (isset($uid[0])) {
$retour = $this->executerRequeteLieu($uid[0]);
}
$output = json_encode($retour);
print($output);
}
 
function getRessource(){
print "[]";
return;
}
private function executerRequeteLieu($lieu) {
$lieu = $this->formaterChaineLieuPourRequete($lieu);
$retour = array();
if ($this->estUneChaineRequeteValide($lieu)) {
$requete_information_lieu = 'SELECT DISTINCT name, code '.
'FROM locations '.
'WHERE '.
'maj_name LIKE '.$this->proteger($lieu.'%').' '.
'OR name LIKE '.$this->proteger($lieu.'%').' '.
'ORDER BY name LIMIT 50';
$liste_lieux = $this->executerRequete($requete_information_lieu);
if($liste_lieux) {
foreach($liste_lieux as $lieu) {
$retour[] = $this->formaterLigneResultat($lieu);
}
}
}
return $retour;
}
private function formaterChaineLieuPourRequete($params) {
$lieu = $params;
$lieu=ltrim($lieu);
$lieu=ereg_replace('\*+','%',$lieu);
return $lieu;
}
private function estUneChaineRequeteValide($lieu) {
return (strlen($lieu) > 0) && ($lieu != '%');
}
private function formaterLigneResultat($ligne) {
return array($ligne['name']." (".sprintf("%02s",$ligne['code']).")",$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"
*
*
*/
 
 
 
?>