Subversion Repositories eFlore/Applications.cel

Rev

Rev 2060 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2060 Rev 2143
Line 41... Line 41...
41
		}
41
		}
Line 42... Line 42...
42
 
42
 
43
		$requete_selection_id .= ' AND ce_utilisateur = '.Cel::db()->proteger($id_utilisateur).
43
		$requete_selection_id .= ' AND ce_utilisateur = '.Cel::db()->proteger($id_utilisateur).
Line 44... Line 44...
44
			' ORDER BY id_observation';
44
			' ORDER BY id_observation';
Line 45... Line 45...
45
 
45
 
46
		$resultat_ids = Cel::db()->executerRequete($requete_selection_id);
46
		$resultat_ids = Cel::db()->requeter($requete_selection_id);
47
 
47
 
48
		$ids = array();
48
		$ids = array();
Line 66... Line 66...
66
 
66
 
67
		$tri = (isset($criteres['tri']) && in_array($criteres['tri'], self::$tris_possibles)) ? $criteres['tri'] : 'ordre';
67
		$tri = (isset($criteres['tri']) && in_array($criteres['tri'], self::$tris_possibles)) ? $criteres['tri'] : 'ordre';
68
		unset($criteres['tri']);
68
		unset($criteres['tri']);
69
		$tri_dir = (isset($criteres['tri_dir']) && in_array($criteres['tri_dir'], array('ASC', 'DESC'))) ? $criteres['tri_dir'] : 'ASC';
69
		$tri_dir = (isset($criteres['tri_dir']) && in_array($criteres['tri_dir'], array('ASC', 'DESC'))) ? $criteres['tri_dir'] : 'ASC';
70
		unset($criteres['tri_dir']);
70
		unset($criteres['tri_dir']);
71
		
71
 
72
		// très mauvaise solution, mais qui permet au moins d'effectuer des requêtes complexes, sans modifier l'API
72
		// très mauvaise solution, mais qui permet au moins d'effectuer des requêtes complexes, sans modifier l'API
73
		// et sans pour autant introduire de problème de sécurité majeur dans toutes les fonctions appelantes qui
73
		// et sans pour autant introduire de problème de sécurité majeur dans toutes les fonctions appelantes qui
74
		// effectue $criteres = $_GET sans nettoyage préalable.
74
		// effectue $criteres = $_GET sans nettoyage préalable.
75
		if(isset($criteres['sql_brut']) && !$autoriser_sql_brut) unset($criteres['sql_brut']);
75
		if(isset($criteres['sql_brut']) && !$autoriser_sql_brut) unset($criteres['sql_brut']);
76
		$sous_requete_recherche = $this->fabriquerSousRequeteRecherche($id_utilisateur, $criteres);
76
		$sous_requete_recherche = $this->fabriquerSousRequeteRecherche($id_utilisateur, $criteres);
77
		
77
 
78
		$requete_selection_observations .= $sous_requete_recherche;
78
		$requete_selection_observations .= $sous_requete_recherche;
79
		$requete_selection_observations = rtrim($requete_selection_observations, 'AND ');
79
		$requete_selection_observations = rtrim($requete_selection_observations, 'AND ');
80
		$requete_selection_observations .= $id_utilisateur == null ? ' ORDER BY id_observation, ordre ' : ' ORDER BY '.$tri.' '.$tri_dir;
80
		$requete_selection_observations .= $id_utilisateur == null ? ' ORDER BY id_observation, ordre ' : ' ORDER BY '.$tri.' '.$tri_dir;
Line 84... Line 84...
84
		return $this;
84
		return $this;
85
	}
85
	}
Line 86... Line 86...
86
 
86
 
87
	public function get() {
87
	public function get() {
88
		if(!$this->requete_selection_observations) return FALSE;
88
		if(!$this->requete_selection_observations) return FALSE;
89
		return Cel::db()->executerRequete($this->requete_selection_observations);
89
		return Cel::db()->requeter($this->requete_selection_observations);
Line 90... Line 90...
90
	}
90
	}
91
 
91
 
Line 102... Line 102...
102
 
102
 
103
		$requete_selection_observations .= $sous_requete_recherche;
103
		$requete_selection_observations .= $sous_requete_recherche;
Line 104... Line 104...
104
		$requete_selection_observations = rtrim($requete_selection_observations, 'AND ');
104
		$requete_selection_observations = rtrim($requete_selection_observations, 'AND ');
105
 
105
 
Line 106... Line 106...
106
		$nb_obs = '0';
106
		$nb_obs = '0';
107
		$resultat_requete_nombre_observations = Cel::db()->executerRequete($requete_selection_observations);
107
		$resultat_requete_nombre_observations = Cel::db()->requeter($requete_selection_observations);
108
 
108
 
Line 148... Line 148...
148
 
148
 
149
	public function obtenirCourrielUtilisateurPourIdObs($id_obs) {
149
	public function obtenirCourrielUtilisateurPourIdObs($id_obs) {
150
		$id_obs = Cel::db()->proteger($id_obs);
150
		$id_obs = Cel::db()->proteger($id_obs);
Line 151... Line 151...
151
		$requete = "SELECT courriel_utilisateur FROM cel_obs WHERE id_observation = $id_obs";
151
		$requete = "SELECT courriel_utilisateur FROM cel_obs WHERE id_observation = $id_obs";
Line 152... Line 152...
152
 
152
 
153
		$utilisateur_courriel = Cel::db()->executerRequete($requete . ' -- ' . __FILE__ . ':' . __LINE__);
153
		$utilisateur_courriel = Cel::db()->requeter($requete . ' -- ' . __FILE__ . ':' . __LINE__);
154
 
154
 
155
		$retour = false;
155
		$retour = false;
Line 161... Line 161...
161
 
161
 
162
	private function getIdsMotsClesObservation($id_observation) {
162
	private function getIdsMotsClesObservation($id_observation) {
163
		$requete_selection_mots_cles = 'SELECT DISTINCT id_mot_cle '.
163
		$requete_selection_mots_cles = 'SELECT DISTINCT id_mot_cle '.
164
			'FROM cel_mots_cles_obs_liaison '.
164
			'FROM cel_mots_cles_obs_liaison '.
165
			"WHERE id_element_lie = $id_observation ";
165
			"WHERE id_element_lie = $id_observation ";
166
		return Cel::db()->executerRequete($requete_selection_mots_cles);
166
		return Cel::db()->requeter($requete_selection_mots_cles);
Line 167... Line 167...
167
	}
167
	}
168
 
168
 
169
	// TODO: fonction temporaire
169
	// TODO: fonction temporaire