39,6 → 39,10 |
|
$this->completerParametresUtilisateur(); |
$this->gererPropositionInitiale(); |
// Dernière chance de rattachement au référentiel d'un nom |
// sans nn (cas du copier-coller ou bien de l'appli tierce |
// qui envoie des infos incomplètes) |
$this->tenterEnrichissementTaxonomique(); |
$idCommentaireAjoute = $this->insererCommentaire(); |
|
// Mettre en forme le résultat et l'envoyer pour affichage |
204,4 → 208,33 |
} |
return implode(', ', $suite); |
} |
|
private function tenterEnrichissementTaxonomique() { |
if($this->commentaireEstPropositionSansNn()) { |
$referentiel = $this->parametres['nom_referentiel']; |
$requete = urlencode($this->parametres['nom_sel']); |
|
$url = sprintf($this->conteneur->getParametre('nomstaxons.url_autocompletion_tpl'), $referentiel, $requete); |
$restClient = $this->conteneur->getRestClient(); |
// Un retour vide est possible (un cas normal où il n'y a pas de résultat) |
// mais il fait planter le retour du service si on active l'affichage des erreurs |
// donc on passe sciemment les erreurs sous silence (car cette erreur n'en est pas une) |
$resultatJson = @$restClient->consulter($url); |
$resultats = json_decode($resultatJson, true); |
|
// On ne fait l'affectation que si l'on est sur (donc si un seul résultat) |
if (isset($resultats['resultat']) && count($resultats['resultat']) == 1) { |
$info = array_pop($resultats['resultat']); |
$this->parametres['nom_sel_nn'] = $info['num_nom']; |
} |
} |
} |
|
private function commentaireEstPropositionSansNn() { |
// Pas besoin de tester si c'est vide, normalement verifierParametres |
// l'a déjà fait au-dessus |
return isset($this->parametres['nom_sel']) |
&& isset($this->parametres['nom_referentiel']) |
&& !isset($this->parametres['nom_sel_nn']); |
} |
} |