Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 1622 Rev 1765
Line 211... Line 211...
211
			'FROM cel_obs '.
211
			'FROM cel_obs '.
212
			(($this->etreFluxAdmin()) ? '' : 'WHERE transmission = 1 ').
212
			(($this->etreFluxAdmin()) ? '' : 'WHERE transmission = 1 ').
213
			'ORDER BY '.(isset($this->orderby) && (!is_null($this->orderby)) ? $this->orderby  : 'date_modification DESC').' '.
213
			'ORDER BY '.(isset($this->orderby) && (!is_null($this->orderby)) ? $this->orderby  : 'date_modification DESC').' '.
214
			"LIMIT $this->start,$this->limit ";
214
			"LIMIT $this->start,$this->limit ";
Line 215... Line 215...
215
 
215
 
Line 216... Line 216...
216
		$elements = $this->executerRequete($requete);
216
		$elements = Cel::db()->executerRequete($requete);
217
 
217
 
218
		// Création du contenu
218
		// Création du contenu
219
		$contenu = $this->executerService($elements);
219
		$contenu = $this->executerService($elements);
Line 280... Line 280...
280
		$requete = rtrim($requete, 'AND ');
280
		$requete = rtrim($requete, 'AND ');
281
		$requete .= ' ORDER BY '.(isset($this->orderby) && (!is_null($this->orderby)) ? $this->orderby  :
281
		$requete .= ' ORDER BY '.(isset($this->orderby) && (!is_null($this->orderby)) ? $this->orderby  :
282
			'date_modification DESC, zone_geo ASC').' '.
282
			'date_modification DESC, zone_geo ASC').' '.
283
				"LIMIT $this->start,$this->limit ";
283
				"LIMIT $this->start,$this->limit ";
Line 284... Line 284...
284
		
284
		
Line 285... Line 285...
285
		$elements = $this->executerRequete($requete);
285
		$elements = Cel::db()->executerRequete($requete);
286
 
286
 
287
		// Création du contenu
287
		// Création du contenu
288
		if ($elements != false && count($elements) > 0) {
288
		if ($elements != false && count($elements) > 0) {
Line 298... Line 298...
298
		$requete = '';
298
		$requete = '';
299
		foreach ($criteres as $pair) {
299
		foreach ($criteres as $pair) {
300
			$nom_valeur = explode("=",$pair);
300
			$nom_valeur = explode("=",$pair);
301
			if (sizeof($nom_valeur) != 0) {
301
			if (sizeof($nom_valeur) != 0) {
302
				switch ($nom_valeur[0]) {
302
				switch ($nom_valeur[0]) {
303
					case "ci_limite" : $this->limit = $this->bdd->quote($nom_valeur[1]); break;
303
					case "ci_limite" : $this->limit = Cel::db()->quote($nom_valeur[1]); break;
304
					case "commentaire" : $mots_comment_liste = explode(" " , $nom_valeur[1]);
304
					case "commentaire" : $mots_comment_liste = explode(" " , $nom_valeur[1]);
305
						foreach($mots_comment_liste as $mot_comment) {
305
						foreach($mots_comment_liste as $mot_comment) {
306
							$mot_comment = trim($mot_comment) ;
306
							$mot_comment = trim($mot_comment) ;
307
							$requete .= $nom_valeur[0].' LIKE '.$this->bdd->quote('%'.$mot_comment.'%').' AND ';
307
							$requete .= $nom_valeur[0].' LIKE '.Cel::db()->quote('%'.$mot_comment.'%').' AND ';
308
						}
308
						}
309
						break;
309
						break;
310
					case "date_observation" :
310
					case "date_observation" :
311
						$nom_valeur[1] = str_replace('/', '-', $nom_valeur[1]);
311
						$nom_valeur[1] = str_replace('/', '-', $nom_valeur[1]);
312
						if (preg_match('/(^[0-9]{2})-([0-9]{2})-([0-9]{4}$)/', $nom_valeur[1], $matches)) {
312
						if (preg_match('/(^[0-9]{2})-([0-9]{2})-([0-9]{4}$)/', $nom_valeur[1], $matches)) {
313
							$nom_valeur[1] = $matches[3].'-'.$matches[2].'-'.$matches[1];
313
							$nom_valeur[1] = $matches[3].'-'.$matches[2].'-'.$matches[1];
314
						}
314
						}
315
						$requete .= $nom_valeur[0].'='.$this->bdd->quote($nom_valeur[1]).' AND '; break;
315
						$requete .= $nom_valeur[0].'='.Cel::db()->quote($nom_valeur[1]).' AND '; break;
316
					case "ce_zone_geo" :
316
					case "ce_zone_geo" :
317
						$requete .= ' ('.$nom_valeur[0].' LIKE "INSEE-C:'.$nom_valeur[1].'%") AND '; break;
317
						$requete .= ' ('.$nom_valeur[0].' LIKE "INSEE-C:'.$nom_valeur[1].'%") AND '; break;
318
					case "nom_ret" :
318
					case "nom_ret" :
319
						if ($nom_valeur[1] == "indetermine") $nom_valeur[1] = 'null';
319
						if ($nom_valeur[1] == "indetermine") $nom_valeur[1] = 'null';
320
						$requete .= ' ('.$nom_valeur[0].' LIKE "%'.$nom_valeur[1].'%" OR nom_sel LIKE "%'.
320
						$requete .= ' ('.$nom_valeur[0].' LIKE "%'.$nom_valeur[1].'%" OR nom_sel LIKE "%'.
Line 332... Line 332...
332
	private function creerSousRequeteMotsCles($mot_cle) {
332
	private function creerSousRequeteMotsCles($mot_cle) {
333
		$requete = '';
333
		$requete = '';
334
		if (preg_match('/.*OU.*/', $mot_cle)) {
334
		if (preg_match('/.*OU.*/', $mot_cle)) {
335
			$mots_cles_tab = explode('OU',$mot_cle);
335
			$mots_cles_tab = explode('OU',$mot_cle);
336
			foreach($mots_cles_tab as $mot_cle_item) {
336
			foreach($mots_cles_tab as $mot_cle_item) {
337
				$requete .= '(mots_cles_texte LIKE '.$this->proteger('%'.$mot_cle_item.'%').') OR ';
337
				$requete .= '(mots_cles_texte LIKE '.Cel::db()->proteger('%'.$mot_cle_item.'%').') OR ';
338
			}
338
			}
339
			$requete = '('.rtrim($requete,'OR ').') ';
339
			$requete = '('.rtrim($requete,'OR ').') ';
340
		} else if (preg_match('/.*ET.*/', $mot_cle)) {
340
		} else if (preg_match('/.*ET.*/', $mot_cle)) {
341
			$mots_cles_tab = explode('ET',$mot_cle);
341
			$mots_cles_tab = explode('ET',$mot_cle);
342
			foreach($mots_cles_tab as $mot_cle_item) {
342
			foreach($mots_cles_tab as $mot_cle_item) {
343
				$requete .= '(mots_cles_texte LIKE '.$this->proteger('%'.$mot_cle_item.'%').') AND ';
343
				$requete .= '(mots_cles_texte LIKE '.Cel::db()->proteger('%'.$mot_cle_item.'%').') AND ';
344
			}
344
			}
345
			$requete = '('.rtrim($requete, 'AND ').') ';
345
			$requete = '('.rtrim($requete, 'AND ').') ';
346
		} else {
346
		} else {
347
			$requete = "(mots_cles_texte LIKE ".$this->proteger('%'.$mot_cle.'%').') ';
347
			$requete = "(mots_cles_texte LIKE ".Cel::db()->proteger('%'.$mot_cle.'%').') ';
348
		}
348
		}
349
		return $requete;
349
		return $requete;
350
	}
350
	}
Line 351... Line 351...
351
	
351
	
352
	private function creerSousRequeteTags($tag) {
352
	private function creerSousRequeteTags($tag) {
353
		$requete = '(id_observation IN (SELECT id_observation FROM cel_obs_images coi INNER JOIN cel_images ci ON coi.id_image = ci.id_image WHERE ';
353
		$requete = '(id_observation IN (SELECT id_observation FROM cel_obs_images coi INNER JOIN cel_images ci ON coi.id_image = ci.id_image WHERE ';
354
		$where = '';
354
		$where = '';
355
		if (preg_match('/.*OU.*/', $tag)) {
355
		if (preg_match('/.*OU.*/', $tag)) {
356
			$mots_cles_tab = explode('OU',$tag);
356
			$mots_cles_tab = explode('OU',$tag);
357
			foreach($mots_cles_tab as $mot_cle_item) {
357
			foreach($mots_cles_tab as $mot_cle_item) {
358
				$where .= '(ci.mots_cles_texte LIKE '.$this->proteger('%'.$mot_cle_item.'%').') OR ';
358
				$where .= '(ci.mots_cles_texte LIKE '.Cel::db()->proteger('%'.$mot_cle_item.'%').') OR ';
359
			}
359
			}
360
			$where .= '('.rtrim($where,'OR ').') ';
360
			$where .= '('.rtrim($where,'OR ').') ';
361
		} else if (preg_match('/.*ET.*/', $tag)) {
361
		} else if (preg_match('/.*ET.*/', $tag)) {
362
			$mots_cles_tab = explode('ET',$tag);
362
			$mots_cles_tab = explode('ET',$tag);
363
			foreach($mots_cles_tab as $mot_cle_item) {
363
			foreach($mots_cles_tab as $mot_cle_item) {
364
				$where .= '(ci.mots_cles_texte LIKE '.$this->proteger('%'.$mot_cle_item.'%').') AND ';
364
				$where .= '(ci.mots_cles_texte LIKE '.Cel::db()->proteger('%'.$mot_cle_item.'%').') AND ';
365
			}
365
			}
366
			$where .= '('.rtrim($where, 'AND ').') ';
366
			$where .= '('.rtrim($where, 'AND ').') ';
367
		} else {
367
		} else {
368
			$where .= "(ci.mots_cles_texte LIKE ".$this->proteger('%'.$tag.'%').') ';
368
			$where .= "(ci.mots_cles_texte LIKE ".Cel::db()->proteger('%'.$tag.'%').') ';
369
		}
369
		}
370
		$requete .= $where.' ))';
370
		$requete .= $where.' ))';
371
		return $requete;
371
		return $requete;