| 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;
|