| 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
|