Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 2724 → Rev 2725

/trunk/jrest/bibliotheque/RechercheImage.php
16,6 → 16,17
* @copyright 1999-2014 Tela Botanica <accueil@tela-botanica.org>
*/
class RechercheImage extends Cel {
public static $tris_possibles = array(
'ordre',
'taxon',
'transmission',
'zone_geo',
'date_prise_de_vue',
'appareil_fabriquant',
'note_qualite',
'nom_original'
);
 
function rechercherImagesEtObservationAssociees($id_utilisateur = null, $criteres = array(), $debut = 0, $limite = 50) {
$images_trouvees = $this->rechercherImages($id_utilisateur, $criteres, $debut, $limite);
37,7 → 48,7
$debut = ($debut < 0) ? 0 : $debut;
$requete_recherche_images = 'SELECT ci.* ';
 
if ($this->doitJoindreTableObs($criteres)) {
if ($this->doitJoindreTableObs($criteres, $ordre)) {
$requete_recherche_images .= $this->fabriquerRequeteJointureObs();
$requete_recherche_images .= ($id_utilisateur != null) ? 'AND ci.ce_utilisateur = '.Cel::db()->proteger($id_utilisateur) : '';
} else {
84,9 → 95,11
return $nb_images;
}
 
private function doitJoindreTableObs($criteres = array()) {
private function doitJoindreTableObs($criteres = array(), $tri = "") {
$tris_obs = array('nom_sel','transmission','zone_geo');
$criteres_obs = array('zone_geo','ce_zone_geo','taxon','transmission','recherche');
return count(array_intersect(array_keys($criteres),$criteres_obs)) > 0;
return count(array_intersect(array_keys($criteres),$criteres_obs)) > 0 ||
(!empty($tri) && in_array($tri, $tris_obs));
}
 
private function fabriquerRequeteJointureObs() {