1,19 → 1,19 |
<?php |
<?php |
class TaxonsListe { |
|
private $parametres = null; |
private $ressources = null; |
private $bdd = null; |
|
|
private $nbreTotalNoms = 0; |
private $noms = array(); |
|
|
public function __construct(Ressources $ressources, Parametres $parametres, Bdd $bdd) { |
$this->ressources = $ressources; |
$this->parametres = $parametres; |
$this->bdd = $bdd; |
} |
|
|
public function consulter() { |
$this->noms = $this->rechercher(); |
$this->nbreNomsTotal = $this->recupererNombreNomsTotal(); |
21,11 → 21,11 |
$retour = $this->construireTableauRetour(); |
return $retour; |
} |
|
|
private function rechercher() { |
$resultats = array(); |
$recherche = $this->parametres->get('recherche'); |
|
|
if ($recherche == 'stricte') { |
$resultats = $this->rechercherStricte(); |
} else if ($recherche == 'etendue') { |
33,11 → 33,11 |
} else if ($recherche == 'floue') { |
$resultats = $this->rechercherFloue(); |
} |
|
return $resultats; |
|
return $resultats; |
} |
|
private function rechercherStricte() { |
|
private function rechercherStricte() { |
$conditions = array(); |
if ($masque = $this->parametres->getMasquePourBdd()) { |
$conditions[] = "nom_sci = $masque"; |
53,13 → 53,13 |
} |
$requete = 'SELECT SQL_CALC_FOUND_ROWS '. |
' num_nom, nom_sci '. |
'FROM fournier_v1_00 '. |
'FROM bdtfx_v1_01 '. |
'WHERE num_nom = num_nom_retenu '. |
implode(' AND ', $conditions). |
'ORDER BY nom_sci ASC '. |
'LIMIT 0,100'; |
$resultats = $this->bdd->recupererTous($requete); |
|
|
return $resultats; |
} |
|
79,21 → 79,21 |
} |
$requete = 'SELECT SQL_CALC_FOUND_ROWS '. |
' num_nom, nom_sci, num_nom_retenu '. |
'FROM fournier_v1_00 '. |
'FROM bdtfx_v1_01 '. |
'WHERE num_nom = num_nom_retenu '. |
implode(' AND ', $conditions). |
'ORDER BY nom_sci ASC '. |
'LIMIT 0,100'; |
|
|
$resultats = $this->bdd->recupererTous($requete); |
return $resultats; |
} |
|
|
private function rechercherFloue() { |
$masque = $this->parametres->getMasquePourBdd(); |
$requete = 'SELECT SQL_CALC_FOUND_ROWS '. |
' num_nom, nom_sci, num_nom_retenu '. |
'FROM fournier_v1_00 '. |
'FROM bdtfx_v1_01 '. |
'WHERE num_nom = num_nom_retenu '. |
($masque ? 'AND '. |
" (SOUNDEX(nom_sci) = SOUNDEX($masque)) ". |
103,13 → 103,13 |
$resultats = $this->bdd->recupererTous($requete); |
return $resultats; |
} |
|
|
private function recupererNombreNomsTotal() { |
$requete = 'SELECT FOUND_ROWS() AS nbre'; |
$nombre = $this->bdd->recuperer($requete); |
return (int) $nombre['nbre']; |
} |
|
|
private function trierNoms() { |
$recherche = $this->parametres->get('recherche'); |
if ($recherche == 'floue') { |
116,7 → 116,7 |
$this->trierRechercheFloue(); |
} |
} |
|
|
public function trierRechercheFloue() { |
$nomDemande = $this->parametres->get('masque'); |
$nomDemandeSimple = strtolower(Chaine::supprimerAccents($nomDemande)); |
133,14 → 133,14 |
$this->noms = Tableau::trierMD($noms, array('score' => false)); |
//print_r($this->noms); |
} |
|
|
private function construireTableauRetour() { |
$retour = array('entete' => array(), 'resultats' => array()); |
$retour['resultats'] = $this->construireResultats(); |
$retour['entete'] = $this->construireEntete(); |
return $retour; |
} |
|
} |
|
private function construireResultats() { |
$nomsFormates = array(); |
foreach ($this->noms as $nom) { |
149,7 → 149,7 |
} |
return $nomsFormates; |
} |
|
|
private function formaterNom($nom) { |
$nomFormate = array(); |
$nomformate['nom_sci'] = $nom['nom_sci']; |
157,13 → 157,13 |
$nomformate['href'] = $this->formaterHref($nom); |
return $nomformate; |
} |
|
|
private function formaterHref($nom) { |
$squelette = 'http://localhost/service:nel:0.1/fournier/taxons/%s'; |
$href = sprintf($squelette, $nom['num_nom_retenu']); |
return $href; |
} |
|
|
private function construireEntete() { |
$entete = array('masque' => '', 'depart' => 0, 'limite' => 100, 'total' => 0); |
$entete['masque'] = $this->formaterEnteteMasque(); |
178,7 → 178,7 |
} |
return $entete; |
} |
|
|
private function formaterEnteteMasque() { |
$masqueComplet = array(); |
if ($this->parametres->exister('masque')) { |
215,7 → 215,7 |
} |
return implode('&', $masqueComplet); |
} |
|
|
private function formaterEnteteHrefPrecedent() { |
$limite = $this->parametres->get('navigation.limite'); |
$departActuel = $this->parametres->get('navigation.depart'); |
227,7 → 227,7 |
} |
return $href; |
} |
|
|
private function formaterEnteteHrefSuivant() { |
$limite = $this->parametres->get('navigation.limite'); |
$departActuel = $this->parametres->get('navigation.depart'); |