Subversion Repositories eFlore/Applications.del

Rev

Rev 1707 | Rev 1806 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1707 Rev 1794
1
<?php
1
<?php
2
// declare(encoding='UTF-8');
2
// declare(encoding='UTF-8');
3
/**
3
/**
4
 * Web service fournissant une liste de noms de communes correspondants au terme recherché.
4
 * Web service fournissant une liste de noms de communes correspondants au terme recherché.
5
 *
5
 *
6
 * @category	DEL
6
 * @category	DEL
7
 * @package		Services
7
 * @package		Services
8
 * @subpackage	Communes
8
 * @subpackage	Communes
9
 * @version		0.1
9
 * @version		0.1
10
 * @author		Jean-Pascal MILCENT <jpm@tela-botanica.org>
10
 * @author		Jean-Pascal MILCENT <jpm@tela-botanica.org>
11
 * @license		GPL v3 <http://www.gnu.org/licenses/gpl.txt>
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>
12
 * @license		CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
13
 * @copyright	©1999-2014, Tela Botanica (<accueil@tela-botanica.org>)
13
 * @copyright	©1999-2014, Tela Botanica (<accueil@tela-botanica.org>)
14
 */
14
 */
15
 
15
 
16
class ListeCommunes {
16
class ListeCommunes {
17
 
17
 
18
	private $conteneur;
18
	private $conteneur;
19
	private $navigation;
19
	private $navigation;
20
	private $masque;
20
	private $masque;
21
	private $parametres = array();
21
	private $parametres = array();
22
	private $ressources = array();
22
	private $ressources = array();
23
 
23
 
24
	public function __construct(Conteneur $conteneur = null) {
24
	public function __construct(Conteneur $conteneur = null) {
25
		$this->conteneur = $conteneur == null ? new Conteneur() : $conteneur;
25
		$this->conteneur = $conteneur == null ? new Conteneur() : $conteneur;
26
		$this->conteneur->chargerConfiguration('config_communes.ini');
26
		$this->conteneur->chargerConfiguration('config_communes.ini');
27
		$this->navigation = $conteneur->getNavigation();
27
		$this->navigation = $conteneur->getNavigation();
28
		$this->masque = $conteneur->getMasque();
28
		$this->masque = $conteneur->getMasque();
29
	}
29
	}
30
 
30
 
31
	/**
31
	/**
32
	 * Méthode principale de la classe.
32
	 * Méthode principale de la classe.
33
	 * Lance la récupération des images dans la base et les place dans un objet ResultatService
33
	 * Lance la récupération des images dans la base et les place dans un objet ResultatService
34
	 * pour l'afficher.
34
	 * pour l'afficher.
35
	 * @param array $ressources les ressources situées après l'url de base (ex : http://url/ressource1/ressource2)
35
	 * @param array $ressources les ressources situées après l'url de base (ex : http://url/ressource1/ressource2)
36
	 * @param array $parametres les paramètres situés après le ? dans l'url
36
	 * @param array $parametres les paramètres situés après le ? dans l'url
37
	 * */
37
	 * */
38
	public function consulter($ressources, $parametres) {
38
	public function consulter($ressources, $parametres) {
39
		$this->initialiserRessourcesEtParametres($ressources, $parametres);
39
		$this->initialiserRessourcesEtParametres($ressources, $parametres);
40
 
40
 
41
		$communes = $this->chargerCommunes($this->masque->getMasque('nom'));
41
		$communes = $this->chargerCommunes($this->masque->getMasque('nom'));
42
		$total = $this->compterCommunes($communes);
42
		$total = $this->compterCommunes($communes);
43
		$this->navigation->setTotal($total);
43
		$this->navigation->setTotal($total);
44
		$this->conteneur->setSansLimite();
44
		$this->navigation->setSansLimite();
45
 
45
 
46
		$resultat = new ResultatService();
46
		$resultat = new ResultatService();
47
		$resultat->corps = array('entete' => $this->conteneur->getEntete(), 'resultats' => $communes);
47
		$resultat->corps = array('entete' => $this->navigation->getEntete(), 'resultats' => $communes);
48
		return $resultat;
48
		return $resultat;
49
	}
49
	}
50
 
50
 
51
	private function initialiserRessourcesEtParametres($ressources, $parametres) {
51
	private function initialiserRessourcesEtParametres($ressources, $parametres) {
52
		$this->ressources = $ressources;
52
		$this->ressources = $ressources;
53
		$this->parametres = $parametres;
53
		$this->parametres = $parametres;
54
	}
54
	}
55
 
55
 
56
	private function chargerCommunes($requete) {
56
	private function chargerCommunes($requete) {
57
		$urlCelTpl = $this->conteneur->getParametre('urlServiceCelCommune');
57
		$urlCelTpl = $this->conteneur->getParametre('urlServiceCelCommune');
58
		$url = $urlCelTpl.$requete;
58
		$url = $urlCelTpl.$requete;
59
		$restClient = $this->conteneur->getRestClient();
59
		$restClient = $this->conteneur->getRestClient();
60
		$resultatJson = $restClient->consulter($url);
60
		$resultatJson = $restClient->consulter($url);
61
		$resultat = json_decode($resultatJson);
61
		$resultat = json_decode($resultatJson);
62
		return $resultat;
62
		return $resultat;
63
	}
63
	}
64
 
64
 
65
	private function compterCommunes($communes) {
65
	private function compterCommunes($communes) {
66
		return count($communes);
66
		return count($communes);
67
	}
67
	}
68
}
68
}