Subversion Repositories eFlore/Projets.eflore-projets

Rev

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

Rev 285 Rev 286
Line 47... Line 47...
47
	
47
	
48
	protected $champ_tri = 'code_langue';
48
	protected $champ_tri = 'code_langue';
Line 49... Line 49...
49
	protected $direction_tri = 'asc';
49
	protected $direction_tri = 'asc';
-
 
50
	
-
 
51
	/**
-
 
52
	 * Indique les champs supplémentaires à retourner
-
 
53
	 *  - conseil_emploi = conseil d'emploi du nom vernaculaire
-
 
54
	 *  - genre = genre et nombre du nom
-
 
55
	 *  - taxon = nom retenu associé à ce nom
-
 
56
	 */
-
 
57
	protected $champs_supp = array();
50
 
58
 
51
	/**
59
	/**
52
	 * Precise la contenance plus ou moins précise du tableau à retourner :
60
	 * Precise la contenance plus ou moins précise du tableau à retourner :
53
	 *  - min = les données présentes dans la table
61
	 *  - min = les données présentes dans la table
54
	 *  - max = les données de la table + les informations complémentaires (pour les identifiants et les codes)
62
	 *  - max = les données de la table + les informations complémentaires (pour les identifiants et les codes)
Line 97... Line 105...
97
						$this->limite_requete['depart'] = $valeur;
105
						$this->limite_requete['depart'] = $valeur;
98
						break;
106
						break;
99
					case 'navigation.limite' :
107
					case 'navigation.limite' :
100
						$this->limite_requete['limite'] = $valeur;
108
						$this->limite_requete['limite'] = $valeur;
101
						break;
109
						break;
-
 
110
					case 'retour.champs' :
-
 
111
						$this->champs_supp = explode(',',$valeur);
-
 
112
					break;
102
					case 'recherche' :
113
					case 'recherche' :
103
						break;
114
						break;
104
					case 'version.projet' :
115
					case 'version.projet' :
105
						break;
116
						break;
106
					default :
117
					default :
Line 339... Line 350...
339
			$resultat_json[$tab['num_nom_vernaculaire']]['id'] = $tab['id'];
350
			$resultat_json[$tab['num_nom_vernaculaire']]['id'] = $tab['id'];
340
			$resultat_json[$tab['num_nom_vernaculaire']]['nom_vernaculaire'] = $tab['nom_vernaculaire'];
351
			$resultat_json[$tab['num_nom_vernaculaire']]['nom_vernaculaire'] = $tab['nom_vernaculaire'];
341
			$resultat_json[$tab['num_nom_vernaculaire']]['code_langue'] = $tab['code_langue'];
352
			$resultat_json[$tab['num_nom_vernaculaire']]['code_langue'] = $tab['code_langue'];
342
			$resultat_json[$tab['num_nom_vernaculaire']]['taxon.code'] = 'bdtfx.nt:'.$tab['num_taxon'];
353
			$resultat_json[$tab['num_nom_vernaculaire']]['taxon.code'] = 'bdtfx.nt:'.$tab['num_taxon'];
343
			if ($this->retour_format == 'max') {
354
			if ($this->retour_format == 'max') {
344
				$resultat_json[$tab['num_nom_vernaculaire']]['taxon'] = $tab['num_taxon'];
355
				$resultat_json[$tab['num_nom_vernaculaire']]['num_taxon'] = $tab['num_taxon'];
345
				$resultat_json[$tab['num_nom_vernaculaire']]['nom_retenu.code'] = $tab['num_taxon'];
356
				$resultat_json[$tab['num_nom_vernaculaire']]['nom_retenu.code'] = $tab['num_taxon'];
-
 
357
				$resultat_json[$tab['num_nom_vernaculaire']]['taxon'] = $tab['num_taxon'];
346
				$this->taxons[] = $tab['num_taxon']; // utilisé pour chercher les noms latins plus bas
358
				$this->taxons[] = $tab['num_taxon']; // utilisé pour chercher les noms latins plus bas
347
				$resultat_json[$tab['num_nom_vernaculaire']]['href'] = $this->ajouterHref('noms-vernaculaires', $tab['id']);
359
				$resultat_json[$tab['num_nom_vernaculaire']]['href'] = $this->ajouterHref('noms-vernaculaires', $tab['id']);
-
 
360
				
-
 
361
				if($this->champs_supp != array()) {
348
				$resultat_json[$tab['num_nom_vernaculaire']] = $this->ajouterChampsOntologieLigneResultat($tab);
362
					$resultat_json[$tab['num_nom_vernaculaire']] = $this->ajouterChampsOntologieLigneResultat($tab);
349
			}
363
				}
350
		}
364
			}
-
 
365
		}
Line 351... Line 366...
351
		
366
		
352
		if ($this->retour_format == 'max') {
367
		if ($this->retour_format == 'max') {
353
			// On est obligé de faire un deuxième boucle pour demander tous les taxons présents en une 
368
			// On est obligé de faire un deuxième boucle pour demander tous les taxons présents en une 
354
			// fois et les attribuer aux noms car c'est beaucoup plus rapide
369
			// fois et les attribuer aux noms car c'est beaucoup plus rapide
355
			$noms_sci = $this->recupererNomTaxons();
370
			$noms_sci = $this->recupererNomTaxons();
356
			foreach ($resultat_json as &$tab) {
371
			foreach ($resultat_json as $num_nom => &$tab) {
357
				$tab = $this->ajouterTaxonsAttributionsLigneResultat($resultat_json[$tab['num_nom_vernaculaire']], $noms_sci);
372
				$tab = $this->ajouterTaxonsAttributionsLigneResultat($tab, $noms_sci);
358
			}
373
			}
Line 359... Line 374...
359
		}
374
		}
360
		
375
		
361
		uasort($resultat_json, array($this,'trierLigneTableau'));
376
		uasort($resultat_json, array($this,'trierLigneTableau'));
362
		$table_retour_json['resultat'] = $resultat_json;
377
		$table_retour_json['resultat'] = $resultat_json;
Line -... Line 378...
-
 
378
		return $table_retour_json;
-
 
379
	}
-
 
380
	
-
 
381
	/**
-
 
382
	 * Ajoute les champs d'ontologie supplémentaires si necéssaire
-
 
383
	 * en faisant appels aux web services associés
-
 
384
	 * @param array $ligne_resultat
363
		return $table_retour_json;
385
	 * 
Line 364... Line 386...
364
	}
386
	 * @return array la ligne modifiée
365
	
387
	 */
-
 
388
	public function ajouterChampsOntologieLigneResultat($ligne_resultat) {
366
	public function ajouterChampsOntologieLigneResultat($ligne_resultat) {
389
		
367
		
390
		$intitule = '';
368
		$intitule = '';
391
		foreach($this->champ_infos as $cle => $champs_supplementaires) {
369
		foreach($this->champ_infos as $cle => $champs_supplementaires) {
392
			if(in_array($cle, $this->champs_supp)) {
370
			extract($champs_supplementaires);
393
				extract($champs_supplementaires);
Line 388... Line 411...
388
				$url = $this->ajouterHrefAutreProjet($service, $ressource, $valeur_recherche, $projet);
411
					$url = $this->ajouterHrefAutreProjet($service, $ressource, $valeur_recherche, $projet);
389
				$code_valeur = $this->chercherSignificationCode($url, $nom);
412
					$code_valeur = $this->chercherSignificationCode($url, $nom);
390
			}
413
				}
391
			$ligne_resultat[$intitule] = $code_valeur;
414
				$ligne_resultat[$intitule] = $code_valeur;
392
		}
415
			}
-
 
416
		}
393
		return $ligne_resultat;
417
		return $ligne_resultat;
394
	}
418
	}
Line 395... Line 419...
395
	
419
	
396
	/**
420
	/**