375,24 → 375,34 |
$table_retour_json['entete']['href.suivant'] = $url['suivant']; |
} |
foreach ($resultat as &$tab) { |
$resultat_json[$tab['num_nom_vernaculaire']]['id'] = $tab['id']; |
$resultat_json[$tab['num_nom_vernaculaire']]['nom_vernaculaire'] = $tab['nom_vernaculaire']; |
$resultat_json[$tab['num_nom_vernaculaire']]['code_langue'] = $tab['code_langue']; |
$resultat_json[$tab['num_nom_vernaculaire']]['taxon.code'] = 'bdtfx.nt:'.$tab['num_taxon']; |
$nnv = $tab['num_nom_vernaculaire']; |
$resultat_json[$nnv]['id'] = $tab['id']; |
$resultat_json[$nnv]['nom_vernaculaire'] = $tab['nom_vernaculaire']; |
$resultat_json[$nnv]['code_langue'] = $tab['code_langue']; |
$resultat_json[$nnv]['taxon.code'] = 'bdtfx.nt:'.$tab['num_taxon']; |
if ($this->retour_format == 'max') { |
$this->taxons[] = $tab['num_taxon']; // utilisé pour chercher les noms latins plus bas |
if($this->champs_supp) { |
$resultat_json[$tab['num_nom_vernaculaire']] = $this->ajouterChampsOntologieLigneResultat($tab); |
//$resultat_json[$nnv] = $this->ajouterChampsOntologieLigneResultat($tab); |
// simple initialisation par copie de la référence de l'original |
$resultat_json[$nnv] = &$tab; |
} |
else { |
$resultat_json[$tab['num_nom_vernaculaire']]['num_taxon'] = $tab['num_taxon']; |
$resultat_json[$tab['num_nom_vernaculaire']]['nom_retenu.code'] = $tab['num_taxon']; |
$resultat_json[$tab['num_nom_vernaculaire']]['taxon'] = $tab['num_taxon']; |
$resultat_json[$tab['num_nom_vernaculaire']]['href'] = $this->ajouterHref('noms-vernaculaires', $tab['id']); |
$resultat_json[$nnv]['num_taxon'] = $tab['num_taxon']; |
$resultat_json[$nnv]['nom_retenu.code'] = $tab['num_taxon']; |
$resultat_json[$nnv]['taxon'] = $tab['num_taxon']; |
$resultat_json[$nnv]['href'] = $this->ajouterHref('noms-vernaculaires', $tab['id']); |
} |
} |
} |
|
|
// dans ce cas (particulier?) nous n'avons pour l'heure initialisé qu'une référence |
// vers le tableau de valeurs original |
if ($this->retour_format == 'max' && $this->champs_supp) { |
// récupérons désormais les ontologies |
$this->ajouterChampsOntologieLigneTousResultats($resultat_json); |
} |
|
if ($this->retour_format == 'max') { |
// On est obligé de faire un deuxième boucle pour demander tous les taxons présents en une |
// fois et les attribuer aux noms car c'est beaucoup plus rapide |
412,6 → 422,38 |
/** |
* Ajoute les champs d'ontologie supplémentaires si necéssaire |
* en faisant appels aux web services associés |
* @param array in/out $resultats: tous les résultats |
*/ |
public function ajouterChampsOntologieLigneTousResultats(&$resultats) { |
foreach($this->champ_infos as $cle => $champs_supplementaires) { |
if(!in_array($cle, $this->champs_supp)) continue; |
|
// TODO: |
if($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; |
|
} |
|
// extrait, depuis un élément de $champ_infos: |
// $service, $ressource, $projet, $nom, $intitule, $bdd_champ |
extract($champs_supplementaires); |
|
foreach ($resultats as &$tab) { |
$valeur_recherche = $tab[$bdd_champ]; |
if(!trim($valeur_recherche)) continue; |
|
$url = $this->ajouterHrefAutreProjet($service, $ressource, $valeur_recherche, $projet); |
$tab[$intitule] = $this->chercherSignificationCode($url, $nom); |
} |
} |
} |
|
/** |
* Ajoute les champs d'ontologie supplémentaires si necéssaire |
* en faisant appels aux web services associés |
* @param array $ligne_resultat |
* |
* @return array la ligne modifiée |