Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 710 Rev 714
Line 26... Line 26...
26
		'auteur' => 'c.ci_ce_utilisateur', 
26
		'auteur' => 'c.ci_ce_utilisateur', 
27
		'commune' => 'b.location', 
27
		'commune' => 'b.location', 
28
		'departement' => 'b.id_location',
28
		'departement' => 'b.id_location',
29
		'taxon' => 'b.nom_ret',
29
		'taxon' => 'b.nom_ret',
30
		'commentaire' => 'c.ci_meta_comment',
30
		'commentaire' => 'c.ci_meta_comment',
31
		'date' => 'c.ci_meta_date');
31
		'date' => 'c.ci_meta_date',
-
 
32
		'mots-cles' => 'mots-cles');
Line 32... Line 33...
32
	
33
	
33
	/**
34
	/**
34
	 * Méthode appelée avec une requête de type GET.
35
	 * Méthode appelée avec une requête de type GET.
35
	 */
36
	 */
Line 380... Line 381...
380
		return $contenu;
381
		return $contenu;
381
	}
382
	}
Line 382... Line 383...
382
	
383
	
383
	private function getServiceMultiCriteres() {
384
	private function getServiceMultiCriteres() {
384
		$contenu = '';
-
 
385
		if (isset($_GET['debut'])) {
385
		$contenu = '';
386
			$this->start = $_GET['debut'];
-
 
387
		}
-
 
388
		
-
 
389
		if (isset($_GET['limite'])) {
386
		if (isset($_GET['debut'])) $this->start = $_GET['debut'];		
390
			$this->limite = $_GET['limite'];
-
 
Line 391... Line 387...
391
		}
387
		if (isset($_GET['limite'])) $this->limite = $_GET['limite'];
392
		
388
		
393
		// Construction de la requête
389
		// Construction de la requête
394
		$requete = 'SELECT * '.
390
		$requete = 'SELECT * '.
Line 401... Line 397...
401
			'	AND b.identifiant = c.ci_ce_utilisateur '.
397
			'	AND b.identifiant = c.ci_ce_utilisateur '.
402
			'	AND ';
398
			'	AND ';
Line 403... Line 399...
403
		
399
		
404
		if ($this->estUneRechercheGenerale()) {
400
		if ($this->estUneRechercheGenerale()) {
405
			$chaine_requete = $_GET['recherche'];
401
			$chaine_requete = $_GET['recherche'];
406
			$sous_requete = $this->creerSousRequeteRechercheGenerale($chaine_requete);
402
			$requete .= $this->creerSousRequeteRechercheGenerale($chaine_requete);
407
		} else {
403
		} else {
408
			$criteres = $this->traiterCriteresMultiples($_GET) ;
404
			$criteres = $this->traiterCriteresMultiples($_GET) ;
409
			if (empty($criteres)) {
405
			if (!empty($criteres)) {
410
				$sous_requete = '';
406
				$requete .= $this->creerSousRequeteRechercheParCriteres($criteres);
411
			}
-
 
412
			$sous_requete = $this->creerSousRequeteRechercheParCriteres($criteres);
407
			}	
413
		}
-
 
414
	
-
 
415
		$requete .= $sous_requete;
408
		}
416
		$requete = rtrim($requete, 'AND ');
409
		$requete = rtrim($requete, 'AND ');
417
		$requete .= ' ORDER BY '.(isset($this->orderby) && (!is_null($this->orderby)) ? $this->orderby  : 
410
		$requete .= ' ORDER BY '.(isset($this->orderby) && (!is_null($this->orderby)) ? $this->orderby  : 
Line 418... Line 411...
418
			'c.ci_meta_date_ajout DESC').' '."LIMIT $this->start,$this->limit ";
411
			'c.ci_meta_date_ajout DESC').' '."LIMIT $this->start,$this->limit ";
Line 419... Line 412...
419
		
412
		
420
		$elements = $this->executerRequete($requete);
413
		$elements = $this->executerRequete($requete);
421
 
414
 
422
		// Création du contenu
415
		// Création du contenu
423
		if ($elements != false && count($elements) > 0) {
416
		if ($elements != false && count($elements) > 0) {
424
			$contenu = $this->executerService($elements);
417
			$contenu = $this->executerService($elements);
Line 425... Line 418...
425
		} else {
418
		} else {
426
			$this->messages[] = "Aucune image disponible.$requete";
419
			$this->messages[] = "Aucune image disponible.";
Line 451... Line 444...
451
						$requete .= $nom_valeur[0].'='.$this->bdd->quote($nom_valeur[1]).' AND '; break;
444
						$requete .= $nom_valeur[0].'='.$this->bdd->quote($nom_valeur[1]).' AND '; break;
452
					case "b.nom_ret" : 
445
					case "b.nom_ret" : 
453
						if ($nom_valeur[1] == "indetermine") $nom_valeur[1] = 'null';						
446
						if ($nom_valeur[1] == "indetermine") $nom_valeur[1] = 'null';						
454
						$requete .= ' ('.$nom_valeur[0].' LIKE "%'.$nom_valeur[1].'%" OR b.nom_sel LIKE "%'.
447
						$requete .= ' ('.$nom_valeur[0].' LIKE "%'.$nom_valeur[1].'%" OR b.nom_sel LIKE "%'.
455
							$nom_valeur[1].'%") AND '; break;
448
							$nom_valeur[1].'%") AND '; break;
-
 
449
					case "mots-cles" : $requete .= $this->creerSousRequeteMotsCles($nom_valeur[1]); break; 		
456
					default : $requete .= $nom_valeur[0].' = "'.$nom_valeur[1].'" AND '; break;
450
					default : $requete .= $nom_valeur[0].' = "'.$nom_valeur[1].'" AND '; break;
457
				}
451
				}
458
			}
452
			}
459
		}
453
		}
460
		$requete = rtrim($requete,' AND ');
454
		$requete = rtrim($requete,' AND ');
461
		return $requete;
455
		return $requete;
462
	}
456
	}
Line -... Line 457...
-
 
457
	
-
 
458
	private function creerSousRequeteMotsCles($mot_cle) {
-
 
459
		if (preg_match('/.*,.*/', $mot_cle)) {
-
 
460
			$requete = $this->creerSousRequeteMotsClesOu($mot_cle);
-
 
461
		} else if (preg_match('/.*ET.*/', $mot_cle)) {
-
 
462
			$requete = $this->creerSousRequeteMotsClesEt($mot_cle);
-
 
463
		} else {		
-
 
464
			// Construction de la requête
-
 
465
			$prerequete = 	"SELECT cmc_id_mot_cle_utilisateur, cmc_id_proprietaire FROM cel_mots_cles_images WHERE $where ".
-
 
466
				'cmc_id_mot_cle_general = '.$this->bdd->quote($this->encoderMotCle($mot_cle)); 
-
 
467
			$elements = $this->executerRequete($prerequete);//print_r($elements);
-
 
468
			if ($elements != false && count($elements) > 0) {
-
 
469
				foreach ($elements as $occurence) {
-
 
470
					$requete .= '(ci_meta_mots_cles LIKE "%'.$occurence['cmc_id_mot_cle_utilisateur'].'%" AND ci_ce_utilisateur = '.
-
 
471
						$this->bdd->quote($occurence['cmc_id_proprietaire']).' ) OR ';	
-
 
472
				}
-
 
473
			}
-
 
474
		}
-
 
475
		$requete = rtrim($requete,' OR ').' AND ';
-
 
476
		return $requete;
-
 
477
	}
-
 
478
	
-
 
479
	private function creerSousRequeteMotsClesOu($mot_cle) {
-
 
480
		$requete = '';
-
 
481
		
-
 
482
		$tab_mots_cles = explode(',', $mot_cle);
-
 
483
		$where = '';
-
 
484
		foreach ($tab_mots_cles as $mot) {
-
 
485
			$where .= 'cmc_id_mot_cle_general = '.$this->bdd->quote($this->encoderMotCle($mot)).' OR ';
-
 
486
		}
-
 
487
		$where = rtrim($where,' OR ');
-
 
488
		
-
 
489
		// Construction de la requête
-
 
490
		$prerequete = 	"SELECT cmc_id_mot_cle_utilisateur, cmc_id_proprietaire FROM cel_mots_cles_images WHERE $where "; 
-
 
491
		$elements = $this->executerRequete($prerequete);//print_r($elements);
-
 
492
		if ($elements != false && count($elements) > 0) {
-
 
493
			foreach ($elements as $occurence) {
-
 
494
				$requete .= '(ci_meta_mots_cles LIKE "%'.$occurence['cmc_id_mot_cle_utilisateur'].'%" AND ci_ce_utilisateur = '.
-
 
495
					$this->bdd->quote($occurence['cmc_id_proprietaire']).' ) OR ';
-
 
496
			}
-
 
497
		}
-
 
498
		return $requete;
-
 
499
	}
-
 
500
	
-
 
501
	private function creerSousRequeteMotsClesEt($mot_cle) {
-
 
502
		$requete = '';
-
 
503
		$where = '';
-
 
504
		$champs = 'a.cmc_id_proprietaire , ';
-
 
505
		$table = '';
-
 
506
		$i = "a"; $j = "a";
-
 
507
		
-
 
508
		$tab_mots_cles = explode("ET", $mot_cle); 
-
 
509
		foreach ($tab_mots_cles as $mot) {
-
 
510
			$champs .= "$i.cmc_id_mot_cle_utilisateur as $i , ";
-
 
511
			$table .= "cel_mots_cles_images $i , ";
-
 
512
			$where .= "$i.cmc_id_mot_cle_general = ".$this->bdd->quote($this->encoderMotCle($mot)).' AND ';
-
 
513
			if ($i !== "a") {
-
 
514
				$where .= " $i.cmc_id_proprietaire = ".$j.".cmc_id_proprietaire AND ";
-
 
515
				$j++;
-
 
516
			}
-
 
517
			$i++;
-
 
518
		}
-
 
519
		$where = rtrim($where,' AND '); $champs = rtrim($champs,' , '); $table = rtrim($table,' , ');
-
 
520
		
-
 
521
		// Construction de la requête
-
 
522
		$prerequete = 	"SELECT $champs FROM $table WHERE $where "; 
-
 
523
		$elements = $this->executerRequete($prerequete);//print_r($elements);
-
 
524
		if ($elements != false && count($elements) > 0) {
-
 
525
			foreach ($elements as $occurence) {
-
 
526
				$occurence['cmc_id_mot_cle_utilisateur'] = '';
-
 
527
				for ($j = 'a'; $j < $i; $j++) {
-
 
528
					$occurence['cmc_id_mot_cle_utilisateur'] .= $occurence[$j].',';
-
 
529
				}
-
 
530
				$requete .= '(ci_meta_mots_cles = "'.$occurence['cmc_id_mot_cle_utilisateur'].'" AND ci_ce_utilisateur = '.
-
 
531
						$this->bdd->quote($occurence['cmc_id_proprietaire']).' ) OR ';
-
 
532
			}
-
 
533
		}
-
 
534
		return $requete;
463
	
535
	}		
464
	private function creerSousRequeteRechercheGenerale($chaine_requete) {
536
	private function creerSousRequeteRechercheGenerale($chaine_requete) {
465
		$requete = '';
537
		$requete = '';
466
		if (trim($chaine_requete) != '') {	
538
		if (trim($chaine_requete) != '') {	
467
			$chaine_requete = strtolower($chaine_requete);
539
			$chaine_requete = strtolower($chaine_requete);