23,12 → 23,14 |
private $masque; |
private $gestionBdd; |
private $bdd; |
private $parametres = array(); |
private $ressources = array(); |
|
public function __construct(Conteneur $conteneur = null) { |
$this->conteneur = $conteneur == null ? new Conteneur() : $conteneur; |
$this->conteneur->chargerConfiguration('config_departements_bruts.ini'); |
$this->conteneur->chargerConfiguration('config_observations.ini'); |
$this->conteneur->chargerConfiguration('config_votes.ini'); |
$this->conteneur->chargerConfiguration('config_mapping_votes.ini'); |
$this->navigation = $conteneur->getNavigation(); |
$this->masque = $conteneur->getMasque(); |
$this->gestionBdd = $conteneur->getGestionBdd(); |
43,6 → 45,7 |
* @param array $parametres les paramètres situés après le ? dans l'url |
* */ |
public function consulter($ressources, $parametres) { |
$this->initialiserRessourcesEtParametres($ressources, $parametres); |
|
// Gestion des configuration du script |
$this->configurer(); |
62,6 → 65,10 |
return $resultat; |
} |
|
private function initialiserRessourcesEtParametres($ressources, $parametres) { |
$this->ressources = $ressources; |
$this->parametres = $parametres; |
} |
/*------------------------------------------------------------------------------- |
CONFIGURATION DU SERVICE |
--------------------------------------------------------------------------------*/ |
152,34 → 159,38 |
switch ($idMasque) { |
// nom du masque => nom BDD |
case 'auteur' : |
$where[] = $this->creerFiltreAuteur($this->masque->getMasque('auteur')); |
$whereAuteur = ' '.$this->creerFiltreAuteur($this->masque->getMasque('auteur')); |
if($whereAuteur != '') { |
$where[] = $whereAuteur; |
} |
break; |
case 'date' : |
$where[] = $this->creerFiltreDate($valeurMasque); |
$whereDate = ' '.$this->creerFiltreDate($valeurMasque); |
if($whereDate != '') { |
$where[] = $whereDate; |
} |
break; |
case 'departement' : |
$where[] = $this->creerFiltreIdZoneGeo($valeurMasque); |
$where[] = ' '.$this->creerFiltreIdZoneGeo($valeurMasque); |
break; |
case 'genre' : |
$where[] = ' '.$this->mappingFiltre['ns'].' LIKE '.$this->proteger('%'.$valeurMasque.'% %'); |
break; |
case 'tag' : |
$where[] = $this->creerFiltreMotsCles($valeurMasque); |
$where[] = ' '.$this->creerFiltreMotsCles($valeurMasque); |
break; |
case 'nn' : |
$where[] = ' '.$this->mappingFiltre['nn'].' = '.$this->proteger($valeurMasque); |
break; |
case 'ns' : |
$where[] = " nom_sel LIKE ".$this->proteger($valeurMasque.'%'); |
$where[] = ' nom_sel LIKE '.$this->proteger($valeurMasque.'%'); |
break; |
case 'commune' : |
$where[] = ' '.$this->mappingFiltre[$idMasque].' LIKE '.$this->proteger($this->remplacerParJokerCaractere($valeurMasque).'%'); |
$where[] = ' '.$this->mappingFiltre[$idMasque].' LIKE '.$this->proteger(str_replace(array('-',' '), '_', $valeurMasque).'%'); |
break; |
case 'masque' : |
$where[] = $this->creerFiltreMasqueGeneral($valeurMasque); |
$where[] = ' '.$this->creerFiltreMasqueGeneral($valeurMasque); |
break; |
default: |
$where[] = ' '.$this->mappingFiltre[$idMasque].' LIKE '.$this->proteger('%'.$valeurMasque.'%'); |
$where[] = ' '.$this->mappingFiltre[$idMasque].' = '.$this->proteger($valeurMasque); |
break; |
} |
} |
} |
192,8 → 203,8 |
} |
|
private function creerFiltreMasqueGeneral($valeurMasque) { |
|
// créer filtre auteur et idzone géo peuvent renvoyer des valeurs vides |
//TODO: affecter d'aborder les variables, puis les tester pour les |
// ajouter à la chaine |
$whereAuteur = $this->creerFiltreAuteur($valeurMasque); |
$whereIdZoneGeo = $this->creerFiltreIdZoneGeo($valeurMasque); |
|
311,16 → 322,13 |
* Chargement depuis la bdd de toutes les liaisons entre images et observations |
* */ |
private function chargerLiaisons() { |
// ajout seulement du champ mot clés de la table image liée, pour rechercher |
// sur les mots clés obs et images |
$requeteLiaisons = 'SELECT SQL_CALC_FOUND_ROWS *, di.mots_cles_texte '. |
|
$requeteLiaisons = 'SELECT SQL_CALC_FOUND_ROWS * '. |
'FROM '.$this->gestionBdd->formaterTable('del_observation', 'dob'). |
'INNER JOIN '.$this->gestionBdd->formaterTable('del_obs_image', 'doi'). |
'ON doi.id_observation = dob.id_observation '. |
'INNER JOIN del_utilisateur du '. |
'ON du.id_utilisateur = doi.id_utilisateur '. |
'INNER JOIN '.$this->gestionBdd->formaterTable('del_image', 'di'). |
'ON di.id_image = doi.id_image '; |
'ON du.id_utilisateur = doi.id_utilisateur '; |
$requeteLiaisons .= $this->chargerClauseWhere(); |
$requeteLiaisons .= ' GROUP BY doi.id_observation'; |
$requeteLiaisons .= ' ORDER BY date_transmission DESC '; |
403,7 → 411,7 |
} |
/** |
* Charger les votes sur les déterminations |
* @param Array $observations le tableau des observatins à mettre à jour |
* @param Array $observations le tableau des observations à mettre à jour |
* */ |
private function chargerVotes($ids_proposition, $propositions) { |
$requeteVotes = 'SELECT * FROM '. |