Subversion Repositories eFlore/Projets.eflore-projets

Compare Revisions

Ignore whitespace Rev 730 → Rev 731

/trunk/services/modules/0.1/nvjfl/NomsVernaculaires.php
428,13 → 428,15
foreach($this->champ_infos as $cle => $champs_supplementaires) {
if(!in_array($cle, $this->champs_supp)) continue;
 
// TODO:
if($cle == 'conseil_emploi') {
// TODO: n'activer QUE lorsque le webservice ontologie Nvjfl supportera le multi-critère
// cf: services/modules/0.1/commun/Ontologies.php
if(FALSE && $cle == 'conseil_emploi') {
// la factorisation des toutes les valeurs recherchées (pour tous les
// résultats, peut [potentiellement] être effectuée ci-dessous)
// $this->ajouterChampsOntologieNVJFL($resultats);
// continue;
$ontologieParamPending = static::NvjflOntologieIndex($resultats, $champs_supplementaires);
$this->NvjflOntologieExpand($ontologieParamPending);
self::NvjflOntologieCombine($resultats, $champs_supplementaires);
continue;
}
 
// extrait, depuis un élément de $champ_infos:
451,6 → 453,59
}
}
 
/* Récupère les valeurs recherchées pour une liste de résultats, (plus ou moins)
spécifiquement au service d'Ontologies de NVJFL.
Aggrège les valeurs dans le tableau retourné.
Une référence vers l'index du tableau (NULL pour l'instant) est laissée dans
un élément du résultat. */
static function NvjflOntologieIndex(&$resultats, $champs_infos) {
$ontologieParamPending = Array();
extract($champs_infos);
foreach($resultats as &$resultat) {
$valeur_recherche = $resultat[$bdd_champ];
if(!trim($valeur_recherche)) continue;
$ontologieParamPending[$ressource . $valeur_recherche] = NULL;
// placeholder pour le résultat
$resultat['_result_ontologies' . RES_VAL_SEP . 'nvjfl'] =
&$ontologieParamPending[$ressource . $valeur_recherche];
}
return $ontologieParamPending;
}
 
// TODO: switch to static si il peut en être de même pour ajouterHrefAutreProjet()
/* À partir d'un aggrégat des critère de requêtes d'ontologies, spécifiques à NVJFL,
créé une URL multi-critère.
Celle-ci, dans ce cas précis, n'est que la concaténation, par des virgules,
des couples <ressource - valeur recherchée>.
L'URL est appelée et la valeur correspondante, dans $criteres_requete, remplacée.
 
Note: dans le cadre du tryptique index/expand/combine pour lequel cette fonction existe,
la valeur est référencée par une élément d'une ou plusieurs lignes de $resultat correspondantes.
Celle(s)-ci sera[ont] donc changée(s) dans la foulée. */
public function NvjflOntologieExpand(&$criteres_requete) {
// équivalent spécifique de ajouterHrefAutreProjet()
$valeurs_requises = implode(',', array_keys($criteres_requete));
$url = Config::get('url_service_base').'nvjfl/ontologies/'.$valeurs_requises;
$val = $this->consulterHref($url);
// modifie par conséquent $resultats[X]['_result_ontologies' . RES_VAL_SEP . 'nvjfl']
// dont la référence pointe toujours sur $v
foreach($val as $k => $v) $criteres_requete[$k] = $val->$k;
}
 
/* Fonction finale du tryptique: réordonne les valeurs obtenues auprès du web-service
NVJFL en adéquation avec les champs attendus en sortie. Pour ce faire, $champs_infos
est nécessaire. D'autre part, l'index spécifique '_result_ontologies' . RES_VAL_SEP . 'nvjfl'
est supprimé après avoir été correctement copié. */
static function NvjflOntologieCombine(&$resultats, $champs_infos) {
extract($champs_infos);
foreach($resultats as &$resultat) {
if(!isset($resultat['_result_ontologies' . RES_VAL_SEP . 'nvjfl'])) continue;
// equivalent de chercher signification
$resultat[$intitule] = $resultat['_result_ontologies' . RES_VAL_SEP . 'nvjfl']->$nom;
unset($resultat['_result_ontologies' . RES_VAL_SEP . 'nvjfl']);
}
}
 
/**
* Ajoute les champs d'ontologie supplémentaires si necéssaire
* en faisant appels aux web services associés