Line 350... |
Line 350... |
350 |
if (!$this->etreNull($commentaire)) {
|
350 |
if (!$this->etreNull($commentaire)) {
|
351 |
$commentaire = Cel::db()->proteger('%'.$commentaire.'%');
|
351 |
$commentaire = Cel::db()->proteger('%'.$commentaire.'%');
|
352 |
switch ($type) {
|
352 |
switch ($type) {
|
353 |
case '*' :
|
353 |
case '*' :
|
354 |
$sql = $this->obtenirConditionPourCommentaires($commentaire);
|
354 |
$sql = $this->obtenirConditionPourCommentaires($commentaire);
|
355 |
$sql = " AND (commentaire LIKE $commentaire OR ($sql)) ";
|
355 |
$sql = " AND (ci.commentaire LIKE $commentaire OR ($sql)) ";
|
356 |
break;
|
356 |
break;
|
357 |
case 'observation' :
|
357 |
case 'observation' :
|
358 |
$sql = " AND co.commentaire LIKE $commentaire ";
|
358 |
$sql = " AND co.commentaire LIKE $commentaire ";
|
359 |
break;
|
359 |
break;
|
360 |
case 'photo' :
|
360 |
case 'photo' :
|
Line 503... |
Line 503... |
503 |
* Récupération des identifiant d'utilisateur et des ordres des observations correspondant à une date.
|
503 |
* Récupération des identifiant d'utilisateur et des ordres des observations correspondant à une date.
|
504 |
* Retour sous forme de tableau : array[identifiant] = array(ordre, ordre...);
|
504 |
* Retour sous forme de tableau : array[identifiant] = array(ordre, ordre...);
|
505 |
*/
|
505 |
*/
|
506 |
private function obtenirObsLieesImg($type, $param) {
|
506 |
private function obtenirObsLieesImg($type, $param) {
|
507 |
// Construction de la requête
|
507 |
// Construction de la requête
|
508 |
$requete = 'SELECT DISTINCT id_observation AS id_obs, ce_utilisateur AS utilisateur '.
|
508 |
$requete = 'SELECT DISTINCT id_observation AS id_obs, co.ce_utilisateur AS utilisateur '.
|
509 |
'FROM cel_images ci'.
|
509 |
'FROM cel_images ci'.
|
510 |
' LEFT JOIN cel_obs_images coi '.
|
- |
|
511 |
' ON (coi.id_image = ci.id_image) '.
|
- |
|
512 |
' LEFT JOIN cel_obs AS co '.
|
510 |
' INNER JOIN cel_obs AS co '.
|
513 |
' ON coi.id_observation = co.id_observation '.
|
511 |
' ON ci.ce_observation = co.id_observation '.
|
514 |
' LEFT JOIN locations AS l '.
|
512 |
' LEFT JOIN locations AS l '.
|
515 |
' ON (l.id_zone_geo = co.ce_zone_geo) '.
|
513 |
' ON (l.id_zone_geo = co.ce_zone_geo) '.
|
516 |
"WHERE transmission = '1' ".
|
514 |
"WHERE co.transmission = '1' ".
|
517 |
($type == 'date.photo' ? " AND (date_prise_de_vue LIKE ".str_replace('-', ':', $param).") " : '').
|
515 |
($type == 'date.photo' ? " AND (date_prise_de_vue LIKE ".str_replace('-', ':', $param).") " : '').
|
518 |
($type == 'date.ajout' ? " AND date_creation LIKE $param " : '').
|
516 |
($type == 'date.ajout' ? " AND ci.date_creation LIKE $param " : '').
|
519 |
($type == 'date.liaison' ? " AND date_liaison LIKE $param " : '').
|
517 |
($type == 'date.liaison' ? " AND ci.date_liaison LIKE $param " : '').
|
520 |
// TODO: recherche sur le xml
|
518 |
// TODO: recherche sur le xml
|
521 |
//($type == 'commentaire.meta' ? " AND ci.commentaire LIKE $param " : '').
|
519 |
//($type == 'commentaire.meta' ? " AND ci.commentaire LIKE $param " : '').
|
522 |
($type == 'commentaire.utilisateur' ? " AND ci.commentaire LIKE $param " : '').
|
520 |
($type == 'commentaire.utilisateur' ? " AND ci.commentaire LIKE $param " : '').
|
523 |
($type == 'commentaire.*' ? " AND (ci.commentaire LIKE $param) " : '').
|
521 |
($type == 'commentaire.*' ? " AND (ci.commentaire LIKE $param) " : '').
|
524 |
$this->construireWhereCoordonnees().
|
522 |
$this->construireWhereCoordonnees().
|
Line 597... |
Line 595... |
597 |
}
|
595 |
}
|
Line 598... |
Line 596... |
598 |
|
596 |
|
599 |
private function construireWherePhotosSeulement() {
|
597 |
private function construireWherePhotosSeulement() {
|
600 |
$sql = '';
|
598 |
$sql = '';
|
601 |
if (isset($this->parametres['photos']) && $this->parametres['photos'] == 1) {
|
599 |
if (isset($this->parametres['photos']) && $this->parametres['photos'] == 1) {
|
602 |
$sql = 'AND co.id_observation IN (SELECT DISTINCT id_observation FROM cel_obs_images) ';
|
600 |
$sql = 'AND co.id_observation IN (SELECT DISTINCT ce_observation FROM cel_images) ';
|
603 |
}
|
601 |
}
|
604 |
return $sql;
|
602 |
return $sql;
|
Line 665... |
Line 663... |
665 |
private function getSqlWhereObsAvecImagesTaguees($tag) {
|
663 |
private function getSqlWhereObsAvecImagesTaguees($tag) {
|
666 |
$sql = null;
|
664 |
$sql = null;
|
667 |
if (isset($tag) && !$this->etreNull($tag)) {
|
665 |
if (isset($tag) && !$this->etreNull($tag)) {
|
668 |
$tag_sql = $this->getSqlWhereMotsCles($tag);
|
666 |
$tag_sql = $this->getSqlWhereMotsCles($tag);
|
669 |
// Construction de la requête
|
667 |
// Construction de la requête
|
670 |
$requete = 'SELECT DISTINCT coi.id_observation AS id_obs, ci.ce_utilisateur AS utilisateur '.
|
668 |
$requete = 'SELECT DISTINCT co.id_observation AS id_obs, ci.ce_utilisateur AS utilisateur '.
|
671 |
'FROM cel_images ci'.
|
669 |
'FROM cel_images ci'.
|
672 |
' LEFT JOIN cel_obs_images coi'.
|
- |
|
673 |
' ON (ci.id_image = coi.id_image) '.
|
- |
|
674 |
' LEFT JOIN cel_obs AS co '.
|
670 |
' INNER JOIN cel_obs AS co '.
|
675 |
' ON (coi.id_observation = co.id_observation) '.
|
671 |
' ON (ci.ce_observation = co.id_observation) '.
|
676 |
' LEFT JOIN cel_zones_geo AS l '.
|
672 |
' LEFT JOIN cel_zones_geo AS l '.
|
677 |
" ON (l.id_zone_geo = co.ce_zone_geo) ".
|
673 |
" ON (l.id_zone_geo = co.ce_zone_geo) ".
|
678 |
"WHERE transmission = '1' ".
|
674 |
"WHERE co.transmission = '1' ".
|
679 |
$this->construireWhereCoordonnees().
|
675 |
$this->construireWhereCoordonnees().
|
680 |
$this->construireWhereUtilisateur().
|
676 |
$this->construireWhereUtilisateur().
|
681 |
$this->construireWhereNumTaxon().
|
677 |
$this->construireWhereNumTaxon().
|
682 |
$this->construireWhereNomTaxon().
|
678 |
$this->construireWhereNomTaxon().
|
683 |
$this->construireWhereProjet().
|
679 |
$this->construireWhereProjet().
|
Line 741... |
Line 737... |
741 |
$where_mots_cles_images = implode(' '.$mots_cles_encodes['type'].' ', $where_mots_cles_images);
|
737 |
$where_mots_cles_images = implode(' '.$mots_cles_encodes['type'].' ', $where_mots_cles_images);
|
742 |
return $where_mots_cles_images;
|
738 |
return $where_mots_cles_images;
|
743 |
}
|
739 |
}
|
Line 744... |
Line 740... |
744 |
|
740 |
|
745 |
private function decomposerParametreTag($tags) {
|
- |
|
746 |
|
741 |
private function decomposerParametreTag($tags) {
|
747 |
$mots_cles = array('type' => null, 'motsCles' => null, 'motsClesEncodesProteges' => null);
|
742 |
$mots_cles = array('type' => null, 'motsCles' => null, 'motsClesEncodesProteges' => null);
|
748 |
if (preg_match('/.+OU.+/', $tags)) {
|
743 |
if (preg_match('/.+OU.+/', $tags)) {
|
749 |
$mots_cles['type'] = 'OR';
|
744 |
$mots_cles['type'] = 'OR';
|
750 |
$mots_cles['motsCles'] = explode('OU', $tags);
|
745 |
$mots_cles['motsCles'] = explode('OU', $tags);
|