Line 57... |
Line 57... |
57 |
`ce_zone_geo` as code_insee, `dept`, `lieudit`, `station`, `milieu`, `altitude`, `localisation_precision`,
|
57 |
`ce_zone_geo` as code_insee, `dept`, `lieudit`, `station`, `milieu`, `altitude`, `localisation_precision`,
|
58 |
`localisation_floutage`, `localisation_coherence`, `abondance`, `phenologie`, `spontaneite`,
|
58 |
`localisation_floutage`, `localisation_coherence`, `abondance`, `phenologie`, `spontaneite`,
|
59 |
`type_donnees`, `biblio`, `source`, `herbier`, `determinateur`, `observateur`, `observateur_structure`,
|
59 |
`type_donnees`, `biblio`, `source`, `herbier`, `determinateur`, `observateur`, `observateur_structure`,
|
60 |
`ce_utilisateur` as id_utilisateur, `courriel_utilisateur` as mail_utilisateur, `pseudo_utilisateur` as nom_utilisateur,
|
60 |
`ce_utilisateur` as id_utilisateur, `courriel_utilisateur` as mail_utilisateur, `pseudo_utilisateur` as nom_utilisateur,
|
61 |
ci.`nom_original`, ci.`date_prise_de_vue` as date_photo, "Creative Commons BY-SA (2.0)" as licence,
|
61 |
ci.`nom_original`, ci.`date_prise_de_vue` as date_photo, "Creative Commons BY-SA (2.0)" as licence,
|
62 |
concat(`nom_sel`, " par ", `pseudo_utilisateur`, " [CC BY-SA 2.0 FR], via Tela Botanica") as attribution,
|
62 |
concat(case when `nom_sel` is null then "Indéterminée" else nom_sel end, " par ", case when pseudo_utilisateur = "" then substr(courriel_utilisateur, 1, locate("@", courriel_utilisateur)) when pseudo_utilisateur IS NULL then substr(courriel_utilisateur, 1, locate("@", courriel_utilisateur)) else pseudo_utilisateur end, concat(" [CC BY-SA 2.0 FR], via Tela Botanica")) as attribution,
|
63 |
concat("'.$imgUrlTplBase.'", lpad(ci.id_image, 9, "0"), "O,") as url_photo, ci.`mots_cles_texte` as tags_photo ';
|
63 |
concat("'.$imgUrlTplBase.'", lpad(ci.id_image, 9, "0"), "O,") as url_photo, ci.`mots_cles_texte` as tags_photo ';
|
Line 64... |
Line 64... |
64 |
|
64 |
|
65 |
$requete_recherche_images .= $this->fabriquerRequeteJointureDblObs();
|
65 |
$requete_recherche_images .= $this->fabriquerRequeteJointureDblObs($criteres);
|
Line 66... |
Line 66... |
66 |
$requete_recherche_images .= ($id_utilisateur != null) ? 'AND co.ce_utilisateur = '.Cel::db()->proteger($id_utilisateur) : '';
|
66 |
$requete_recherche_images .= ($id_utilisateur != null) ? 'AND co.ce_utilisateur = '.Cel::db()->proteger($id_utilisateur) : '';
|
67 |
|
67 |
|
Line 87... |
Line 87... |
87 |
unset($criteres['dir']);
|
87 |
unset($criteres['dir']);
|
Line 88... |
Line 88... |
88 |
|
88 |
|
89 |
$debut = ($debut < 0) ? 0 : $debut;
|
89 |
$debut = ($debut < 0) ? 0 : $debut;
|
Line 90... |
Line 90... |
90 |
$requete_recherche_images = 'SELECT ci.*, co.pseudo_utilisateur ';
|
90 |
$requete_recherche_images = 'SELECT ci.*, co.pseudo_utilisateur ';
|
91 |
|
91 |
|
Line 92... |
Line 92... |
92 |
$requete_recherche_images .= $this->fabriquerRequeteJointureObs();
|
92 |
$requete_recherche_images .= $this->fabriquerRequeteJointureObs($criteres);
|
93 |
$requete_recherche_images .= ($id_utilisateur != null) ? 'AND co.ce_utilisateur = '.Cel::db()->proteger($id_utilisateur) : '';
|
93 |
$requete_recherche_images .= ($id_utilisateur != null) ? 'AND co.ce_utilisateur = '.Cel::db()->proteger($id_utilisateur) : '';
|
Line 133... |
Line 133... |
133 |
return count(array_intersect(array_keys($criteres),$criteres_obs)) > 0 ||
|
133 |
return count(array_intersect(array_keys($criteres),$criteres_obs)) > 0 ||
|
134 |
(!empty($tri) && in_array($tri, $tris_obs));
|
134 |
(!empty($tri) && in_array($tri, $tris_obs));
|
135 |
}
|
135 |
}
|
Line 136... |
Line 136... |
136 |
|
136 |
|
137 |
private function fabriquerRequeteJointureObs($criteres) {
|
137 |
private function fabriquerRequeteJointureObs($criteres) {
|
138 |
if (isset($criteres['standard']) && $criteres['standard'] = 0 ) {
|
138 |
if (isset($criteres['standard']) && $criteres['standard'] == 0 ) {
|
139 |
$requete = 'FROM cel_images_export ci '.
|
139 |
$requete = 'FROM cel_images_export ci '.
|
140 |
'LEFT JOIN cel_export_total co '.
|
140 |
'LEFT JOIN cel_export_total co '.
|
141 |
'ON ci.ce_observation = co.id_observation '.
|
141 |
'ON ci.ce_observation = co.id_observation '.
|
142 |
'WHERE co.transmission = '.Cel::db()->proteger($criteres['transmission']);
|
142 |
'WHERE co.transmission = '.Cel::db()->proteger($criteres['transmission']);
|
Line 147... |
Line 147... |
147 |
'WHERE 1 ';
|
147 |
'WHERE 1 ';
|
148 |
}
|
148 |
}
|
149 |
return $requete;
|
149 |
return $requete;
|
150 |
}
|
150 |
}
|
Line 151... |
Line 151... |
151 |
|
151 |
|
152 |
private function fabriquerRequeteJointureDblObs() {
|
152 |
private function fabriquerRequeteJointureDblObs($criteres) {
|
153 |
if (isset($criteres['standard']) && $criteres['standard'] = 0 ) {
|
153 |
if (isset($criteres['standard']) && $criteres['standard'] == 0 ) {
|
154 |
$requete = 'FROM cel_images_export ci '.
|
154 |
$requete = 'FROM cel_images_export ci '.
|
155 |
'JOIN cel_export_total co '.
|
155 |
'JOIN cel_export_total co '.
|
156 |
'ON ci.ce_observation = co.id_observation '.
|
156 |
'ON ci.ce_observation = co.id_observation '.
|
157 |
'WHERE co.transmission = '.Cel::db()->proteger($criteres['transmission']);
|
157 |
'WHERE co.transmission = '.Cel::db()->proteger($criteres['transmission']);
|
Line 269... |
Line 269... |
269 |
} else {
|
269 |
} else {
|
270 |
$sous_requete .= 'co.pseudo_utilisateur LIKE '.Cel::db()->proteger($valeur.'%').
|
270 |
$sous_requete .= 'co.pseudo_utilisateur LIKE '.Cel::db()->proteger($valeur.'%').
|
271 |
' AND ';
|
271 |
' AND ';
|
272 |
}
|
272 |
}
|
273 |
break;
|
273 |
break;
|
274 |
case "ce_zone_geo":
|
274 |
case "dept":
|
275 |
if($valeur !== "NULL") {
|
275 |
if($valeur !== "NULL") {
|
276 |
$depts = explode(",", $valeur);
|
276 |
$depts = explode(",", $valeur);
|
277 |
if (count($depts) == 1) {
|
277 |
if (count($depts) == 1) {
|
278 |
$sous_requete .= '(co.ce_zone_geo = '. Cel::db()->proteger($valeur).') ';
|
278 |
$sous_requete .= '(co.dept = '. Cel::db()->proteger($valeur).') ';
|
279 |
} else {
|
279 |
} else {
|
280 |
$sous_requete .= '(co.dept in ('.$valeur.')) ';
|
280 |
$sous_requete .= '(co.dept in ('.$valeur.')) ';
|
281 |
}
|
281 |
}
|
282 |
}
|
282 |
}
|
283 |
break;
|
283 |
break;
|