Subversion Repositories eFlore/Applications.cel

Rev

Rev 2153 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2153 Rev 2458
Line 1... Line 1...
1
<?php
1
<?php
2
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel //
2
// declare(encoding='UTF-8');
3
 
-
 
4
/**
3
/**
5
 * Classe gérant la completion des noms de lieux
4
 * Service gérant la completion des noms de lieux.
6
 * Encodage en entrée : utf8
-
 
7
 * Encodage en sortie : utf8
-
 
8
 *
5
 *
9
 * @author David Delon <david.delon@clapas.net>
-
 
10
 * @author Aurélien Peronnet <aurelien@tela-botanica.org>
-
 
11
 * @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>
-
 
12
 * @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
-
 
13
 * @version $Id$
-
 
14
 * @copyright © 2010, David Delon
-
 
15
 */
-
 
16
 
-
 
17
/**
-
 
18
 * Cas d'utilisation :
6
 * Cas d'utilisation :
19
 * Service completion nom de commune (plus tard de lieu en général)
7
 * Service completion nom de commune (plus tard de lieu en général)
20
 *
8
 *
21
 * 1 : L'application recoit un debut de nom de lieu
9
 * 1 : L'application recoit un debut de nom de lieu
22
 * 2 : Si la longueur du prefixe est > 2, l'application retourne les 50 premieres lieux 
10
 * 2 : Si la longueur du prefixe est > 2, l'application retourne les 50 premieres lieux commencant par ce prefixe
-
 
11
 *
-
 
12
 * @internal   Mininum PHP version : 5.2
-
 
13
 * @category   CEL
23
 * commencant par ce prefixe
14
 * @package    Services
-
 
15
 * @subpackage Auto-complétions
-
 
16
 * @version    0.1
-
 
17
 * @author     Mathias CHOUET <mathias@tela-botanica.org>
-
 
18
 * @author     Jean-Pascal MILCENT <jpm@tela-botanica.org>
-
 
19
 * @author     Aurelien PERONNET <aurelien@tela-botanica.org>
-
 
20
 * @license    GPL v3 <http://www.gnu.org/licenses/gpl.txt>
-
 
21
 * @license    CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
-
 
22
 * @copyright  1999-2014 Tela Botanica <accueil@tela-botanica.org>
24
 **/
23
 */
25
class LocationSearch extends Cel {
-
 
Line 26... Line 24...
26
 
24
 
Line -... Line 25...
-
 
25
class LocationSearch extends Cel {
27
	function getElement($uid){
26
 
Line 28... Line 27...
28
 
27
	public function getElement($uid){
29
		$retour = array();
28
		$retour = array();
30
	
29
 
Line 31... Line 30...
31
		if (isset($uid[0])) {
30
		if (isset($uid[0])) {
32
			$retour = $this->executerRequeteLieu($uid[0]);
31
			$retour = $this->executerRequeteLieu($uid[0]);
33
		}
32
		}
Line 34... Line 33...
34
	
33
 
35
		$this->envoyerJson($retour);			
34
		$this->envoyerJson($retour);
36
		return true;	
35
		return true;
37
	}
36
	}
Line 38... Line 37...
38
 
37
 
39
	function getRessource(){
-
 
40
			print "[]";
38
	public function getRessource() {
41
            return;
39
		print '[]';
Line 42... Line 40...
42
	}
40
		return;
43
	
41
	}
44
	private function executerRequeteLieu($lieu) {
42
 
45
		
-
 
46
		$lieu_formate = $this->formaterChaineLieuPourRequete($lieu);
43
	private function executerRequeteLieu($lieu) {
47
		$retour = array();
44
		$lieu_formate = $this->formaterChaineLieuPourRequete($lieu);
48
						
45
		$retour = array();
49
        if ($this->estUneChaineRequeteValide($lieu_formate)) {
46
 
Line -... Line 47...
-
 
47
		if ($this->estUneChaineRequeteValide($lieu_formate)) {
50
		    $requete_information_lieu = 'SELECT DISTINCT nom, code '.
48
			$requete = 'SELECT DISTINCT nom, code '.
51
					'FROM cel_zones_geo '.
49
				'FROM cel_zones_geo '.
52
					'WHERE '.
50
				'WHERE nom LIKE '.Cel::db()->proteger($lieu_formate.'%').' '.
53
		    			'nom LIKE '.Cel::db()->proteger($lieu_formate.'%').' '.
51
				'ORDER BY nom '.
54
		    		'ORDER BY nom LIMIT 50';
52
				'LIMIT 50 '.
55
 
53
				' -- '.__FILE__.':'.__LINE__;
56
    		$liste_lieux = Cel::db()->requeter($requete_information_lieu);
-
 
57
    		
54
 
58
    		if($liste_lieux) {
55
			$liste_lieux = Cel::db()->requeter($requete);
Line 59... Line 56...
59
    			foreach($liste_lieux as $lieu_trouve) {
56
			if ($liste_lieux) {
60
    				$retour[] = $this->formaterLigneResultat($lieu_trouve);
57
				foreach ($liste_lieux as $lieu_trouve) {
Line 82... Line 79...
82
	private function estUneChaineRequeteValide($lieu) {
79
	private function estUneChaineRequeteValide($lieu) {
83
		return (strlen($lieu) > 0) && ($lieu != '%');
80
		return (strlen($lieu) > 0) && ($lieu != '%');
84
	}
81
	}
Line 85... Line 82...
85
	
82
 
86
	private function formaterLigneResultat($ligne) {
83
	private function formaterLigneResultat($ligne) {
87
		return array($ligne['nom']." (".substr(sprintf("%02s",$ligne['code']),0,2).")",$ligne['code']);
84
		return array($ligne['nom'].' ('.substr(sprintf('%02s', $ligne['code']),0,2).')', $ligne['code']);
88
	}
85
	}
89
}
-
 
90
/* +--Fin du code ---------------------------------------------------------------------------------------+
-
 
91
* $Log$
-
 
92
* Revision 1.4  2008-01-30 08:57:28  ddelon
-
 
93
* fin mise en place mygwt
-
 
94
*
-
 
95
* Revision 1.3  2007-05-21 18:13:03  ddelon
-
 
96
* Correction bug recherche commune du type "la canourgue"
-
 
97
*
-
 
98
*
-
 
99
*/
-
 
100
?>
86
}