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() { |