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 |