Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 1353 Rev 1354
Line 40... Line 40...
40
	private $utilisateur_id = '';
40
	private $utilisateur_id = '';
Line 41... Line 41...
41
 
41
 
42
	public function lierMotCleObs($utilisateur_id, Array $mots_cles_ids, Array $ids) {
42
	public function lierMotCleObs($utilisateur_id, Array $mots_cles_ids, Array $ids) {
43
		$this->suffix = self::OBS_TABLE_SUFFIXE;
43
		$this->suffix = self::OBS_TABLE_SUFFIXE;
44
		$this->utilisateur_id = $utilisateur_id;
44
		$this->utilisateur_id = $utilisateur_id;
45
		return $this->lierMotCle($utilisateur_id, $mots_cles_ids, $id);
45
		return $this->lierMotCle($utilisateur_id, $mots_cles_ids, $ids);
Line 46... Line 46...
46
	}
46
	}
47
	
47
	
48
	public function lierMotCleImg($utilisateur_id, Array $mots_cles_ids, Array $ids) {
48
	public function lierMotCleImg($utilisateur_id, Array $mots_cles_ids, Array $ids) {
49
		$this->suffix = self::IMG_TABLE_SUFFIXE;
49
		$this->suffix = self::IMG_TABLE_SUFFIXE;
50
		$this->utilisateur_id = $utilisateur_id;
50
		$this->utilisateur_id = $utilisateur_id;
Line 51... Line 51...
51
		return $this->lierMotCle($utilisateur_id, $mots_cles_ids, $id);
51
		return $this->lierMotCle($utilisateur_id, $mots_cles_ids, $ids);
52
	}
52
	}
53
	
53
	
Line 92... Line 92...
92
			} else {
92
			} else {
93
				$e = "Erreur de mise à jour des mots clés d'une obs : $requete";
93
				$e = "Erreur de mise à jour des mots clés d'une obs : $requete";
94
				$this->logger('CEL_bugs', $e);
94
				$this->logger('CEL_bugs', $e);
95
				$this->messages[] = $e;
95
				$this->messages[] = $e;
96
			}
96
			}
97
 
-
 
98
		} else {
97
		} else {
99
			$this->messages[] = "Le tableau des ordres des obs ne contenait pas que des nombres entiers.";
98
			$this->messages[] = "Le tableau des ordres des obs ne contenait pas que des nombres entiers.";
100
		}
99
		}
101
		return $retour;
100
		return $retour;
102
	}
101
	}
Line 112... Line 111...
112
		return $ok;
111
		return $ok;
113
	}
112
	}
Line 114... Line 113...
114
 
113
 
115
	private function regenererIndexTexteMotCle($id) {
114
	private function regenererIndexTexteMotCle($id) {
116
		$ok = false;
-
 
117
		$mots_cles_ids = $this->obtenirIdsMotsClesConcatenes($id);
-
 
118
		if ($mots_cles_ids) {
115
		$ok = false;
119
			$mots_cles = $this->obtenirMotClesTexte($mots_cles_ids);
116
		$mots_cles = $this->obtenirMotsClesTexte($id);
120
			$mots_cles_concatenes = $this->concatenerMotsCles($mots_cles);
117
		$mots_cles_concatenes = $this->concatenerMotsCles($mots_cles);
121
			$ok = $this->mettreAJourMotsClesConcatenes($mots_cles_concatenes, $id);
-
 
122
		}
118
		$ok = $this->mettreAJourMotsClesConcatenes($mots_cles_concatenes, $id);
123
		return $ok;
119
		return $ok;
Line 124... Line -...
124
	}
-
 
125
 
-
 
126
	private function obtenirIdsMotsClesConcatenes($id) {
-
 
127
		$utilisateur_id = $this->proteger($this->utilisateur_id);
-
 
128
 
-
 
129
		$requete = 	'SELECT mots_cles '.
-
 
130
					'FROM cel_inventory '.
-
 
131
					"WHERE ordre = $ordre ".
-
 
132
					"	AND identifiant = $utilisateur_id ";
-
 
133
		$resultat = $this->recupererResultat($requete);
-
 
134
 
-
 
135
		$mots_cles_ids = false;
-
 
136
		if ($resultat) {
-
 
137
			$mots_cles_ids = $resultat['mots_cles'];
-
 
138
		}
-
 
139
		return $mots_cles_ids;
-
 
140
	}
120
	}
141
 
-
 
142
	private function obtenirMotClesTexte($mot_cle_ids) {
-
 
143
		$mot_cle_ids_in = $this->formaterIdsMotClePourClauseInSql($mot_cle_ids);
-
 
144
		$utilisateur_id = $this->proteger($this->utilisateur_id);
121
 
145
 
122
	private function obtenirMotsClesTexte($id_image_ou_obs) {
146
		$requete = 	'SELECT mot_cle '.
123
		$requete = 	'SELECT mot_cle '.
147
					'FROM cel_mots_cles_obs '.
124
					'FROM '.'cel_mots_cles'.$this->suffix.' '.
148
					"WHERE cmc_id_mot_cle_utilisateur IN ($mot_cle_ids_in) ".
125
					'WHERE id_mot_cle_'.(($this->suffix == self::OBS_TABLE_SUFFIXE) ? 'obs' : 'image').' IN '.
149
					"	AND id_utilisateur = $utilisateur_id ";
-
 
150
		$resultats = $this->recupererResultats($requete);
-
 
151
		$mots_cles = array();
126
						'('.
152
		if ($resultats) {
127
							'SELECT id_mot_cle_'.(($this->suffix == self::OBS_TABLE_SUFFIXE) ? 'obs' : 'image').' '.
153
			foreach ($resultats as $mot_cle) {
128
							'FROM cel'.$this->suffix.'_mots_cles '.
154
				$mots_cles[] = $mot_cle['mot_cle'];
129
							'WHERE '.(($this->suffix == self::OBS_TABLE_SUFFIXE) ? 'id_observation' : 'id_image').' = '.$this->proteger($id_image_ou_obs).
-
 
130
						')';
155
			}
131
 
156
		}
132
		$resultats = $this->requeter($requete);
Line 157... Line 133...
157
		return $mots_cles;
133
		return $resultats;
158
	}
134
	}
159
 
135
 
160
	private function formaterIdsMotClePourClauseInSql($mot_cle_ids) {
136
	private function formaterIdsMotClePourClauseInSql($mot_cle_ids) {
161
		$mot_cle_ids = $this->nettoyerMotsCles($mot_cle_ids);
137
		$mot_cle_ids = $this->nettoyerMotsCles($mot_cle_ids);
162
		$mot_cle_ids = str_replace(self::SEPARATEUR_MOT_CLE_ID_OBS, ',', $mot_cle_ids);
138
		$mot_cle_ids = str_replace(self::SEPARATEUR_MOT_CLE_ID_OBS, ',', $mot_cle_ids);
163
		$mot_cle_ids = trim($mot_cle_ids, ',');
139
		$mot_cle_ids = trim($mot_cle_ids, ',');
Line 164... Line -...
164
		$mot_cle_ids_proteges = implode(',', $this->protegerTableau(explode(',', $mot_cle_ids)));
-
 
165
		return $mot_cle_ids_proteges;
-
 
166
	}
-
 
167
 
-
 
168
	private function concatenerMotsClesIdsObs(Array $mots_cles_ids) {
-
 
169
		return $this->concatenerMotsClesIds($mots_cles_ids, self::SEPARATEUR_MOT_CLE_ID_OBS);
-
 
170
	}
-
 
171
 
-
 
172
	private function concatenerMotsClesIdsImg(Array $mots_cles_ids) {
-
 
173
		return $this->concatenerMotsClesIds($mots_cles_ids, self::SEPARATEUR_MOT_CLE_ID_IMG);
-
 
174
	}
-
 
175
 
-
 
176
	private function concatenerMotsClesIds(Array $mots_cles_ids, $separateur) {
-
 
177
		$mots_cles_ids_concatenes = '';
-
 
178
		if (count($mots_cles_ids) > 0) {
-
 
179
			foreach ($mots_cles_ids as $mot_cle_id) {
-
 
180
				$mots_cles_ids_concatenes .= $this->nettoyerMotsCles($mot_cle_id).$separateur;
-
 
181
			}
-
 
182
		}
140
		$mot_cle_ids_proteges = implode(',', $this->protegerTableau(explode(',', $mot_cle_ids)));
183
		return $mots_cles_ids_concatenes;
141
		return $mot_cle_ids_proteges;
184
	}
142
	}
185
 
143
 
186
	private function concatenerMotsCles(Array $mots_cles) {
144
	private function concatenerMotsCles(Array $mots_cles) {
187
		$mot_cles_concatenes = '';
145
		$mot_cles_concatenes = '';
188
		if (count($mots_cles) > 0) {
146
		if (count($mots_cles) > 0) {
189
			foreach ($mots_cles as $mot_cle) {
147
			foreach ($mots_cles as $mot_cle) {
190
				$mot_cles_concatenes .= $mot_cle.self::SEPARATEUR_MOT_CLE_TEXTE;
-
 
191
			}
148
				$mot_cles_concatenes .= $mot_cle['mot_cle'].self::SEPARATEUR_MOT_CLE_TEXTE;
192
		}
149
			}
Line 193... Line 150...
193
		$mot_cles_concatenes = rtrim($mot_cles_concatenes, self::SEPARATEUR_MOT_CLE_TEXTE);
150
		}
194
 
151
		$mot_cles_concatenes = rtrim($mot_cles_concatenes, self::SEPARATEUR_MOT_CLE_TEXTE);
195
		return $mot_cles_concatenes;
152
		return $mot_cles_concatenes;
Line 196... Line 153...
196
	}
153
	}
197
 
154
 
198
	private function mettreAJourMotsClesConcatenes($mots_cles, $ordre) {
-
 
199
		$mots_cles = $this->proteger($mots_cles);
155
	private function mettreAJourMotsClesConcatenes($mots_cles, $id) {
-
 
156
		$mots_cles = $this->proteger($mots_cles);
200
		$utilisateur_id = $this->proteger($this->utilisateur_id);
157
		$utilisateur_id = $this->proteger($this->utilisateur_id);
201
 
158
 
202
		$requete = 	'UPDATE cel_inventory '.
159
		$requete = 	'UPDATE cel'.$this->suffix." ".