Line 40... |
Line 40... |
40 |
}
|
40 |
}
|
Line 41... |
Line 41... |
41 |
|
41 |
|
42 |
|
42 |
|
43 |
// redéfinis en 2020, affiche toutes les infos images et obs à partir d'un join pour n'avoir que les images liées à une obs
|
43 |
// redéfinis en 2020, affiche toutes les infos images et obs à partir d'un join pour n'avoir que les images liées à une obs
|
44 |
public function rechercherImagesJoinObservation($id_utilisateur = null, $criteres = array(), $debut = 0 , $limite = 50) {
|
44 |
public function rechercherImagesJoinObservation($id_utilisateur = null, $criteres = array(), $debut = 0 , $limite = 50) {
|
45 |
$ordre = (isset($criteres['tri']) && $criteres['tri']) ? $criteres['tri'] : '';
|
45 |
$ordre = (isset($criteres['tri']) && $criteres['tri']) ? $criteres['tri'] : '';
|
46 |
unset($criteres['tri']);
|
46 |
unset($criteres['tri']);
|
47 |
$direction = (isset($criteres['dir']) && $criteres['dir']) ? $criteres['dir'] : 'ASC';
|
- |
|
- |
|
47 |
$direction = (isset($criteres['dir']) && $criteres['dir']) ? $criteres['dir'] : 'ASC';
|
48 |
unset($criteres['dir']);
|
48 |
unset($criteres['dir']);
|
49 |
|
49 |
$imgUrlTplBase = explode('%', $this->config['settings']['celImgUrlTpl'])[0];
|
50 |
$debut = ($debut < 0) ? 0 : $debut;
|
50 |
$debut = ($debut < 0) ? 0 : $debut;
|
51 |
$requete_recherche_images = 'SELECT ci.`id_image` as id_photo, co.guid,
|
51 |
$requete_recherche_images = 'SELECT ci.`id_image` as id_photo, co.guid,
|
52 |
`id_observation` as id_obs, `nom_sel`, `nom_sel_nn`, `zone_geo` as localisation, `latitude`, `longitude`,
|
52 |
`id_observation` as id_obs, `nom_sel`, `nom_sel_nn`, `zone_geo` as localisation, `latitude`, `longitude`,
|
53 |
`date_observation` as date_obs, `commentaire`, `certitude`, `grade` as fiabilite, programme as projet,
|
53 |
`date_observation` as date_obs, `commentaire`, `certitude`, `grade` as fiabilite, programme as projet,
|
54 |
`score_identiplante` as score_ip, `url_identiplante` as url_ip, `validation_identiplante` as est_ip_valide,
|
54 |
`score_identiplante` as score_ip, `url_identiplante` as url_ip, `validation_identiplante` as est_ip_valide,
|
55 |
co.mots_cles_texte as tags_obs, `nom_ret`, `nom_ret_nn`, `famille`,`nom_referentiel`, `pays`,
|
55 |
co.mots_cles_texte as tags_obs, `nom_ret`, `nom_ret_nn`, `famille`,`nom_referentiel`, `pays`,
|
56 |
`ce_zone_geo` as code_insee, `dept`, `lieudit`, `station`, `milieu`, `altitude`, `localisation_precision`,
|
56 |
`ce_zone_geo` as code_insee, `dept`, `lieudit`, `station`, `milieu`, `altitude`, `localisation_precision`,
|
57 |
`localisation_floutage`, `localisation_coherence`, `abondance`, `phenologie`, `spontaneite`,
|
57 |
`localisation_floutage`, `localisation_coherence`, `abondance`, `phenologie`, `spontaneite`,
|
58 |
`type_donnees`, `biblio`, `source`, `herbier`, `determinateur`, `observateur`, `observateur_structure`,
|
58 |
`type_donnees`, `biblio`, `source`, `herbier`, `determinateur`, `observateur`, `observateur_structure`,
|
59 |
`ce_utilisateur` as id_utilisateur, `courriel_utilisateur` as mail_utilisateur, `pseudo_utilisateur` as nom_utilisateur,
|
59 |
`ce_utilisateur` as id_utilisateur, `courriel_utilisateur` as mail_utilisateur, `pseudo_utilisateur` as nom_utilisateur,
|
60 |
ci.`nom_original`, ci.`date_prise_de_vue` as date_photo, "Creative Commons BY-SA (2.0)" as licence,
|
60 |
ci.`nom_original`, ci.`date_prise_de_vue` as date_photo, "Creative Commons BY-SA (2.0)" as licence,
|
61 |
concat(`nom_sel`, " par ", `pseudo_utilisateur`, " [CC BY-SA 2.0 FR], via Tela Botanica") as attribution,
|
61 |
concat(`nom_sel`, " par ", `pseudo_utilisateur`, " [CC BY-SA 2.0 FR], via Tela Botanica") as attribution,
|
62 |
concat("https://api.tela-botanica.org/img:", lpad(ci.id_image, 9, "0"), "O,") as url_photo, ci.`mots_cles_texte` as tags_photo ';
|
62 |
concat("'.$imgUrlTplBase.'", lpad(ci.id_image, 9, "0"), "O") as url_photo, ci.`mots_cles_texte` as tags_photo ';
|
63 |
|
63 |
|
64 |
$requete_recherche_images .= $this->fabriquerRequeteJointureDblObs();
|
64 |
$requete_recherche_images .= $this->fabriquerRequeteJointureDblObs();
|
65 |
$requete_recherche_images .= ($id_utilisateur != null) ? 'AND co.ce_utilisateur = '.Cel::db()->proteger($id_utilisateur) : '';
|
65 |
$requete_recherche_images .= ($id_utilisateur != null) ? 'AND co.ce_utilisateur = '.Cel::db()->proteger($id_utilisateur) : '';
|
66 |
|
66 |
|
67 |
|
67 |
|
68 |
$sous_requete_recherche = $this->fabriquerSousRequeteRecherche($id_utilisateur, $criteres);
|
68 |
$sous_requete_recherche = $this->fabriquerSousRequeteRecherche($id_utilisateur, $criteres);
|
69 |
$requete_recherche_images .= $sous_requete_recherche;
|
69 |
$requete_recherche_images .= $sous_requete_recherche;
|
70 |
|
70 |
|
71 |
if (!empty($ordre)) {
|
71 |
if (!empty($ordre)) {
|
72 |
$requete_recherche_images .= ' ORDER BY '.$ordre.' '.$direction;
|
72 |
$requete_recherche_images .= ' ORDER BY '.$ordre.' '.$direction;
|
73 |
}
|
73 |
}
|
74 |
$requete_recherche_images .= ' LIMIT '.$debut.','.$limite;
|
74 |
$requete_recherche_images .= ' LIMIT '.$debut.','.$limite;
|
75 |
|
75 |
|
76 |
$resultats_images = array();
|
76 |
$resultats_images = array();
|
77 |
$resultats_images = Cel::db()->requeter($requete_recherche_images);
|
77 |
$resultats_images = Cel::db()->requeter($requete_recherche_images);
|
78 |
|
78 |
|
Line 79... |
Line 79... |
79 |
return $resultats_images;
|
79 |
return $resultats_images;
|
80 |
}
|
80 |
}
|
81 |
|
81 |
|
Line 140... |
Line 140... |
140 |
'WHERE 1 ';
|
140 |
'WHERE 1 ';
|
141 |
return $requete;
|
141 |
return $requete;
|
142 |
}
|
142 |
}
|
Line 143... |
Line 143... |
143 |
|
143 |
|
144 |
private function fabriquerRequeteJointureDblObs() {
|
144 |
private function fabriquerRequeteJointureDblObs() {
|
145 |
$requete = 'FROM cel_images_export ci '.
|
145 |
$requete = 'FROM cel_images_export ci '.
|
146 |
'JOIN cel_export_total co '.
|
146 |
'JOIN cel_export_total co '.
|
147 |
'ON ci.ce_observation = co.id_observation '.
|
147 |
'ON ci.ce_observation = co.id_observation '.
|
148 |
'WHERE 1 ';
|
148 |
'WHERE 1 ';
|
149 |
return $requete;
|
149 |
return $requete;
|
Line 150... |
Line 150... |
150 |
}
|
150 |
}
|
151 |
|
151 |
|
152 |
public function obtenirInformationsObservationsAssociees($id_utilisateur, $id_image) {
|
152 |
public function obtenirInformationsObservationsAssociees($id_utilisateur, $id_image) {
|
Line 218... |
Line 218... |
218 |
case "transmission":
|
218 |
case "transmission":
|
219 |
$sous_requete .= 'co.transmission = '.Cel::db()->proteger($valeur) ;
|
219 |
$sous_requete .= 'co.transmission = '.Cel::db()->proteger($valeur) ;
|
220 |
$sous_requete .= ' AND ';
|
220 |
$sous_requete .= ' AND ';
|
221 |
break;
|
221 |
break;
|
222 |
case "standard":
|
222 |
case "standard":
|
223 |
$sous_requete .= 'co.donnees_standard = '.Cel::db()->proteger($valeur) ;
|
223 |
$sous_requete .= 'co.donnees_standard = '.Cel::db()->proteger($valeur) ;
|
224 |
$sous_requete .= ' AND ';
|
224 |
$sous_requete .= ' AND ';
|
225 |
break;
|
225 |
break;
|
226 |
case "taxon":
|
226 |
case "taxon":
|
227 |
$valeur = str_replace('indetermine','null',$valeur);
|
227 |
$valeur = str_replace('indetermine','null',$valeur);
|
228 |
$sous_requete .= ' (';
|
228 |
$sous_requete .= ' (';
|
229 |
$sous_requete .= 'co.nom_ret LIKE '.Cel::db()->proteger($valeur.'%') ;
|
229 |
$sous_requete .= 'co.nom_ret LIKE '.Cel::db()->proteger($valeur.'%') ;
|
230 |
$sous_requete .= ' OR ' ;
|
230 |
$sous_requete .= ' OR ' ;
|
Line 254... |
Line 254... |
254 |
case "famille":
|
254 |
case "famille":
|
255 |
$sous_requete .= 'co.famille = '.Cel::db()->proteger($valeur) ;
|
255 |
$sous_requete .= 'co.famille = '.Cel::db()->proteger($valeur) ;
|
256 |
$sous_requete .= ' AND ' ;
|
256 |
$sous_requete .= ' AND ' ;
|
257 |
break;
|
257 |
break;
|
258 |
case "tri":
|
258 |
case "tri":
|
259 |
break;
|
259 |
break;
|
260 |
case "dir":
|
260 |
case "dir":
|
261 |
break;
|
261 |
break;
|
262 |
default:
|
262 |
default:
|
263 |
$sous_requete .= 'ci.'.$nom.' = '.Cel::db()->proteger($valeur) ;
|
263 |
$sous_requete .= 'ci.'.$nom.' = '.Cel::db()->proteger($valeur) ;
|
264 |
$sous_requete .= ' AND ' ;
|
264 |
$sous_requete .= ' AND ' ;
|
265 |
break;
|
265 |
break;
|
266 |
}
|
266 |
}
|