Subversion Repositories eFlore/Applications.del

Rev

Rev 709 | Rev 711 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 709 Rev 710
Line 22... Line 22...
22
	private $schemaBdd;
22
	private $schemaBdd;
23
	private $depart = 0;
23
	private $depart = 0;
24
	private $limite = 10;
24
	private $limite = 10;
25
	private $total; // Le nombre total d'images
25
	private $total; // Le nombre total d'images
26
	private $masque = array(); //Enregistrer les paramètres du masque
26
	private $masque = array(); //Enregistrer les paramètres du masque
-
 
27
	private $masquesPossibles = array('famille', 'genre', 'ns', 'nn', 'auteur', 'date', 'commune', 'departement', 'tag');
27
	private $imageIds = array();
28
	private $imageIds = array();
28
	private $UrlNavigation;
29
	private $UrlNavigation;
29
	private $mappingFiltre;
30
	private $mappingFiltre;
30
	private $mappingObservation;
31
	private $mappingObservation;
Line -... Line 32...
-
 
32
	
31
	
33
	
32
	/**
34
	/**
33
	 * Méthode principale de la classe.
35
	 * Méthode principale de la classe.
34
	 * Lance la récupération des images dans la base et les place dans un objet ResultatService 
36
	 * Lance la récupération des images dans la base et les place dans un objet ResultatService 
35
	 * pour l'afficher.
37
	 * pour l'afficher.
Line 41... Line 43...
41
		// Gestion des configuration du script
43
		// Gestion des configuration du script
42
		// TODO : gérer les erreurs de config
44
		// TODO : gérer les erreurs de config
43
		// voir les paramètres par défaut
45
		// voir les paramètres par défaut
44
		// vérifier les valeurs (voir try catch JP)
46
		// vérifier les valeurs (voir try catch JP)
45
		$this->configurer();
47
		$this->configurer();
46
		
-
 
-
 
48
		//$this->verifierConfiguration();
47
		$this->schemaBdd = $this->config['schemaBdd'];
49
		$this->schemaBdd = $this->config['schemaBdd'];
48
		$this->UrlNavigation = new Url($this->config['url_service']);
50
		$this->UrlNavigation = new Url($this->config['url_service']);
49
		$this->UrlNavigation->setOption(Url::OPTION_ENCODER_VALEURS, true);
51
		$this->UrlNavigation->setOption(Url::OPTION_ENCODER_VALEURS, true);
50
		$this->chargerParametres($parametres);
52
		$this->chargerParametres($parametres);
Line 73... Line 75...
73
		$this->mappingFiltre = Config::get('mapping_masque');
75
		$this->mappingFiltre = Config::get('mapping_masque');
74
		$this->mappingObservation = Config::get('mapping_observation');
76
		$this->mappingObservation = Config::get('mapping_observation');
75
	}
77
	}
Line 76... Line 78...
76
	
78
	
-
 
79
	/**
-
 
80
	 * Vérifier que le service est bien configuré 
-
 
81
	 * */
-
 
82
	public function verifierConfiguration() {
-
 
83
		
-
 
84
		$erreurs = array();
-
 
85
		
-
 
86
		if (empty($this->config)) {
-
 
87
			$erreurs[] = '- le fichier de configuration ne contient pas le tableau [images] ou celui-ci est vide ;'; 
-
 
88
		} else {
-
 
89
			if (!isset($this->config['url_service'])) {
-
 
90
				$erreurs[] = '- paramètre "url_service" manquant ;';
-
 
91
			}
-
 
92
			
-
 
93
			if (!isset($this->config['url_images'])) {
-
 
94
				$erreurs[] = '- paramètre "url_images" manquant ;';
-
 
95
			}
-
 
96
			
-
 
97
			if (!isset($this->config['schemaBdd'])) {
-
 
98
				$erreurs[] = '- paramètre "schemaBdd" manquant ;';
-
 
99
			}
-
 
100
		}
-
 
101
 
-
 
102
		if (empty($this->mappingObservation)) {
-
 
103
			$erreurs[] = '- le fichier de configuration ne contient pas le tableau [mapping_observation] ou celui-ci est vide ;';
-
 
104
		} else {
-
 
105
			$champsMappingObs = array('id_observation', 'date_observation', 'date_transmission', 'famille', 'nom_sel', 'nom_sel_nn', 'nt',
-
 
106
								'ce_zone_geo', 'lieudit', 'station', 'milieu', 'ce_utilisateur', 'nom', 'prenom');
-
 
107
			foreach ($champsMappingObs as $champ) {
-
 
108
				if (!isset($this->mappingObservation[$champ])) {
-
 
109
					$erreurs[] = '- le mapping du champ "'.$champ.'" pour l\'observation est manquant ;';
-
 
110
				}				
-
 
111
			}
-
 
112
		}
-
 
113
		
-
 
114
		if (empty($this->mappingFiltre)) {
-
 
115
			$erreurs[] = '- le fichier de configuration ne contient pas le tableau [mapping_masque] ou celui-ci est vide ;';
-
 
116
		} else {
-
 
117
			$champsMappingFiltre = array('famille', 'ns', 'nn', 'date', 'tag', 'commune');
-
 
118
			foreach ($champsMappingFiltre as $champ) {
-
 
119
				if (!isset($this->mappingFiltre[$champ])) {
-
 
120
					$erreurs[] = '- le mapping du champ "'.$champ.'" pour l\'observation est manquant ;';
-
 
121
				}				
-
 
122
			}
-
 
123
		}
-
 
124
		
-
 
125
		if (!empty($erreurs)) {
-
 
126
			$e = 'Erreur lors de la configuration : '."\n";
-
 
127
			$e .= implode("\n", $erreurs);
-
 
128
			$this->renvoyerErreur(RestServeur::HTTP_CODE_ERREUR, $e);
-
 
129
			
-
 
130
		}
-
 
131
	}
-
 
132
	
77
	/**
133
	/**
78
	 * Gestion des paramètres de l'application pour stockage dans variable de classe
134
	 * Gestion des paramètres de l'application pour stockage dans variable de classe
79
	 * @param array $parametres les paramètres tels que passés à la méthode consulter
135
	 * @param array $parametres les paramètres tels que passés à la méthode consulter
80
	 * */
136
	 * */
81
	public function chargerParametres($parametres) {
137
	public function chargerParametres($parametres) {
Line 87... Line 143...
87
		
143
		
88
		if (isset($this->parametres['navigation.limite'])) {
144
		if (isset($this->parametres['navigation.limite'])) {
89
			$this->limite = $this->parametres['navigation.limite'];
145
			$this->limite = $this->parametres['navigation.limite'];
Line 90... Line -...
90
		}
-
 
91
		
146
		}
92
		// TODO : voir méthode gérer Masque pour gérer les spécificités de chaque paramètre
147
		
93
		foreach ($parametres as $id => $parametre) {
148
		foreach ($parametres as $id => $parametre) {
-
 
149
			if (strpos($id, 'masque.') === 0) {
94
			if (strpos($id, 'masque.') === 0) {
150
				$champ = substr($id, 7, strlen($id));
-
 
151
				if (isset($masquesPossibles[$champ])) {	
95
				$champ = substr($id, 7, strlen($id));	
152
					$this->masque[$champ] = $parametre;
96
				$this->masque[$champ] = $parametre;
153
				}
97
			}
154
			}
Line 98... Line 155...
98
		}
155
		}
Line 123... Line 180...
123
	private function chargerClauseWhere() {
180
	private function chargerClauseWhere() {
124
		$where = array();
181
		$where = array();
Line 125... Line 182...
125
		
182
		
126
		// TODO : vérifier les communes et les communes avec une apostrophe
183
		// TODO : vérifier les communes et les communes avec une apostrophe
127
		foreach($this->masque as $idMasque => $valeurMasque) {
184
		foreach($this->masque as $idMasque => $valeurMasque) {
128
			
185
				
129
			switch ($idMasque) {
186
			switch ($idMasque) {
130
				// nom du masque => nom BDD
187
				// nom du masque => nom BDD
131
				case 'auteur' :
188
				case 'auteur' :
132
					$auteurId = $this->masque['auteur'];
189
					$auteurId = $this->masque['auteur'];