Subversion Repositories eFlore/Projets.eflore-projets

Compare Revisions

Ignore whitespace Rev 188 → Rev 189

/trunk/services/modules/0.2/bdtfx/TaxonsListe.php
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');