Subversion Repositories eFlore/Applications.coel

Rev

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

Rev 1502 Rev 1506
Line 111... Line 111...
111
			'sci' => 'bool', 
111
			'sci' => 'bool', 
112
			'bot' => 'int', 
112
			'bot' => 'int', 
113
			'zg' => 'str', 
113
			'zg' => 'str', 
114
			'p' => 'str', 
114
			'p' => 'str', 
115
			'pr' => 'int',
115
			'pr' => 'int',
116
			'str-d' => 'defaut');
116
			'str-d' => 'defaut',
-
 
117
			'veg' => 'int');
Line 117... Line 118...
117
		
118
		
118
		$p = $this->traiterParametresUrl(array_keys($params_passes), $param, false);
-
 
-
 
119
		$p = $this->traiterParametresUrl(array_keys($params_passes), $param, false);
119
		
120
		$this->debug[] = $param;
120
		foreach ($params_passes as $param_passe => $type) {
121
		foreach ($params_passes as $param_passe => $type) {
121
			if (isset($p[$param_passe])) {
122
			if (isset($p[$param_passe])) {
122
				// Suppression des éventuels espaces en début et fin de chaine
123
				// Suppression des éventuels espaces en début et fin de chaine
Line 143... Line 144...
143
					if (preg_match('/^[0]$/', $valeur)) {
144
					if (preg_match('/^[0]$/', $valeur)) {
144
						$valeur = false;
145
						$valeur = false;
145
					} else if (preg_match('/^[1]$/', $valeur)) {
146
					} else if (preg_match('/^[1]$/', $valeur)) {
146
						$valeur = true;
147
						$valeur = true;
147
					} else {
148
					} else {
148
						$this->message[] = "Le paramêtre '$param_passe' attend une valeur de type 0 ou 1 et non '$valeur'.";
149
						$this->messages[] = "Le paramêtre '$param_passe' attend une valeur de type 0 ou 1 et non '$valeur'.";
149
						$valeur = null;
150
						$valeur = null;
150
					}
151
					}
Line 151... Line 152...
151
					
152
					
152
				}
153
				}
153
				// Type de paramêtre entier
154
				// Type de paramêtre entier
154
				if ($type == 'int') {
155
				if ($type == 'int') {
155
					if (!preg_match('/^(?:[0-9]+,\s*)*[0-9]+$/', $valeur)) {
156
					if (!preg_match('/^(?:[0-9]+,\s*)*[0-9]+$/', $valeur)) {
156
						$this->message[] = "Le paramêtre '$param_passe' attend une ou plusieurs valeurs de type entiers ".
157
						$this->messages[] = "Le paramêtre '$param_passe' attend une ou plusieurs valeurs de type entiers ".
157
							"séparés par des virgules et non '$valeur'.";
158
							"séparés par des virgules et non '$valeur'.";
158
						$valeur = null;
159
						$valeur = null;
159
					}
160
					}
Line 160... Line 161...
160
				}
161
				}
161
				
162
				
162
				$p[$param_passe] = $valeur;
163
				$p[$param_passe] = $valeur;
-
 
164
			}
163
			}
165
		}
164
		}
166
		
Line 165... Line 167...
165
		return $p;
167
		return $p;
166
	}
168
	}
Line 181... Line 183...
181
				"	OR cc_description LIKE {$p['mots']} ".
183
				"	OR cc_description LIKE {$p['mots']} ".
182
				"	OR cc_description_specialiste LIKE {$p['mots']} ".
184
				"	OR cc_description_specialiste LIKE {$p['mots']} ".
183
				"	OR cc_historique LIKE {$p['mots']} ".
185
				"	OR cc_historique LIKE {$p['mots']} ".
Line 184... Line 186...
184
	
186
	
-
 
187
				"	OR cs_nom LIKE {$p['mots']} ".
-
 
188
				"	OR cs_truk_nom_alternatif LIKE {$p['mots']} ".
185
				"	OR cs_nom LIKE {$p['mots']} ".
189
				"	OR cs_description LIKE {$p['mots']} ".
186
				"	OR cs_adresse_01 LIKE {$p['mots']} ".
190
				"	OR cs_adresse_01 LIKE {$p['mots']} ".
187
				"	OR cs_adresse_02 LIKE {$p['mots']} ".
191
				"	OR cs_adresse_02 LIKE {$p['mots']} ".
188
				"	OR cs_ville LIKE {$p['mots']} ".
192
				"	OR cs_ville LIKE {$p['mots']} ".
-
 
193
				"	OR cs_truk_identifiant_alternatif LIKE {$p['mots']} ".
-
 
194
				"	OR cs_condition_acces LIKE {$p['mots']} ".
-
 
195
				"	OR cs_condition_usage LIKE {$p['mots']} ".
-
 
196
				"	OR cs_truk_telephone LIKE {$p['mots']} ".
-
 
197
				"	OR cs_courriel LIKE {$p['mots']} ".
189
				"	OR cs_truk_identifiant_alternatif LIKE {$p['mots']} ".
198
				"	OR cs_truk_url LIKE {$p['mots']} ".
190
				') ';
199
				') ';
191
		}
-
 
192
		$this->debug[] = $p;
200
		}
193
		if (isset($p['sci'])) {
201
		if (isset($p['sci'])) {
194
			if ($p['sci'] === true) {
202
			if ($p['sci'] === true) {
195
				$where .= 'AND csv_mark_visite_avec_motif = 1 ';
203
				$where .= 'AND csv_mark_visite_avec_motif = 1 ';
196
			} else if ($p['sci'] === false) {
204
			} else if ($p['sci'] === false) {
Line 211... Line 219...
211
		}
219
		}
212
		if (isset($p['str-d'])) {
220
		if (isset($p['str-d'])) {
213
			$where .= 'AND cs_ce_truk_pays = 2654 '.
221
			$where .= 'AND cs_ce_truk_pays = 2654 '.
214
				"AND cs_code_postal LIKE '{$p['str-d']}%' ";
222
				"AND cs_code_postal LIKE '{$p['str-d']}%' ";
215
		}
223
		}
216
		 
224
		
-
 
225
		if (isset($p['veg'])) {
-
 
226
			$veg = explode(',', $p['veg']);
-
 
227
			$veg_nbre = count($veg);
-
 
228
			
-
 
229
			if ($veg_nbre == 1) {
-
 
230
				$where .= "AND ccb_truk_nature LIKE '%{$p['veg']}%' ";
-
 
231
			} else {
-
 
232
				$recherche = array();
-
 
233
				foreach ($veg as $id) {
-
 
234
					$recherche[] = "ccb_truk_nature LIKE '%$id%'";
-
 
235
				}
-
 
236
				$where .= 'AND ('.implode(' OR ', $recherche).') ';
-
 
237
			}
-
 
238
		} 
Line 217... Line 239...
217
		
239
		
Line 218... Line 240...
218
		$where = str_replace('WHERE AND', 'WHERE', $where);
240
		$where = str_replace('WHERE AND', 'WHERE', $where);
219
		
241
		
220
		// Gestion du from en fonction des paramêtres
242
		// Gestion du from en fonction des paramêtres
221
		if (isset($p['sci'])) {
243
		if (isset($p['sci'])) {
222
			$from .= '	LEFT JOIN coel_structure_valorisation ON (cs_id_structure = csv_id_structure) ';
244
			$from .= '	LEFT JOIN coel_structure_valorisation ON (cs_id_structure = csv_id_structure) ';
223
		}
245
		}
224
		if (isset($p['bot'])) {
246
		if (isset($p['bot']) || isset($p['veg'])) {
225
			$from .= '	LEFT JOIN coel_collection_botanique ON (cc_id_collection = ccb_id_collection) ';
247
			$from .= '	LEFT JOIN coel_collection_botanique ON (cc_id_collection = ccb_id_collection) ';
226
		}
248
		}
227
		if (isset($p['p']) || isset($p['pr'])) {
249
		if (isset($p['p']) || isset($p['pr'])) {
228
			$from .= '	LEFT JOIN coel_collection_a_personne ON (cc_id_collection = ccap_id_collection) ';
250
			$from .= '	LEFT JOIN coel_collection_a_personne ON (cc_id_collection = ccap_id_collection) ';
229
		}
251
		}
230
		if (isset($p['p'])) {
252
		if (isset($p['p'])) {
Line 231... Line 253...
231
			$from .= '	LEFT JOIN coel_personne ON (ccap_id_personne = cp_id_personne) ';
253
			$from .= '	LEFT JOIN coel_personne ON (ccap_id_personne = cp_id_personne) ';
232
		}
-
 
233
		
254
		}
234
		// Retour du From et Where associé
255
		
235
		$this->debug[] = count($p);
256
		// Retour du From et Where associé
236
		if (count($p) == 0) {
257
		if (count($p) == 0) {
237
			$from_et_where = $from;
258
			$from_et_where = $from;