Subversion Repositories eFlore/Applications.cel

Rev

Rev 3928 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
3817 delphine 1
<?php
2
// declare(encoding='UTF-8');
3
/**
4
 * Service recherche d'images publique a partir de divers critères.
5
 *
6
 * @internal   Mininum PHP version : 5.2
7
 * @category   CEL
8
 * @package    Services
9
 * @subpackage Images
10
 * @version    0.1
11
 * @author     Mathias CHOUET <mathias@tela-botanica.org>
12
 * @author     Jean-Pascal MILCENT <jpm@tela-botanica.org>
13
 * @author     Aurelien PERONNET <aurelien@tela-botanica.org>
14
 * @license    GPL v3 <http://www.gnu.org/licenses/gpl.txt>
15
 * @license    CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
16
 * @copyright  1999-2014 Tela Botanica <accueil@tela-botanica.org>
17
 */
18
class CelWidgetImage extends Cel {
19
 
20
	const start_defaut = 0;
21
	const limit_defaut = 100;
22
	const tri_defaut = 'ci.date_creation';
23
	const dir_defaut = 'DESC';
24
 
25
	public function getRessource() {
26
 
27
	}
28
 
29
	public function getElement($uid) {
30
		// restriction aux observations publiques
31
		$criteres = array('transmission' => '1');
32
 
33
		if ($uid[0] != '*' && empty($_GET)) {
34
			header("content-type: application/json");
35
			$images_json = json_encode(array());
36
			print $images_json;
37
			exit();
38
		}
39
 
40
		$this->start = isset($_GET['start']) ? $_GET['start'] : self::start_defaut;
41
		$this->limit = isset($_GET['limit']) ? $_GET['limit'] : self::limit_defaut;
42
 
3836 delphine 43
 
44
		$criteres['recherche'] = isset($_GET['recherche']) ? $_GET['recherche'] : null;
45
		$criteres['taxon'] = isset($_GET['taxon']) ? $_GET['taxon'] : null;
3992 delphine 46
		$criteres['num_nom'] = isset($_GET['num_nom']) ? $_GET['num_nom'] : null;
47
		$criteres['taxon'] = isset($_GET['num_taxon']) ? $_GET['num_taxon'] : null; //à faire
3836 delphine 48
		$criteres['referentiel'] = isset($_GET['referentiel']) ? $_GET['referentiel'] : null;
49
		// date debut - fin
50
		$criteres['zone_geo'] = isset($_GET['commune']) ? $_GET['commune'] : null;
3992 delphine 51
		$criteres['dept'] = isset($_GET['dept']) ? $_GET['dept'] : null; // separe par ,
3836 delphine 52
		$criteres['pays'] = isset($_GET['pays']) ? $_GET['pays'] : null;
53
		$criteres['auteur'] = isset($_GET['auteur']) ? $_GET['auteur'] : null;
54
		$criteres['programme'] = isset($_GET['programme']) ? $_GET['programme'] : null;
3928 delphine 55
		$criteres['projet'] = isset($_GET['projet']) ? $_GET['projet'] : null;
3817 delphine 56
		$criteres['mots_cles'] = isset($_GET['tag']) ? $_GET['tag'] : null;
3992 delphine 57
		$criteres['mots_cles'] = isset($_GET['mots_cles']) ? $_GET['mots_cles'] : null; // à faire
3817 delphine 58
		$criteres['famille'] = isset($_GET['famille']) ? $_GET['famille'] : null;
59
		$criteres['standard'] = isset($_GET['standard']) ? $_GET['standard'] : 1;
3992 delphine 60
		$criteres['transmission'] = 0;
3817 delphine 61
		$criteres['tri'] = isset($_GET['tri']) ? $_GET['tri'] : self::tri_defaut;
62
		$criteres['dir'] = isset($_GET['dir']) ? $_GET['dir'] : self::dir_defaut;
63
 
64
		$chercheur_images = new RechercheImage($this->config);
3992 delphine 65
		$total = $chercheur_images->compterImages(null, $criteres);
3817 delphine 66
		$images = $chercheur_images->rechercherImagesJoinObservation(null, $criteres, $this->start, $this->limit);
3836 delphine 67
        $images = $this->mettreEnForme($images);
3818 delphine 68
 
3817 delphine 69
		$resultat = array('total' => $total,'images' => $images);
70
		$images_json = json_encode($resultat);
71
		$images_json = str_replace('\u0000','',$images_json);
72
 
73
		header("content-type: application/json");
74
		print $images_json;
75
		exit();
76
	}
3818 delphine 77
	public function mettreEnForme($images) {
3836 delphine 78
	    $retour = array();
79
	    foreach ($images as $id => $image) {
80
	       $retour[$id]['id_photo'] = $image['id_photo'];
81
	       unset($image['id_photo']);
82
	       $retour[$id]['guid'] = $image['guid'];
83
	       unset($image['guid']);
84
	       $retour[$id]['nom_original'] = $image['nom_original'];
85
	       unset($image['nom_original']);
86
	       $retour[$id]['date_photo'] = $image['date_photo'];
87
	       unset($image['date_photo']);
88
	       $retour[$id]['licence'] = $image['licence'];
89
	       unset($image['licence']);
90
	       $retour[$id]['attribution'] = $image['attribution'];
91
	       unset($image['attribution']);
92
	       $retour[$id]['url_photo'] = $image['url_photo'];
93
	       unset($image['url_photo']);
94
	       $retour[$id]['tags_photo'] = $image['tags_photo'];
95
	       unset($image['tags_photo']);
96
 
97
	       $retour[$id]["utilisateur"]['id_utilisateur'] = $image['id_utilisateur'];
98
	       unset($image['id_utilisateur']);
99
	       $retour[$id]["utilisateur"]['mail_utilisateur'] = $image['mail_utilisateur'];
100
	       unset($image['mail_utilisateur']);
101
	       $retour[$id]["utilisateur"]['nom_utilisateur'] = $image['nom_utilisateur'];
102
	       unset($image['nom_utilisateur']);
103
 
104
	       $retour[$id]['obs'] = $image;
105
	    }
106
	    return $retour;
3818 delphine 107
	}
3817 delphine 108
}