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
|