Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 1870 → Rev 1871

/trunk/services/bibliotheque/ParametresFiltrage.php
19,6 → 19,9
*/
class ParametresFiltrage {
 
const APPLI_IMG = 'IMG';
const APPLI_OBS = 'OBS';
 
const LISTE_OBS_MAX_RESULT_LIMIT = 1000;
const LISTE_OBS_MAX_ID_OBS = 10e7;
const LISTE_OBS_MAX_BDTFX_NT = 1000000; // SELECT MAX(num_taxonomique) FROM bdtfx_v2_00; // 44378 + 1000
28,6 → 31,7
private $contexte;
private $parametres = array();
private $parametresFiltres = array();
private $appli;
 
public function __construct($conteneur) {
$this->conteneur = $conteneur;
35,7 → 39,16
$this->parametres = $this->contexte->getQS();
}
 
private function etreAppliImg() {
return $this->appli === 'IMG' ? true : false;
}
 
private function etreAppliObs() {
return $this->appli === 'OBS' ? true : false;
}
 
public function filtrerUrlParamsAppliImg() {
$this->appli = self::APPLI_IMG;
$this->maintenirCompatibilitesParametres();
 
$parametresAutorises = $this->conteneur->getParametreTableau('images.masques_possibles');
59,6 → 72,7
}
 
public function filtrerUrlParamsAppliObs() {
$this->appli = self::APPLI_OBS;
$this->maintenirCompatibilitesParametres();
 
$parametresAutorises = $this->conteneur->getParametreTableau(('observations.masques_possibles'));
81,9 → 95,14
private function maintenirCompatibilitesParametres() {
$this->renommerParametres();
 
if (!isset($this->parametres['masque.tag_del']) && isset($this->parametres['masque.tag'])) {
if ($this->etreAppliImg() && !isset($this->parametres['masque.tag_del']) && isset($this->parametres['masque.tag'])) {
$this->parametres['masque.tag_del'] = $this->parametres['masque.tag'];
unset($this->parametres['masque.tag']);
}
if ($this->etreAppliobs() && !isset($this->parametres['masque.tag_cel']) && isset($this->parametres['masque.tag'])) {
$this->parametres['masque.tag_cel'] = $this->parametres['masque.tag'];
unset($this->parametres['masque.tag']);
}
}
 
private function renommerParametres() {
174,7 → 193,6
$this->filtrerCommune();
$this->filtrerType();
 
$this->filtrerTag();
$this->filtrerTagCel();
$this->filtrerTagDel();
}
247,14 → 265,15
private function filtrerDate() {
if (isset($this->parametres['masque.date'])) {
$date = $this->parametres['masque.date'];
// une année, TODO: masque.annee
$paramFiltre = null;
if (is_numeric($date)) {
if (preg_match('/^\d{4}$/', $date)) {
$paramFiltre = $date;
} elseif(strpos($date, '/' !== false) && ($x = strtotime(str_replace('/', '-', $date)))) {
$paramFiltre = $x;
} elseif(strpos($date, '-' !== false) && ($x = strtotime($date)) ) {
$paramFiltre = $x;
} else if (strpos($date, '/') !== false) {
// Format d'entrée DEL : jj/mm/yyyy
list($jour, $mois, $annee) = explode('/', $date);
$paramFiltre = "$annee-$mois-$jour";
} else if (preg_match('/^\d{4}-\d{2}-\d{2}$/', $date)) {
$paramFiltre = $date;
}
$this->parametresFiltres['masque.date'] = $paramFiltre;
}
322,17 → 341,6
}
}
 
// masque.tag, idem que pour masque.genre et masque.commune
private function filtrerTag() {
if (isset($this->parametres['masque.tag'])) {
$tagsArray = explode(',', $this->parametres['masque.tag']);
$tagsTrimes = array_map('trim', $tagsArray);
$tagsFiltres = array_filter($tagsTrimes);
$paramFiltre = implode('|', $tagsFiltres);
$this->parametresFiltres['masque.tag'] = $paramFiltre;
}
}
 
private function filtrerTagCel() {
if (isset($this->parametres['masque.tag_cel'])) {
$this->parametresFiltres['masque.tag_cel'] = $this->construireTableauTags($this->parametres['masque.tag_cel'], 'OR', ',');