* @author Jean-Pascal MILCENT * @author Aurelien PERONNET * @license GPL v3 * @license CECILL v2 * @copyright 1999-2014 Tela Botanica */ class CelWidgetImage extends Cel { const start_defaut = 0; const limit_defaut = 100; const tri_defaut = 'ci.date_creation'; const dir_defaut = 'DESC'; public function getRessource() { } public function getElement($uid) { // restriction aux observations publiques $criteres = array('transmission' => '1'); if ($uid[0] != '*' && empty($_GET)) { header("content-type: application/json"); $images_json = json_encode(array()); print $images_json; exit(); } $this->start = isset($_GET['start']) ? $_GET['start'] : self::start_defaut; $this->limit = isset($_GET['limit']) ? $_GET['limit'] : self::limit_defaut; $criteres['recherche'] = isset($_GET['recherche']) ? $_GET['recherche'] : null; $criteres['taxon'] = isset($_GET['taxon']) ? $_GET['taxon'] : null; $criteres['num_nom'] = isset($_GET['num_nom']) ? $_GET['num_nom'] : null; $criteres['num_nom'] = isset($_GET['num_taxon']) ? $_GET['num_taxon'] : null; //à faire $criteres['referentiel'] = isset($_GET['referentiel']) ? $_GET['referentiel'] : null; $criteres['date'] = isset($_GET['date']) ? $_GET['date'] : null; $criteres['date_deb'] = isset($_GET['date_deb']) ? $_GET['date_deb'] : null; $criteres['date_fin'] = isset($_GET['date_fin']) ? $_GET['date_fin'] : null; $criteres['annee'] = isset($_GET['annee']) ? $_GET['annee'] : null; // date debut - fin $criteres['zone_geo'] = isset($_GET['commune']) ? $_GET['commune'] : null; $criteres['dept'] = isset($_GET['dept']) ? $_GET['dept'] : null; // separe par , $criteres['pays'] = isset($_GET['pays']) ? $_GET['pays'] : null; $criteres['auteur'] = isset($_GET['auteur']) ? $_GET['auteur'] : null; $criteres['programme'] = isset($_GET['programme']) ? $_GET['programme'] : null; $criteres['projet'] = isset($_GET['projet']) ? $_GET['projet'] : null; $criteres['mots_cles'] = isset($_GET['tag']) ? $_GET['tag'] : null; $criteres['mots_cles'] = isset($_GET['mots_cles']) ? $_GET['mots_cles'] : null; $criteres['famille'] = isset($_GET['famille']) ? $_GET['famille'] : null; $criteres['standard'] = isset($_GET['standard']) ? $_GET['standard'] : 1; $criteres['transmission'] = 1; $criteres['tri'] = isset($_GET['tri']) ? $_GET['tri'] : self::tri_defaut; $criteres['dir'] = isset($_GET['dir']) ? $_GET['dir'] : self::dir_defaut; $chercheur_images = new RechercheImage($this->config); $total = $chercheur_images->compterImages(null, $criteres); $images = $chercheur_images->rechercherImagesJoinObservation(null, $criteres, $this->start, $this->limit); $images = $this->mettreEnForme($images); $resultat = array('total' => $total,'images' => $images); $images_json = json_encode($resultat); $images_json = str_replace('\u0000','',$images_json); header("content-type: application/json"); print $images_json; exit(); } public function mettreEnForme($images) { $retour = array(); foreach ($images as $id => $image) { $retour[$id]['id_photo'] = $image['id_photo']; unset($image['id_photo']); $retour[$id]['guid'] = $image['guid']; unset($image['guid']); $retour[$id]['nom_original'] = $image['nom_original']; unset($image['nom_original']); $retour[$id]['date_photo'] = $image['date_photo']; unset($image['date_photo']); $retour[$id]['licence'] = $image['licence']; unset($image['licence']); $retour[$id]['attribution'] = $image['attribution']; unset($image['attribution']); $retour[$id]['url_photo'] = $image['url_photo']; unset($image['url_photo']); $retour[$id]['tags_photo'] = $image['tags_photo']; unset($image['tags_photo']); $retour[$id]["utilisateur"]['id_utilisateur'] = $image['id_utilisateur']; unset($image['id_utilisateur']); $retour[$id]["utilisateur"]['mail_utilisateur'] = $image['mail_utilisateur']; unset($image['mail_utilisateur']); $retour[$id]["utilisateur"]['nom_utilisateur'] = $image['nom_utilisateur']; unset($image['nom_utilisateur']); $retour[$id]['obs'] = $image; } return $retour; } }