15,7 → 15,6 |
private $noms = array(); |
private $infosPourTpl = array(); |
|
|
public function __construct(ParametresResultats $parametres, Array $resultats, |
Surligneur $surligneur = null, Trieur $trieur = null, AppUrls $urls = null, |
ChaineManipulateur $manipulateurDeChaine = null, Images $imagesService = null) { |
95,6 → 94,22 |
} |
return $ids; |
} |
|
private function extraireNumerosNomSynonymes() { |
$numNomsASynonyme = array(); |
foreach ($this->noms as $id => $nom) { |
$num_nom_retenu = $nom['nom_retenu.id']; |
if(!isset($numNomsASynonyme[$num_nom_retenu])) { |
$numNomsASynonyme[$num_nom_retenu] = array(); |
} |
$numNomsASynonyme[$num_nom_retenu][] = $id; |
if($num_nom_retenu != $id) { |
$numNomsASynonyme[$id] = $numNomsASynonyme[$num_nom_retenu]; |
} |
} |
return $numNomsASynonyme; |
} |
|
private function supprimerCodeReferentielDesIds($urls) { |
$urlsNettoyees = array(); |
foreach ($urls as $id => $url) { |
103,6 → 118,7 |
} |
return $urlsNettoyees; |
} |
|
private function supprimerCodeReferentiel($chaine) { |
$codeReferentiel = Registre::get('parametres.referentiel').'.'; |
$chaine = str_replace($codeReferentiel, '', $chaine); |
117,10 → 133,12 |
$cartesWs->setProjet(Config::get(Registre::get('parametres.referentiel').'.baseRepartition')); |
$cartesWs->setLargeur('108x101'); |
$urls = array(); |
$numsNomsASynonymes = $this->extraireNumerosNomSynonymes(); |
foreach ($this->noms as $id => $nom) { |
if (array_key_exists('nom_retenu.id', $nom)) { |
$id = $nom['nom_retenu.id']; |
$cartesWs->setId("nn:$id"); |
$idsNoms = $numsNomsASynonymes[$id]; |
$cartesWs->setId("nn:".implode(',',$idsNoms).""); |
if (array_key_exists($id, $urls) == false) { |
$urls[$id] = $cartesWs->getUrlPng(); |
} |
136,6 → 154,7 |
$this->infosPourTpl['noms'] = isset($tri['retenus']) ? $tri['retenus'] : false; |
$this->infosPourTpl['synonymes'] = isset($tri['synonymes'] ) ? $tri['synonymes'] : false; |
} |
|
/** |
* division ordonnée par |
* 1 - noms retenus qui commencent par la requete |
180,6 → 199,7 |
$tri['sansCorres'] = $sansCorres; |
return $tri; |
} |
|
private function retournerInfosNomRetenu($cle, $nom_sci, $rang) { |
$infos = array(); |
$infos['nomSciRetenu'] = $nom_sci; |
187,6 → 207,7 |
$infos['rang'] = $rang; |
return $infos; |
} |
|
private function retournerInfosSynonyme($cle, $valeurs) { |
$infos = array(); |
$infos['nn'] = $cle; |
194,28 → 215,15 |
$infos['urlFiche'] = $this->urls->obtenirUrlFiche($cle, $this->parametres->typeNom, $this->parametres->masqueRecherche, $valeurs['nom_retenu.libelle']); |
return $infos; |
} |
|
public function trier() { |
/*if (count($this->infosPourTpl['noms']) <= 1) { // classement par score |
$nomsRetenus = array(); |
foreach ($this->infosPourTpl['noms'] as $categorie) { //ote la division des retenus |
$nomsRetenus += $categorie; |
} |
$this->ajouterAuxNomsScoreSimilariteAvec($this->parametres->masqueRecherche); |
$this->trieur->setTableau($nomsRetenus); |
$this->trieur->setChampsEtOrdres(array('score' => SORT_DESC)); |
$this->infosPourTpl['noms'] = $this->trieur->trier(); |
$this->infosPourTpl['nomsSansCorrespondance'] = |
$this->classerAlphabetiquement('nomSciRetenu', $this->infosPourTpl['nomsSansCorrespondance'] ); |
} else { // classement alphabétique |
*/ |
$nomsRetenus = array(); |
foreach ($this->infosPourTpl['noms'] as $categorie => $valeurs ) { //classement alpha par groupes |
$nomsRetenus += $this->classerAlphabetiquement('nomSciRetenu', $valeurs); |
} |
$this->infosPourTpl['noms'] = $nomsRetenus; |
$this->infosPourTpl['nomsSansCorrespondance'] = |
$this->classerAlphabetiquement('nomSciRetenu', $this->infosPourTpl['nomsSansCorrespondance'] ); |
//} |
$nomsRetenus = array(); |
foreach ($this->infosPourTpl['noms'] as $categorie => $valeurs ) { //classement alpha par groupes |
$nomsRetenus += $this->classerAlphabetiquement('nomSciRetenu', $valeurs); |
} |
$this->infosPourTpl['noms'] = $nomsRetenus; |
$this->infosPourTpl['nomsSansCorrespondance'] = |
$this->classerAlphabetiquement('nomSciRetenu', $this->infosPourTpl['nomsSansCorrespondance'] ); |
} |
|
private function ajouterAuxNomsScoreSimilariteAvec($masque) { |
231,6 → 239,7 |
$this->infosPourTpl['noms'][$id] = $nom; |
} |
} |
|
private function classerAlphabetiquement($champs, $valeurs) { |
$this->trieur->setTableau($valeurs); |
$this->trieur->setChampsEtOrdres(array($champs => 'nat')); |
237,8 → 246,6 |
return $this->trieur->trier(); |
} |
|
|
|
public function surligner() { |
$this->definirMotsASurligner(); |
foreach ($this->infosPourTpl['noms'] as $idNom => $nom) { |
250,6 → 257,7 |
} |
} |
} |
|
private function definirMotsASurligner() { |
$this->motsASurligner = explode(' ', $this->parametres->masqueRecherche); |
} |