Line 13... |
Line 13... |
13 |
*
|
13 |
*
|
14 |
* Carte = Type de carte. Valeurs possible : defaut,
|
14 |
* Carte = Type de carte. Valeurs possible : defaut,
|
15 |
* Utilisateur = identifiant (= courriel) de l'utilisateur ou * pour tous les utilisateurs.
|
15 |
* Utilisateur = identifiant (= courriel) de l'utilisateur ou * pour tous les utilisateurs.
|
16 |
* Projet = mot-clé du projet
|
16 |
* Projet = mot-clé du projet
|
17 |
* Plusieurs mots-clés peuvent être spécifiés:
|
17 |
* Plusieurs mots-clés peuvent être spécifiés:
|
18 |
* machin ET bidule ET chose => observations ayant tous les mots-clés (intersection)
|
18 |
* machin ET bidule ET chose => observations ayant tous les mots-clés (intersection)
|
19 |
* machin OU bildule OU chose => observations ayant au moins un des mots-clés (union)
|
19 |
* machin OU bildule OU chose => observations ayant au moins un des mots-clés (union)
|
20 |
* ATTENTION
|
20 |
* ATTENTION
|
21 |
* machin ET bidule OU chose donne un résultat indéterminé pour l'instant
|
21 |
* machin ET bidule OU chose donne un résultat indéterminé pour l'instant
|
22 |
*
|
22 |
*
|
23 |
* @author Jean-Pascal MILCENT <jpm@clapas.org>
|
23 |
* @author Jean-Pascal MILCENT <jpm@clapas.org>
|
Line 734... |
Line 734... |
734 |
* Récupération des identifiant d'utilisateur et des ordres des observations correspondant à une date.
|
734 |
* Récupération des identifiant d'utilisateur et des ordres des observations correspondant à une date.
|
735 |
* Retour sous forme de tableau : array[identifiant] = array(ordre, ordre...);
|
735 |
* Retour sous forme de tableau : array[identifiant] = array(ordre, ordre...);
|
736 |
*/
|
736 |
*/
|
737 |
private function obtenirObsLieesImg($type, $param) {
|
737 |
private function obtenirObsLieesImg($type, $param) {
|
738 |
// Construction de la requête
|
738 |
// Construction de la requête
|
739 |
$requete = 'SELECT DISTINCT co.id_obs, ci.ce_utilisateur AS utilisateur '.
|
739 |
$requete = 'SELECT DISTINCT co.id_obs, ci.ce_utilisateur AS utilisateur '.
|
740 |
'FROM cel_images '.
|
740 |
'FROM cel_images '.
|
741 |
' LEFT JOIN cel_obs_images coi '.
|
- |
|
742 |
' ON (ci.id_image = coi.id_image) '.
|
- |
|
743 |
' LEFT JOIN cel_obs AS co '.
|
741 |
' LEFT JOIN cel_obs AS co '.
|
744 |
' ON (coi.id_observation = co.id_observation) '.
|
742 |
' ON (ci.ce_observation = co.id_observation) '.
|
745 |
' LEFT JOIN cel_zones_geo AS l '.
|
743 |
' LEFT JOIN cel_zones_geo AS l '.
|
746 |
' ON (l.nom = co.zone_geo AND l.id_zone_geo = co.ce_zone_geo) '.
|
744 |
' ON (l.nom = co.zone_geo AND l.id_zone_geo = co.ce_zone_geo) '.
|
747 |
"WHERE transmission = '1' ".
|
745 |
"WHERE co.transmission = '1' ".
|
748 |
($type == 'date.photo' ? " AND (ci_meta_date_time LIKE ".str_replace('-', ':', $param)." OR ci_meta_date LIKE $param) " : '').
|
746 |
($type == 'date.photo' ? " AND (ci.date_prise_de_vue LIKE ".str_replace('-', ':', $param).' ' : '').
|
749 |
($type == 'date.ajout' ? " AND ci_meta_date_ajout LIKE $param " : '').
|
747 |
($type == 'date.creation' ? " AND ci.date_creation LIKE $param " : '').
|
750 |
($type == 'date.liaison' ? " AND coi_date_liaison LIKE $param " : '').
|
748 |
($type == 'date.liaison' ? " AND ci.date_liaison LIKE $param " : '').
|
751 |
($type == 'commentaire.meta' ? " AND ci_meta_comment LIKE $param " : '').
|
749 |
($type == 'commentaire.img' ? " AND ci.commentaire LIKE $param " : '').
|
752 |
($type == 'commentaire.utilisateur' ? " AND ci_meta_user_comment LIKE $param " : '').
|
750 |
($type == 'commentaire.obs' ? " AND co.commentaire LIKE $param " : '').
|
753 |
($type == 'commentaire.*' ? " AND (ci_meta_comment LIKE $param OR ci_meta_user_comment LIKE $param) " : '').
|
751 |
($type == 'commentaire.*' ? " AND (co.commentaire LIKE $param OR ci.commentaire LIKE $param) " : '').
|
754 |
$this->construireWhereCoordonnees().
|
752 |
$this->construireWhereCoordonnees().
|
755 |
$this->construireWhereDept().
|
753 |
$this->construireWhereDept().
|
756 |
$this->construireWhereCommune().
|
754 |
$this->construireWhereCommune().
|
757 |
$this->construireWhereUtilisateur().
|
755 |
$this->construireWhereUtilisateur().
|
758 |
$this->construireWhereNumTaxon().
|
756 |
$this->construireWhereNumTaxon().
|
Line 947... |
Line 945... |
947 |
|
945 |
|
948 |
|
946 |
|
949 |
private function construireWherePhotosSeulement() {
|
947 |
private function construireWherePhotosSeulement() {
|
950 |
$sql = '';
|
948 |
$sql = '';
|
951 |
if (isset($this->parametres['photos']) && $this->parametres['photos'] == 1) {
|
949 |
if (isset($this->parametres['photos']) && $this->parametres['photos'] == 1) {
|
952 |
$sql = 'AND co.id_observation IN (SELECT DISTINCT id_observation FROM cel_obs_images) ';
|
950 |
$sql = 'AND co.id_observation IN (SELECT DISTINCT ce_observation FROM cel_images) ';
|
953 |
}
|
951 |
}
|
Line 954... |
Line 952... |
954 |
return $sql;
|
952 |
return $sql;
|
Line 1022... |
Line 1020... |
1022 |
return $sql;
|
1020 |
return $sql;
|
1023 |
}
|
1021 |
}
|
Line 1024... |
Line 1022... |
1024 |
|
1022 |
|
1025 |
/**
|
1023 |
/**
|
1026 |
* Traitement de $projet pour construction du filtre dans la requête
|
1024 |
* Traitement de $projet pour construction du filtre dans la requête
|
1027 |
*
|
1025 |
*
|
1028 |
* projet1 ET projet2 ET projet3 => intersection
|
1026 |
* projet1 ET projet2 ET projet3 => intersection
|
1029 |
* projet1 OU projet2 OU projet3 => union
|
1027 |
* projet1 OU projet2 OU projet3 => union
|
1030 |
* projet1 ET projet2 OU projet3 => ATTENTION indéfini
|
1028 |
* projet1 ET projet2 OU projet3 => ATTENTION indéfini
|
1031 |
*/
|
1029 |
*/
|
1032 |
private function getSqlWhereProjet($projet) {
|
1030 |
private function getSqlWhereProjet($projet) {
|
1033 |
$sql = null;
|
1031 |
$sql = null;
|
1034 |
if (isset($projet) && !$this->etreNull($projet)) {
|
1032 |
if (isset($projet) && !$this->etreNull($projet)) {
|
1035 |
if (strpos($projet, ' ET ')) {
|
1033 |
if (strpos($projet, ' ET ')) {
|
1036 |
// intersection
|
1034 |
// intersection
|
1037 |
$projets = explode(' ET ', $projet);
|
1035 |
$projets = explode(' ET ', $projet);
|
1038 |
$clauses = array();
|
1036 |
$clauses = array();
|
Line 1094... |
Line 1092... |
1094 |
private function getSqlWhereObsAvecImagesTaguees($tag) {
|
1092 |
private function getSqlWhereObsAvecImagesTaguees($tag) {
|
1095 |
$sql = null;
|
1093 |
$sql = null;
|
1096 |
if (isset($tag) && !$this->etreNull($tag)) {
|
1094 |
if (isset($tag) && !$this->etreNull($tag)) {
|
1097 |
$tag_sql = $this->getSqlWhereMotsCles($tag);
|
1095 |
$tag_sql = $this->getSqlWhereMotsCles($tag);
|
1098 |
// Construction de la requête
|
1096 |
// Construction de la requête
|
1099 |
$requete = 'SELECT DISTINCT coi.id_observation AS id_obs, ci.ce_utilisateur AS utilisateur '.
|
1097 |
$requete = 'SELECT DISTINCT co.id_observation AS id_obs, ci.ce_utilisateur AS utilisateur '.
|
1100 |
'FROM cel_images ci'.
|
1098 |
'FROM cel_images ci'.
|
1101 |
' LEFT JOIN cel_obs_images coi'.
|
- |
|
1102 |
' ON (ci.id_image = coi.id_image) '.
|
- |
|
1103 |
' LEFT JOIN cel_obs AS co '.
|
1099 |
' INNER JOIN cel_obs AS co '.
|
1104 |
' ON (coi.id_observation = co.id_observation) '.
|
1100 |
' ON (ci.ce_observation = co.id_observation) '.
|
1105 |
' LEFT JOIN cel_zones_geo AS l '.
|
1101 |
' LEFT JOIN cel_zones_geo AS l '.
|
1106 |
" ON (l.nom = co.zone_geo AND l.id_zone_geo = co.ce_zone_geo) ".
|
1102 |
" ON (l.nom = co.zone_geo AND l.id_zone_geo = co.ce_zone_geo) ".
|
1107 |
"WHERE transmission = '1' ".
|
1103 |
"WHERE co.transmission = '1' ".
|
1108 |
$this->construireWhereCoordonnees().
|
1104 |
$this->construireWhereCoordonnees().
|
1109 |
$this->construireWhereUtilisateur().
|
1105 |
$this->construireWhereUtilisateur().
|
1110 |
$this->construireWhereNumTaxon().
|
1106 |
$this->construireWhereNumTaxon().
|
1111 |
$this->construireWhereNomTaxon().
|
1107 |
$this->construireWhereNomTaxon().
|
1112 |
$this->construireWhereReferentiel().
|
1108 |
$this->construireWhereReferentiel().
|