Line 45... |
Line 45... |
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 |
$imgUrlTplBase = explode('%', $this->config['settings']['celImgUrlTpl'])[0];
|
49 |
$imgUrlTplBase = explode('%', $this->config['settings']['celImgUrlTpl'])[0];
|
- |
|
50 |
|
50 |
$debut = ($debut < 0) ? 0 : $debut;
|
51 |
$debut = ($debut < 0) ? 0 : $debut;
|
51 |
$requete_recherche_images = 'SELECT ci.`id_image` as id_photo, co.guid,
|
52 |
$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`,
|
53 |
`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,
|
54 |
`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,
|
55 |
`score_identiplante` as score_ip, `url_identiplante` as url_ip, `validation_identiplante` as est_ip_valide,
|
Line 57... |
Line 58... |
57 |
`localisation_floutage`, `localisation_coherence`, `abondance`, `phenologie`, `spontaneite`,
|
58 |
`localisation_floutage`, `localisation_coherence`, `abondance`, `phenologie`, `spontaneite`,
|
58 |
`type_donnees`, `biblio`, `source`, `herbier`, `determinateur`, `observateur`, `observateur_structure`,
|
59 |
`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,
|
60 |
`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,
|
61 |
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,
|
62 |
concat(`nom_sel`, " par ", `pseudo_utilisateur`, " [CC BY-SA 2.0 FR], via Tela Botanica") as attribution,
|
62 |
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 63... |
Line 64... |
63 |
|
64 |
|
64 |
$requete_recherche_images .= $this->fabriquerRequeteJointureDblObs();
|
65 |
$requete_recherche_images .= $this->fabriquerRequeteJointureDblObs();
|
Line 221... |
Line 222... |
221 |
break;
|
222 |
break;
|
222 |
case "standard":
|
223 |
case "standard":
|
223 |
$sous_requete .= 'co.donnees_standard = '.Cel::db()->proteger($valeur) ;
|
224 |
$sous_requete .= 'co.donnees_standard = '.Cel::db()->proteger($valeur) ;
|
224 |
$sous_requete .= ' AND ';
|
225 |
$sous_requete .= ' AND ';
|
225 |
break;
|
226 |
break;
|
- |
|
227 |
case "referentiel":
|
- |
|
228 |
$sous_requete .= 'co.referentiel = '.Cel::db()->proteger($valeur) ;
|
- |
|
229 |
$sous_requete .= ' AND ';
|
- |
|
230 |
break;
|
226 |
case "taxon":
|
231 |
case "taxon":
|
227 |
$valeur = str_replace('indetermine','null',$valeur);
|
232 |
$valeur = str_replace('indetermine','null',$valeur);
|
228 |
$sous_requete .= ' (';
|
233 |
$sous_requete .= ' (';
|
229 |
$sous_requete .= 'co.nom_ret LIKE '.Cel::db()->proteger($valeur.'%') ;
|
234 |
$sous_requete .= 'co.nom_ret LIKE '.Cel::db()->proteger($valeur.'%') ;
|
230 |
$sous_requete .= ' OR ' ;
|
235 |
$sous_requete .= ' OR ' ;
|
231 |
$sous_requete .= 'co.nom_sel LIKE '.Cel::db()->proteger($valeur.'%') ;
|
236 |
$sous_requete .= 'co.nom_sel LIKE '.Cel::db()->proteger($valeur.'%') ;
|
232 |
$sous_requete .= ') AND ' ;
|
237 |
$sous_requete .= ') AND ' ;
|
233 |
break;
|
238 |
break;
|
234 |
case "auteur":
|
239 |
case "auteur":
|
- |
|
240 |
if (is_numeric($valeur)) {
|
235 |
$sous_requete .= '(co.ce_utilisateur LIKE '.Cel::db()->proteger($valeur.'%').' OR '.
|
241 |
$sous_requete .= 'co.ce_utilisateur = '.Cel::db()->proteger($valeur).' AND ';
|
- |
|
242 |
} elseif (strpos($valeur, '@') !== false) {
|
236 |
'co.courriel_utilisateur LIKE '.Cel::db()->proteger($valeur.'%').' OR '.
|
243 |
$sous_requete .= 'co.courriel_utilisateur = '.Cel::db()->proteger($valeur).
|
- |
|
244 |
' AND ';
|
- |
|
245 |
} else {
|
237 |
'co.pseudo_utilisateur LIKE '.Cel::db()->proteger($valeur.'%').
|
246 |
$sous_requete .= 'co.pseudo_utilisateur LIKE '.Cel::db()->proteger($valeur.'%').
|
238 |
') AND ';
|
247 |
' AND ';
|
- |
|
248 |
}
|
239 |
break;
|
249 |
break;
|
240 |
case "ce_zone_geo":
|
250 |
case "ce_zone_geo":
|
241 |
if($valeur == "NULL") {
|
251 |
if($valeur !== "NULL") {
|
- |
|
252 |
$depts = explode(",", $valeur);
|
- |
|
253 |
if (count($depts) == 1) {
|
242 |
$sous_requete .= "(co.ce_zone_geo IS NULL OR co.ce_zone_geo = '')";
|
254 |
$sous_requete .= '(co.ce_zone_geo = '. Cel::db()->proteger($valeur).') ';
|
243 |
} else {
|
255 |
} else {
|
244 |
$sous_requete .= '(co.ce_zone_geo LIKE '.(is_numeric($valeur) ? Cel::db()->proteger('INSEE-C:'.$valeur.'%') : Cel::db()->proteger($valeur)).') ';
|
256 |
$sous_requete .= '(co.dept in ('.$valeur.')) ';
|
- |
|
257 |
}
|
245 |
}
|
258 |
}
|
246 |
break;
|
259 |
break;
|
247 |
case "zone_geo":
|
260 |
case "zone_geo":
|
248 |
if($valeur == "NULL") {
|
261 |
if($valeur !== "NULL") {
|
249 |
$sous_requete .= "(co.zone_geo IS NULL OR co.zone_geo = '')";
|
- |
|
250 |
} else {
|
- |
|
251 |
$sous_requete .= '(co.zone_geo = '.Cel::db()->proteger($valeur).') ';
|
262 |
$sous_requete .= '(co.zone_geo = '.Cel::db()->proteger($valeur).') ';
|
252 |
}
|
263 |
}
|
253 |
break;
|
264 |
break;
|
- |
|
265 |
case "pays":
|
- |
|
266 |
if($valeur !== "NULL") {
|
- |
|
267 |
$sous_requete .= '(co.pays like '.Cel::db()->proteger($valeur.'%').') ';
|
- |
|
268 |
}
|
- |
|
269 |
break;
|
254 |
case "famille":
|
270 |
case "famille":
|
255 |
$sous_requete .= 'co.famille = '.Cel::db()->proteger($valeur) ;
|
271 |
$sous_requete .= 'co.famille = '.Cel::db()->proteger($valeur) ;
|
256 |
$sous_requete .= ' AND ' ;
|
272 |
$sous_requete .= ' AND ' ;
|
257 |
break;
|
273 |
break;
|
- |
|
274 |
case "programme":
|
- |
|
275 |
if($valeur !== "NULL") {
|
- |
|
276 |
$sous_requete .= '(co.programme = '.Cel::db()->proteger($valeur).') ';
|
- |
|
277 |
}
|
- |
|
278 |
break;
|
258 |
case "tri":
|
279 |
case "tri":
|
259 |
break;
|
280 |
break;
|
260 |
case "dir":
|
281 |
case "dir":
|
261 |
break;
|
282 |
break;
|
262 |
default:
|
283 |
default:
|