Subversion Repositories eFlore/Applications.cel

Rev

Rev 970 | Rev 1014 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 970 Rev 996
1
<?php
1
<?php
2
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel //
2
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel //
3
 
3
 
4
/**
4
/**
5
* PHP Version 5
5
* PHP Version 5
6
*
6
*
7
* @category  PHP
7
* @category  PHP
8
* @package   jrest
8
* @package   jrest
9
* @author    Aurelien Peronnet <aurelien@tela-botanica.org>
9
* @author    Aurelien Peronnet <aurelien@tela-botanica.org>
10
* @copyright 2010 Tela-Botanica
10
* @copyright 2010 Tela-Botanica
11
* @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
11
* @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
12
* @version   SVN: <svn_id>
12
* @version   SVN: <svn_id>
13
* @link      /doc/jrest/
13
* @link      /doc/jrest/
14
*/
14
*/
15
 
15
 
16
/**
16
/**
17
* Service recherche  et ajout d'image a partir de divers critères
17
* Service recherche  et ajout d'image a partir de divers critères
18
* in=utf8
18
* in=utf8
19
* out=utf8
19
* out=utf8
20
* 
20
* 
21
*/
21
*/
22
class InventoryImage extends Cel {
22
class InventoryImage extends Cel {
23
	
23
	
24
	/**
24
	/**
25
	* Méthode appelée avec une requête de type GET.
25
	* Méthode appelée avec une requête de type GET.
26
	* Renvoie les infos sur l'image correspondant à l'id passé en parametre
26
	* Renvoie les infos sur l'image correspondant à l'id passé en parametre
27
	* @param int uid[0] : utilisateur obligatoire
27
	* @param int uid[0] : utilisateur obligatoire
28
	* @param int uid[1] : identifiant image obligatoire
28
	* @param int uid[1] : identifiant image obligatoire
29
	*/
29
	*/
30
	public function getElement($uid)
30
	public function getElement($uid)
31
	{
31
	{
32
		// Controle detournement utilisateur
32
		// Controle detournement utilisateur
33
	   	session_start();
-
 
34
	   	$this->controleUtilisateur($uid[0]);
33
	   	$this->controleUtilisateur($uid[0]);
35
	   	
34
	   	
36
	   	if(!isset($uid[0]) || !isset($uid[1])) {
35
	   	if(!isset($uid[0]) || !isset($uid[1])) {
37
	   		return;	
36
	   		return;	
38
	   	}
37
	   	}
39
	   	
38
	   	
40
	   	$chercheur_image = new RechercheImage($this->config);
39
	   	$chercheur_image = new RechercheImage($this->config);
41
	   	
40
	   	
42
	   	$parametres = array('ordre' => $uid[1]);
41
	   	$parametres = array('ordre' => $uid[1]);
43
	   	
42
	   	
44
	   	$retour = null;
43
	   	$retour = null;
45
	   	$image_recherchee = $chercheur_image->rechercherImages($uid[0], $parametres, 0, 1);		
44
	   	$image_recherchee = $chercheur_image->rechercherImages($uid[0], $parametres, 0, 1);		
46
	   	if(count($image_recherchee) > 0) {
45
	   	if(count($image_recherchee) > 0) {
47
	   		$retour = $image_recherchee[0];
46
	   		$retour = $image_recherchee[0];
48
	   	}
47
	   	}
49
		$this->envoyer($retour,'application/json','utf-8',true);
48
		$this->envoyer($retour,'application/json','utf-8',true);
50
	}
49
	}
51
 
50
 
52
	/**
51
	/**
53
	* Méthode appelée avec une requête de type POST avec un identifiant d'image.
52
	* Méthode appelée avec une requête de type POST avec un identifiant d'image.
54
	* Met a jour l'image correspondant à l'id passé en paramètre avec les valeurs passées dans le post
53
	* Met a jour l'image correspondant à l'id passé en paramètre avec les valeurs passées dans le post
55
	* 
54
	* 
56
	* @param int $uid[0] identifiant utilisateur
55
	* @param int $uid[0] identifiant utilisateur
57
	* @param int $uid[1] ordre de l'image relatif à l'utilisateur
56
	* @param int $uid[1] ordre de l'image relatif à l'utilisateur
58
	* @param pairs array tableau contenant les valeurs de metadonnées à modifier
57
	* @param pairs array tableau contenant les valeurs de metadonnées à modifier
59
	*/
58
	*/
60
	public function updateElement($uid,$pairs)
59
	public function updateElement($uid,$pairs)
61
	{
60
	{
62
		// Controle detournement utilisateur
61
		// Controle detournement utilisateur
63
		$this->controleUtilisateur($uid[0]);
62
		$this->controleUtilisateur($uid[0]);
64
		
63
		
65
		if(count($pairs) == 0 || !isset($uid[1])) {
64
		if(count($pairs) == 0 || !isset($uid[1])) {
66
			return;	
65
			return;	
67
		}
66
		}
68
		
67
		
69
		$gestionnaire_image = new GestionImage($this->config);
68
		$gestionnaire_image = new GestionImage($this->config);
70
		$resultat_mise_a_jour = $gestionnaire_image->modifierImage($uid[0],$uid[1],$pairs);
69
		$resultat_mise_a_jour = $gestionnaire_image->modifierImage($uid[0],$uid[1],$pairs);
71
		
70
		
72
		$retour = false;
71
		$retour = false;
73
		if ($resultat_mise_a_jour) {
72
		if ($resultat_mise_a_jour) {
74
			$retour = 'OK';
73
			$retour = 'OK';
75
		}
74
		}
76
		
75
		
77
		$this->envoyer($retour);
76
		$this->envoyer($retour);
78
	}
77
	}
79
	
78
	
80
	/**
79
	/**
81
	* Méthode appelée avec une requête de type PUT.
80
	* Méthode appelée avec une requête de type PUT.
82
	* Stocke une image, crée ses miniatures et enregistre ses informations
81
	* Stocke une image, crée ses miniatures et enregistre ses informations
83
	* Renvoie l'identifiant d'image nouvellement crée en cas de succès
82
	* Renvoie l'identifiant d'image nouvellement crée en cas de succès
84
	* 
83
	* 
85
	* @param $pairs array tableau contenant les valeurs de metadonnées à ajouter
84
	* @param $pairs array tableau contenant les valeurs de metadonnées à ajouter
86
	*/
85
	*/
87
	function createElement($pairs)
86
	function createElement($pairs)
88
	{
87
	{
89
		// Controle detournement utilisateur
88
		// Controle detournement utilisateur
90
		session_start();
-
 
91
		$this->controleUtilisateur($pairs['ce_utilisateur']);
89
		$this->controleUtilisateur($pairs['ce_utilisateur']);
92
				
90
				
93
		foreach ($_FILES as $file) {
91
		foreach ($_FILES as $file) {
94
			$infos_fichier = $file ;
92
			$infos_fichier = $file ;
95
		}
93
		}
96
		
94
		
97
		$gestionnaire_image = new GestionImage($this->config);
95
		$gestionnaire_image = new GestionImage($this->config);
98
		$id_utilisateur = $pairs['ce_utilisateur'];
96
		$id_utilisateur = $pairs['ce_utilisateur'];
99
		
97
		
100
		if ($gestionnaire_image->ajouterImage($id_utilisateur, $infos_fichier)) {
98
		if ($gestionnaire_image->ajouterImage($id_utilisateur, $infos_fichier)) {
101
			
99
			
102
			// l'upload demande de court-circuiter le fonctionnement normal de JREST
100
			// l'upload demande de court-circuiter le fonctionnement normal de JREST
103
			// en quittant directement après l'envoi
101
			// en quittant directement après l'envoi
104
			$this->envoyerMessageCreationEffectuee();
102
			$this->envoyerMessageCreationEffectuee();
105
			exit;
103
			exit;
106
		}
104
		}
107
	}
105
	}
108
	
106
	
109
	private function envoyerMessageCreationEffectuee() {
107
	private function envoyerMessageCreationEffectuee() {
110
			
108
			
111
		header('HTTP/1.0 200 Created');
109
		header('HTTP/1.0 200 Created');
112
		echo 'OK';
110
		echo 'OK';
113
		exit() ;
111
		exit() ;
114
	}
112
	}
115
 
113
 
116
	/**
114
	/**
117
	* Méthode appelée avec une requête de type DELETE.
115
	* Méthode appelée avec une requête de type DELETE.
118
	* Supprime les infos sur l'image et le fichier correspondant à l'ordre passé en parametre
116
	* Supprime les infos sur l'image et le fichier correspondant à l'ordre passé en parametre
119
	* Supporte la suppression multiple en passant plusieurs numéros séparés par des virgules
117
	* Supporte la suppression multiple en passant plusieurs numéros séparés par des virgules
120
    * 
118
    * 
121
    * @param int uid[0] id utilisateur
119
    * @param int uid[0] id utilisateur
122
	* @param string uid[1] : ordre(s) image(s) obligatoire(s) séparés par des virgules
120
	* @param string uid[1] : ordre(s) image(s) obligatoire(s) séparés par des virgules
123
	* 
121
	* 
124
	*/
122
	*/
125
	function deleteElement($uid){
123
	function deleteElement($uid){
126
 
124
 
127
	 	// Controle detournement utilisateur
125
	 	// Controle detournement utilisateur
128
	    session_start();
-
 
129
		$this->controleUtilisateur($uid[0]);
126
		$this->controleUtilisateur($uid[0]);
130
 
127
 
131
		if (!isset($uid[1]) || !$this->EstUneSuiteIdentifiantsImage($uid[1])) {
128
		if (!isset($uid[1]) || !$this->EstUneSuiteIdentifiantsImage($uid[1])) {
132
			return;
129
			return;
133
		}
130
		}
134
		
131
		
135
		$ordres_images = explode(',',$uid[1]);
132
		$ordres_images = explode(',',$uid[1]);
136
 
133
 
137
	    $gestionnaire_image = new GestionImage($this->config);
134
	    $gestionnaire_image = new GestionImage($this->config);
138
	    $suppression_image = $gestionnaire_image->supprimerImage($uid[0], $ordres_images);
135
	    $suppression_image = $gestionnaire_image->supprimerImage($uid[0], $ordres_images);
139
 
136
 
140
		$this->envoyer('OK');
137
		$this->envoyer('OK');
141
	}
138
	}
142
	
139
	
143
	private function estUneSuiteIdentifiantsImage($chaine) {
140
	private function estUneSuiteIdentifiantsImage($chaine) {
144
		
141
		
145
		// un ensemble d'identifiants est une suite d'identifiants séparés par des virgules
142
		// un ensemble d'identifiants est une suite d'identifiants séparés par des virgules
146
		// sans virgule terminale
143
		// sans virgule terminale
147
		$reg_exp = "/^(([0-9])+,)*([0-9])+$/";
144
		$reg_exp = "/^(([0-9])+,)*([0-9])+$/";
148
		
145
		
149
		return preg_match($reg_exp, $chaine);	
146
		return preg_match($reg_exp, $chaine);	
150
	}
147
	}
151
}
148
}
152
?>
149
?>