23,14 → 23,12 |
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_mapping_votes.ini'); |
$this->conteneur->chargerConfiguration('config_votes.ini'); |
$this->navigation = $conteneur->getNavigation(); |
$this->masque = $conteneur->getMasque(); |
$this->gestionBdd = $conteneur->getGestionBdd(); |
45,7 → 43,6 |
* @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(); |
65,10 → 62,6 |
return $resultat; |
} |
|
private function initialiserRessourcesEtParametres($ressources, $parametres) { |
$this->ressources = $ressources; |
$this->parametres = $parametres; |
} |
/*------------------------------------------------------------------------------- |
CONFIGURATION DU SERVICE |
--------------------------------------------------------------------------------*/ |
159,38 → 152,34 |
switch ($idMasque) { |
// nom du masque => nom BDD |
case 'auteur' : |
$whereAuteur = ' '.$this->creerFiltreAuteur($this->masque->getMasque('auteur')); |
if($whereAuteur != '') { |
$where[] = $whereAuteur; |
} |
$where[] = $this->creerFiltreAuteur($this->masque->getMasque('auteur')); |
break; |
case 'date' : |
$whereDate = ' '.$this->creerFiltreDate($valeurMasque); |
if($whereDate != '') { |
$where[] = $whereDate; |
} |
$where[] = $this->creerFiltreDate($valeurMasque); |
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(str_replace(array('-',' '), '_', $valeurMasque).'%'); |
$where[] = ' '.$this->mappingFiltre[$idMasque].' LIKE '.$this->proteger($this->remplacerParJokerCaractere($valeurMasque).'%'); |
break; |
case 'masque' : |
$where[] = ' '.$this->creerFiltreMasqueGeneral($valeurMasque); |
$where[] = $this->creerFiltreMasqueGeneral($valeurMasque); |
break; |
default: |
$where[] = ' '.$this->mappingFiltre[$idMasque].' = '.$this->proteger($valeurMasque); |
break; |
$where[] = ' '.$this->mappingFiltre[$idMasque].' LIKE '.$this->proteger('%'.$valeurMasque.'%'); |
} |
} |
} |
203,8 → 192,8 |
} |
|
private function creerFiltreMasqueGeneral($valeurMasque) { |
//TODO: affecter d'aborder les variables, puis les tester pour les |
// ajouter à la chaine |
|
// créer filtre auteur et idzone géo peuvent renvoyer des valeurs vides |
$whereAuteur = $this->creerFiltreAuteur($valeurMasque); |
$whereIdZoneGeo = $this->creerFiltreIdZoneGeo($valeurMasque); |
|
322,13 → 311,16 |
* Chargement depuis la bdd de toutes les liaisons entre images et observations |
* */ |
private function chargerLiaisons() { |
|
$requeteLiaisons = 'SELECT SQL_CALC_FOUND_ROWS * '. |
// 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 '. |
'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 '; |
'ON du.id_utilisateur = doi.id_utilisateur '. |
'INNER JOIN '.$this->gestionBdd->formaterTable('del_image', 'di'). |
'ON di.id_image = doi.id_image '; |
$requeteLiaisons .= $this->chargerClauseWhere(); |
$requeteLiaisons .= ' GROUP BY doi.id_observation'; |
$requeteLiaisons .= ' ORDER BY date_transmission DESC '; |
411,7 → 403,7 |
} |
/** |
* Charger les votes sur les déterminations |
* @param Array $observations le tableau des observations à mettre à jour |
* @param Array $observations le tableau des observatins à mettre à jour |
* */ |
private function chargerVotes($ids_proposition, $propositions) { |
$requeteVotes = 'SELECT * FROM '. |