Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 1948 → Rev 1949

/trunk/services/modules/0.1/commentaires/AjouterCommentaire.php
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']);
}
}