Subversion Repositories eFlore/Applications.del

Rev

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

Rev 745 Rev 755
Line 13... Line 13...
13
 * @license	http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
13
 * @license	http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
14
 * @version	$Id: Bdd.php 403 2012-02-22 14:35:20Z gduche $
14
 * @version	$Id: Bdd.php 403 2012-02-22 14:35:20Z gduche $
15
 * @see http://www.tela-botanica.org/wikini/eflore/wakka.php?wiki=ApiIdentiplante01Observations
15
 * @see http://www.tela-botanica.org/wikini/eflore/wakka.php?wiki=ApiIdentiplante01Observations
16
 */
16
 */
Line 17... Line 17...
17
 
17
 
-
 
18
class ListeObservations {
Line 18... Line 19...
18
class Observations {
19
	
19
	
20
	
20
	private $conteneur;
21
	private $conteneur;
21
	private $navigation;
22
	private $navigation;
Line 47... Line 48...
47
		
48
		
48
		// Lancement du service
49
		// Lancement du service
49
		$liaisons = $this->chargerLiaisons();
50
		$liaisons = $this->chargerLiaisons();
50
		$total = $this->compterObservations();
51
		$total = $this->compterObservations();
51
		$this->navigation->setTotal($total);
52
		$this->navigation->setTotal($total);
52
		$images = $this->chargerObservations($liaisons);
53
		$observations = $this->chargerObservations($liaisons);
-
 
54
		$observations = $this->chargerImages($observations);
-
 
55
		$observations = $this->chargerDeterminations($observations);
Line 53... Line 56...
53
		$images = $this->chargerImages($images);
56
		$observations = $this->chargerNombreCommentaire($observations);
54
		
57
		
55
		// Mettre en forme le résultat et l'envoyer pour affichage
58
		// Mettre en forme le résultat et l'envoyer pour affichage
56
		$resultat = new ResultatService();
59
		$resultat = new ResultatService();
57
		$resultat->corps = array('entete' => $this->conteneur->getEntete(), 'resultats' => $images);
60
		$resultat->corps = array('entete' => $this->conteneur->getEntete(), 'resultats' => $observations);
Line 58... Line 61...
58
		return $resultat;
61
		return $resultat;
59
	}
62
	}
60
	
63
	
61
	/*-------------------------------------------------------------------------------
64
	/*-------------------------------------------------------------------------------
62
	 							CONFIGURATION DU SERVICE
65
	 							CONFIGURATION DU SERVICE
63
	 --------------------------------------------------------------------------------*/
66
	 --------------------------------------------------------------------------------*/
64
	/**
67
	/**
65
	 * Configuration du service en fonction du fichier de config config_del.ini
68
	 * Configuration du service en fonction du fichier de config config_del.ini
66
	 * */
69
	 * */
67
	public function configurer() {
70
	private function configurer() {
Line 68... Line 71...
68
		$this->mappingFiltre = $this->conteneur->getParametre('mapping_masque');
71
		$this->mappingFiltre = $this->conteneur->getParametre('mapping_masque');
69
		$this->mappingObservation = $this->conteneur->getParametre('mapping_observation');
72
		$this->mappingObservation = $this->conteneur->getParametre('mapping_observation');
70
	}
73
	}
71
	
74
	
Line 72... Line 75...
72
	/**
75
	/**
73
	 * Vérifier que le service est bien configuré 
76
	 * Vérifier que le service est bien configuré 
74
	 * */
77
	 * */
75
	public function verifierConfiguration() {
78
	private function verifierConfiguration() {
76
	
79
	
77
		$erreurs = array();
80
		$erreurs = array();
78
		$tableauImages = $this->conteneur->getParametre('images');
81
		$tableauObservations = $this->conteneur->getParametre('observations');
79
		if (empty($tableauImages)) {
82
		if (empty($tableauObservations)) {
Line 251... Line 254...
251
	
254
	
252
	/**
255
	/**
253
	 * Sélectionner toutes les images de chaque observation
256
	 * Sélectionner toutes les images de chaque observation
254
	 * @param array $observations la liste des observations 
257
	 * @param array $observations la liste des observations 
255
	 * */
258
	 * */
Line 256... Line 259...
256
	public function chargerImages($observations) {
259
	private function chargerImages($observations) {
Line 257... Line 260...
257
		
260
		
258
		foreach ($observations as $id => $observation) {
261
		foreach ($observations as $id => $observation) {
Line 268... Line 271...
268
		}
271
		}
Line 269... Line 272...
269
		
272
		
270
		return $observations;
273
		return $observations;
Line -... Line 274...
-
 
274
	}
-
 
275
	
-
 
276
	/**
-
 
277
	* Récupérer toutes les déterminations et le nombre de commentaire au total
-
 
278
	* @param array $observations la liste des observations à mettre à jour
-
 
279
	* */
-
 
280
	private function chargerDeterminations($observations) {
-
 
281
		foreach ($observations as $id => $observation) {
-
 
282
			$requetePropositions = 'SELECT * FROM '.$this->gestionBdd->formaterTable('del_commentaire', 'dc').
-
 
283
									   'WHERE dc.nom_sel IS NOT NULL AND ce_observation = '.$observation['id_observation'];
-
 
284
			$propositions = $this->bdd->recupererTous($requetePropositions);
-
 
285
			$observations[$id]['propositions'] = $propositions;
-
 
286
		}
Line -... Line 287...
-
 
287
		return $observations;
-
 
288
	}
-
 
289
	
-
 
290
	/**
-
 
291
	 * Charger le nombre de commentaires (sans détermination) associé à l'observation
-
 
292
	 * @param Array $observations le tableau des observatins à mettre à jour
-
 
293
	 * */
-
 
294
	private function chargerNombreCommentaire($observations) {
-
 
295
		foreach ($observations as $id => $observation) {
-
 
296
			$requeteNbCommentaires = 'SELECT COUNT('.$this->proteger('id_commentaire').') as nb '.
-
 
297
		                         'FROM '.$this->gestionBdd->formaterTable('del_commentaire').
-
 
298
		                         'WHERE ce_observation = '.$observation['id_observation'].' '.
-
 
299
								 'AND nom_sel IS NULL';
-
 
300
			$nbCommentaires = $this->bdd->recuperer($requeteNbCommentaires);
-
 
301
			$observations[$id]['commentaires'] = (int) $nbCommentaires['nb'];
-
 
302
		}
-
 
303
		return $observations;
-
 
304
		
Line 271... Line 305...
271
	}
305
		
272
	
306
		                                                           
273
	
307
	}