Subversion Repositories eFlore/Projets.eflore-projets

Rev

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

Rev 730 Rev 731
Line 426... Line 426...
426
	 */
426
	 */
427
	public function ajouterChampsOntologieLigneTousResultats(&$resultats) {
427
	public function ajouterChampsOntologieLigneTousResultats(&$resultats) {
428
		foreach($this->champ_infos as $cle => $champs_supplementaires) {
428
		foreach($this->champ_infos as $cle => $champs_supplementaires) {
429
			if(!in_array($cle, $this->champs_supp)) continue;
429
			if(!in_array($cle, $this->champs_supp)) continue;
Line -... Line 430...
-
 
430
 
430
 
431
			// TODO: n'activer QUE lorsque le webservice ontologie Nvjfl supportera le multi-critère
431
			// TODO:
432
			// cf: services/modules/0.1/commun/Ontologies.php
432
			if($cle == 'conseil_emploi') {
433
			if(FALSE && $cle == 'conseil_emploi') {
433
				// la factorisation des toutes les valeurs recherchées (pour tous les
434
				// la factorisation des toutes les valeurs recherchées (pour tous les
-
 
435
				// résultats, peut [potentiellement] être effectuée ci-dessous)
434
				// résultats, peut [potentiellement] être effectuée ci-dessous)
436
				$ontologieParamPending = static::NvjflOntologieIndex($resultats, $champs_supplementaires);
-
 
437
				$this->NvjflOntologieExpand($ontologieParamPending);
435
				// $this->ajouterChampsOntologieNVJFL($resultats);
438
				self::NvjflOntologieCombine($resultats, $champs_supplementaires);
436
				// continue;
-
 
437
				
439
				continue;
Line 438... Line 440...
438
			}
440
			}
439
 
441
 
440
			// extrait, depuis un élément de $champ_infos:
442
			// extrait, depuis un élément de $champ_infos:
Line 449... Line 451...
449
				$tab[$intitule] = $this->chercherSignificationCode($url, $nom);
451
				$tab[$intitule] = $this->chercherSignificationCode($url, $nom);
450
			}
452
			}
451
		}
453
		}
452
	}
454
	}
Line -... Line 455...
-
 
455
 
-
 
456
	/* Récupère les valeurs recherchées pour une liste de résultats, (plus ou moins)
-
 
457
	   spécifiquement au service d'Ontologies de NVJFL.
-
 
458
	   Aggrège les valeurs dans le tableau retourné.
-
 
459
	   Une référence vers l'index du tableau (NULL pour l'instant) est laissée dans
-
 
460
	   un élément du résultat. */
-
 
461
	static function NvjflOntologieIndex(&$resultats, $champs_infos) {
-
 
462
		$ontologieParamPending = Array();
-
 
463
		extract($champs_infos);
-
 
464
		foreach($resultats as &$resultat) {
-
 
465
			$valeur_recherche = $resultat[$bdd_champ];
-
 
466
			if(!trim($valeur_recherche)) continue;
-
 
467
			$ontologieParamPending[$ressource . $valeur_recherche] = NULL;
-
 
468
			// placeholder pour le résultat
-
 
469
			$resultat['_result_ontologies' . RES_VAL_SEP . 'nvjfl'] =
-
 
470
				&$ontologieParamPending[$ressource . $valeur_recherche];
-
 
471
		}
-
 
472
		return $ontologieParamPending;
-
 
473
	}
-
 
474
 
-
 
475
	// TODO: switch to static si il peut en être de même pour ajouterHrefAutreProjet()
-
 
476
	/* À partir d'un aggrégat des critère de requêtes d'ontologies, spécifiques à NVJFL,
-
 
477
	   créé une URL multi-critère.
-
 
478
	   Celle-ci, dans ce cas précis, n'est que la concaténation, par des virgules,
-
 
479
	   des couples <ressource - valeur recherchée>.
-
 
480
	   L'URL est appelée et la valeur correspondante, dans $criteres_requete, remplacée.
-
 
481
 
-
 
482
	   Note: dans le cadre du tryptique index/expand/combine pour lequel cette fonction existe,
-
 
483
	   la valeur est référencée par une élément d'une ou plusieurs lignes de $resultat correspondantes.
-
 
484
	   Celle(s)-ci sera[ont] donc changée(s) dans la foulée. */
-
 
485
	public function NvjflOntologieExpand(&$criteres_requete) {
-
 
486
		// équivalent spécifique de ajouterHrefAutreProjet()
-
 
487
		$valeurs_requises = implode(',', array_keys($criteres_requete));
-
 
488
		$url = Config::get('url_service_base').'nvjfl/ontologies/'.$valeurs_requises;
-
 
489
		$val = $this->consulterHref($url);
-
 
490
		// modifie par conséquent $resultats[X]['_result_ontologies' . RES_VAL_SEP . 'nvjfl']
-
 
491
		// dont la référence pointe toujours sur $v
-
 
492
		foreach($val as $k => $v) $criteres_requete[$k] = $val->$k;
-
 
493
	}
-
 
494
 
-
 
495
	/* Fonction finale du tryptique: réordonne les valeurs obtenues auprès du web-service
-
 
496
	   NVJFL en adéquation avec les champs attendus en sortie. Pour ce faire, $champs_infos
-
 
497
	   est nécessaire. D'autre part, l'index spécifique '_result_ontologies' . RES_VAL_SEP . 'nvjfl'
-
 
498
	   est supprimé après avoir été correctement copié. */
-
 
499
	static function NvjflOntologieCombine(&$resultats, $champs_infos) {
-
 
500
		extract($champs_infos);
-
 
501
		foreach($resultats as &$resultat) {
-
 
502
			if(!isset($resultat['_result_ontologies' . RES_VAL_SEP . 'nvjfl'])) continue;
-
 
503
			// equivalent de chercher signification
-
 
504
			$resultat[$intitule] = $resultat['_result_ontologies' . RES_VAL_SEP . 'nvjfl']->$nom;
-
 
505
			unset($resultat['_result_ontologies' . RES_VAL_SEP . 'nvjfl']);
-
 
506
		}
-
 
507
	}
453
 
508
 
454
	/**
509
	/**
455
	 * Ajoute les champs d'ontologie supplémentaires si necéssaire
510
	 * Ajoute les champs d'ontologie supplémentaires si necéssaire
456
	 * en faisant appels aux web services associés
511
	 * en faisant appels aux web services associés
457
	 * @param array $ligne_resultat
512
	 * @param array $ligne_resultat