| Line 27... |
Line 27... |
| 27 |
'commune' => 'b.location',
|
27 |
'commune' => 'b.location',
|
| 28 |
'dept' => 'b.id_location',
|
28 |
'dept' => '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 |
'tag' => 'mots-cles');
|
32 |
'tag' => 'tag',
|
| - |
|
33 |
'projet' => 'projet');
|
| Line 33... |
Line 34... |
| 33 |
|
34 |
|
| 34 |
/**
|
35 |
/**
|
| 35 |
* Méthode appelée avec une requête de type GET.
|
36 |
* Méthode appelée avec une requête de type GET.
|
| 36 |
*/
|
37 |
*/
|
| Line 399... |
Line 400... |
| 399 |
$criteres = $this->traiterCriteresMultiples($_GET) ;
|
400 |
$criteres = $this->traiterCriteresMultiples($_GET) ;
|
| 400 |
if (!empty($criteres)) {
|
401 |
if (!empty($criteres)) {
|
| 401 |
$requete .= $this->creerSousRequeteRechercheParCriteres($criteres);
|
402 |
$requete .= $this->creerSousRequeteRechercheParCriteres($criteres);
|
| 402 |
}
|
403 |
}
|
| 403 |
}
|
404 |
}
|
| 404 |
$requete = rtrim($requete,' AND ) ');
|
405 |
$requete = str_replace(' AND ) ',' ', $requete);
|
| 405 |
$requete = rtrim($requete, 'AND ');
|
406 |
$requete = rtrim($requete, 'AND ');
|
| 406 |
$requete .= ' ORDER BY '.(isset($this->orderby) && (!is_null($this->orderby)) ? $this->orderby :
|
407 |
$requete .= ' ORDER BY '.(isset($this->orderby) && (!is_null($this->orderby)) ? $this->orderby :
|
| 407 |
'c.ci_meta_date_ajout DESC').' '."LIMIT $this->start,$this->limit ";
|
408 |
'c.ci_meta_date_ajout DESC').' '."LIMIT $this->start,$this->limit ";
|
| Line 408... |
Line 409... |
| 408 |
|
409 |
|
| Line 409... |
Line 410... |
| 409 |
$elements = $this->executerRequete($requete);
|
410 |
$elements = $this->executerRequete($requete);
|
| 410 |
|
411 |
|
| 411 |
// Création du contenu
|
412 |
// Création du contenu
|
| 412 |
if ($elements != false && count($elements) > 0) {
|
413 |
if ($elements != false && count($elements) > 0) {
|
| 413 |
$contenu = $this->executerService($elements);
|
414 |
$contenu = $this->executerService($elements);
|
| 414 |
} else {
|
415 |
} else {
|
| Line 415... |
Line 416... |
| 415 |
$this->messages[] = "Aucune image disponible.".$requete;
|
416 |
$this->messages[] = "Aucune image disponible.";
|
| 416 |
}
|
417 |
}
|
| Line 440... |
Line 441... |
| 440 |
$requete .= $nom_valeur[0].'='.$this->bdd->quote($nom_valeur[1]).' AND '; break;
|
441 |
$requete .= $nom_valeur[0].'='.$this->bdd->quote($nom_valeur[1]).' AND '; break;
|
| 441 |
case "b.nom_ret" :
|
442 |
case "b.nom_ret" :
|
| 442 |
if ($nom_valeur[1] == "indetermine") $nom_valeur[1] = 'null';
|
443 |
if ($nom_valeur[1] == "indetermine") $nom_valeur[1] = 'null';
|
| 443 |
$requete .= ' ('.$nom_valeur[0].' LIKE "%'.$nom_valeur[1].'%" OR b.nom_sel LIKE "%'.
|
444 |
$requete .= ' ('.$nom_valeur[0].' LIKE "%'.$nom_valeur[1].'%" OR b.nom_sel LIKE "%'.
|
| 444 |
$nom_valeur[1].'%") AND '; break;
|
445 |
$nom_valeur[1].'%") AND '; break;
|
| 445 |
case "mots-cles" : $requete .= $this->creerSousRequeteMotsCles($nom_valeur[1]); break;
|
446 |
case "tag" : $requete .= $this->creerSousRequeteMotsCles($nom_valeur[1]); break;
|
| - |
|
447 |
case "projet" : $requete .= $this->creerSousRequeteProjet($nom_valeur[1]); break;
|
| 446 |
default : $requete .= $nom_valeur[0].' = "'.$nom_valeur[1].'" AND '; break;
|
448 |
default : $requete .= $nom_valeur[0].' = "'.$nom_valeur[1].'" AND '; break;
|
| 447 |
}
|
449 |
}
|
| 448 |
}
|
450 |
}
|
| 449 |
}
|
451 |
}
|
| 450 |
$requete = rtrim($requete,' AND ');
|
452 |
$requete = rtrim($requete,' AND ');
|
| 451 |
return $requete;
|
453 |
return $requete;
|
| 452 |
}
|
454 |
}
|
| Line 453... |
Line 455... |
| 453 |
|
455 |
|
| 454 |
private function creerSousRequeteMotsCles($mot_cle) {
|
- |
|
| 455 |
$requete = '';
|
456 |
private function creerSousRequeteMotsCles($mot_cle) {
|
| 456 |
if (preg_match('/.*OU.*/', $mot_cle)) {
|
457 |
if (preg_match('/.*OU.*/', $mot_cle)) {
|
| 457 |
$requete = $this->creerSousRequeteMotsClesOu($mot_cle);
|
458 |
$requete = $this->creerSousRequeteMotsClesOu($mot_cle);
|
| 458 |
} else if (preg_match('/.*ET.*/', $mot_cle)) {
|
459 |
} else if (preg_match('/.*ET.*/', $mot_cle)) {
|
| 459 |
$requete = $this->creerSousRequeteMotsClesEt($mot_cle);
|
460 |
$requete = $this->creerSousRequeteMotsClesEt($mot_cle);
|
| Line 466... |
Line 467... |
| 466 |
$requete = ' ( ';
|
467 |
$requete = ' ( ';
|
| 467 |
foreach ($elements as $occurence) {
|
468 |
foreach ($elements as $occurence) {
|
| 468 |
$requete .= '(ci_meta_mots_cles LIKE "%'.$occurence['cmc_id_mot_cle_utilisateur'].'%" AND ci_ce_utilisateur = '.
|
469 |
$requete .= '(ci_meta_mots_cles LIKE "%'.$occurence['cmc_id_mot_cle_utilisateur'].'%" AND ci_ce_utilisateur = '.
|
| 469 |
$this->bdd->quote($occurence['cmc_id_proprietaire']).' ) OR ';
|
470 |
$this->bdd->quote($occurence['cmc_id_proprietaire']).' ) OR ';
|
| 470 |
}
|
471 |
}
|
| 471 |
}echo $requete;
|
472 |
} else {
|
| - |
|
473 |
$requete = ' (ci_meta_mots_cles like "inexistant" OR';
|
| - |
|
474 |
}
|
| 472 |
}
|
475 |
}
|
| 473 |
$requete = rtrim($requete,' OR ').' ) AND ';
|
476 |
$requete = rtrim($requete,' OR ').' ) AND ';
|
| 474 |
return $requete;
|
477 |
return $requete;
|
| 475 |
}
|
478 |
}
|
| Line 476... |
Line 479... |
| 476 |
|
479 |
|
| 477 |
private function creerSousRequeteMotsClesOu($mot_cle) {
|
- |
|
| 478 |
$requete = '';
|
480 |
private function creerSousRequeteMotsClesOu($mot_cle) {
|
| 479 |
$tab_mots_cles = explode('OU', $mot_cle);
|
481 |
$tab_mots_cles = explode('OU', $mot_cle);
|
| 480 |
$where = '';
|
482 |
$where = '';
|
| 481 |
foreach ($tab_mots_cles as $mot) {
|
483 |
foreach ($tab_mots_cles as $mot) {
|
| 482 |
$where .= 'cmc_id_mot_cle_general = '.$this->bdd->quote($this->encoderMotCle(trim($mot))).' OR ';
|
484 |
$where .= 'cmc_id_mot_cle_general = '.$this->bdd->quote($this->encoderMotCle(trim($mot))).' OR ';
|
| Line 490... |
Line 492... |
| 490 |
$requete = ' ( ';
|
492 |
$requete = ' ( ';
|
| 491 |
foreach ($elements as $occurence) {
|
493 |
foreach ($elements as $occurence) {
|
| 492 |
$requete .= '(ci_meta_mots_cles LIKE "%'.$occurence['cmc_id_mot_cle_utilisateur'].'%" AND ci_ce_utilisateur = '.
|
494 |
$requete .= '(ci_meta_mots_cles LIKE "%'.$occurence['cmc_id_mot_cle_utilisateur'].'%" AND ci_ce_utilisateur = '.
|
| 493 |
$this->bdd->quote($occurence['cmc_id_proprietaire']).' ) OR ';
|
495 |
$this->bdd->quote($occurence['cmc_id_proprietaire']).' ) OR ';
|
| 494 |
}
|
496 |
}
|
| - |
|
497 |
} else {
|
| - |
|
498 |
$requete = ' (ci_meta_mots_cles like "inexistant" OR';
|
| 495 |
}
|
499 |
}
|
| 496 |
return $requete;
|
500 |
return $requete;
|
| 497 |
}
|
501 |
}
|
| Line 498... |
Line 502... |
| 498 |
|
502 |
|
| 499 |
private function creerSousRequeteMotsClesEt($mot_cle) {
|
- |
|
| 500 |
$requete = '';
|
503 |
private function creerSousRequeteMotsClesEt($mot_cle) {
|
| 501 |
$where = '';
|
504 |
$where = '';
|
| 502 |
$champs = 'a.cmc_id_proprietaire , ';
|
505 |
$champs = 'a.cmc_id_proprietaire , ';
|
| 503 |
$table = '';
|
506 |
$table = '';
|
| Line 526... |
Line 529... |
| 526 |
for ($j = 'a'; $j < $i; $j++) {
|
529 |
for ($j = 'a'; $j < $i; $j++) {
|
| 527 |
$requete .= 'ci_meta_mots_cles like "%'.$occurence[$j].'%" AND ';
|
530 |
$requete .= 'ci_meta_mots_cles like "%'.$occurence[$j].'%" AND ';
|
| 528 |
}
|
531 |
}
|
| 529 |
$requete .= ' ci_ce_utilisateur = '.$this->bdd->quote($occurence['cmc_id_proprietaire']).' ) OR ';
|
532 |
$requete .= ' ci_ce_utilisateur = '.$this->bdd->quote($occurence['cmc_id_proprietaire']).' ) OR ';
|
| 530 |
}
|
533 |
}
|
| - |
|
534 |
} else {
|
| - |
|
535 |
$requete = ' (ci_meta_mots_cles like "inexistant" OR';
|
| 531 |
}
|
536 |
}
|
| 532 |
return $requete;
|
537 |
return $requete;
|
| 533 |
}
|
538 |
}
|
| - |
|
539 |
|
| - |
|
540 |
private function creerSousRequeteProjet($mot_cle) {
|
| - |
|
541 |
$requete = 'mots_cles like "inexistant" OR';
|
| - |
|
542 |
if (preg_match('/.*OU.*/', $mot_cle)) {
|
| - |
|
543 |
$requete = $this->creerSousRequeteProjetOu($mot_cle);
|
| - |
|
544 |
} else if (preg_match('/.*ET.*/', $mot_cle)) {
|
| - |
|
545 |
$requete = $this->creerSousRequeteProjetEt($mot_cle);
|
| - |
|
546 |
} else {
|
| - |
|
547 |
// Construction de la requête
|
| - |
|
548 |
$prerequete = 'SELECT * '.
|
| - |
|
549 |
'FROM cel_mots_cles_obs '.
|
| - |
|
550 |
'WHERE cmc_id_mot_cle_general = '.$this->bdd->quote($this->encoderMotCle($mot_cle));
|
| - |
|
551 |
$elements = $this->executerRequete($prerequete);
|
| - |
|
552 |
if ($elements != false && count($elements) > 0) {
|
| - |
|
553 |
$requete = '';
|
| - |
|
554 |
foreach ($elements as $occurence) {
|
| - |
|
555 |
$requete .= '(mots_cles LIKE "%'.$occurence['cmc_id_mot_cle_utilisateur'].'%" AND identifiant = '.
|
| - |
|
556 |
$this->bdd->quote($occurence['cmc_id_proprietaire']).' ) OR ';
|
| - |
|
557 |
}
|
| - |
|
558 |
}
|
| - |
|
559 |
}
|
| - |
|
560 |
$requete = rtrim($requete,' OR ').' AND ';
|
| - |
|
561 |
return $requete;
|
| - |
|
562 |
}
|
| - |
|
563 |
|
| - |
|
564 |
private function creerSousRequeteProjetOu($mot_cle) {
|
| - |
|
565 |
$requete = 'mots_cles like "inexistant" OR';
|
| - |
|
566 |
$tab_mots_cles = explode('OU', $mot_cle);
|
| - |
|
567 |
$where = '';
|
| - |
|
568 |
foreach ($tab_mots_cles as $mot) {
|
| - |
|
569 |
$where .= 'cmc_id_mot_cle_general = '.$this->bdd->quote($this->encoderMotCle(trim($mot))).' OR ';
|
| - |
|
570 |
}
|
| - |
|
571 |
$where = rtrim($where,' OR ');
|
| - |
|
572 |
|
| - |
|
573 |
// Construction de la requête
|
| - |
|
574 |
$prerequete = "SELECT cmc_id_mot_cle_utilisateur, cmc_id_proprietaire FROM cel_mots_cles_obs WHERE $where ";
|
| - |
|
575 |
$elements = $this->executerRequete($prerequete);
|
| - |
|
576 |
if ($elements != false && count($elements) > 0) {
|
| - |
|
577 |
$requete = '';
|
| - |
|
578 |
foreach ($elements as $occurence) {
|
| - |
|
579 |
$requete .= '(mots_cles LIKE "%'.$occurence['cmc_id_mot_cle_utilisateur'].'%" AND identifiant = '.
|
| - |
|
580 |
$this->bdd->quote($occurence['cmc_id_proprietaire']).' ) OR ';
|
| - |
|
581 |
}
|
| - |
|
582 |
}
|
| - |
|
583 |
return $requete;
|
| - |
|
584 |
}
|
| - |
|
585 |
|
| - |
|
586 |
private function creerSousRequeteProjetEt($mot_cle) {
|
| - |
|
587 |
$requete = 'mots_cles like "inexistant" OR';
|
| - |
|
588 |
$where = '';
|
| - |
|
589 |
$champs = 'a.cmc_id_proprietaire , ';
|
| - |
|
590 |
$table = '';
|
| - |
|
591 |
$i = "a"; $j = "a";
|
| - |
|
592 |
|
| - |
|
593 |
$tab_mots_cles = explode("ET", $mot_cle);
|
| - |
|
594 |
foreach ($tab_mots_cles as $mot) {
|
| - |
|
595 |
$champs .= "$i.cmc_id_mot_cle_utilisateur as $i , ";
|
| - |
|
596 |
$table .= "cel_mots_cles_obs $i , ";
|
| - |
|
597 |
$where .= "$i.cmc_id_mot_cle_general = ".$this->bdd->quote($this->encoderMotCle(trim($mot))).' AND ';
|
| - |
|
598 |
if ($i !== "a") {
|
| - |
|
599 |
$where .= " $i.cmc_id_proprietaire = ".$j.".cmc_id_proprietaire AND ";
|
| - |
|
600 |
$j++;
|
| - |
|
601 |
}
|
| - |
|
602 |
$i++;
|
| - |
|
603 |
}
|
| - |
|
604 |
$where = rtrim($where,' AND '); $champs = rtrim($champs,' , '); $table = rtrim($table,' , ');
|
| - |
|
605 |
|
| - |
|
606 |
// Construction de la requête
|
| - |
|
607 |
$prerequete = "SELECT $champs FROM $table WHERE $where ";
|
| - |
|
608 |
$elements = $this->executerRequete($prerequete);//print_r($elements);
|
| - |
|
609 |
if ($elements != false && count($elements) > 0) {
|
| - |
|
610 |
$requete = '';
|
| - |
|
611 |
foreach ($elements as $occurence) {
|
| - |
|
612 |
$requete = ' (';
|
| - |
|
613 |
for ($j = 'a'; $j < $i; $j++) {
|
| - |
|
614 |
$requete .= 'mots_cles like "%'.$occurence[$j].'%" AND ';
|
| - |
|
615 |
}
|
| - |
|
616 |
$requete .= ' identifiant = '.$this->bdd->quote($occurence['cmc_id_proprietaire']).' ) OR ';
|
| - |
|
617 |
}
|
| - |
|
618 |
}
|
| - |
|
619 |
return $requete;
|
| - |
|
620 |
}
|
| - |
|
621 |
|
| 534 |
private function creerSousRequeteRechercheGenerale($chaine_requete) {
|
622 |
private function creerSousRequeteRechercheGenerale($chaine_requete) {
|
| 535 |
$requete = '';
|
623 |
$requete = '';
|
| 536 |
if (trim($chaine_requete) != '') {
|
624 |
if (trim($chaine_requete) != '') {
|
| 537 |
$chaine_requete = strtolower($chaine_requete);
|
625 |
$chaine_requete = strtolower($chaine_requete);
|
| 538 |
$chaine_requete = str_replace(' ', '_', $chaine_requete);
|
626 |
$chaine_requete = str_replace(' ', '_', $chaine_requete);
|