Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 1014 Rev 1180
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
	
-
 
24
	const ARRET_SERVICE = false;
23
	
25
	
24
	/**
26
	/**
25
	* Méthode appelée avec une requête de type GET.
27
	* Méthode appelée avec une requête de type GET.
26
	* Renvoie les infos sur l'image correspondant à l'id passé en parametre
28
	* Renvoie les infos sur l'image correspondant à l'id passé en parametre
27
	* @param int uid[0] : utilisateur obligatoire
29
	* @param int uid[0] : utilisateur obligatoire
28
	* @param int uid[1] : identifiant image obligatoire
30
	* @param int uid[1] : identifiant image obligatoire
29
	*/
31
	*/
30
	public function getElement($uid)
32
	public function getElement($uid)
31
	{
33
	{
32
		// Controle detournement utilisateur
34
		// Controle detournement utilisateur
33
	   	$this->controleUtilisateur($uid[0]);
35
	   	$this->controleUtilisateur($uid[0]);
34
	   	
36
	   	
35
	   	if(!isset($uid[0]) || !isset($uid[1])) {
37
	   	if(!isset($uid[0]) || !isset($uid[1])) {
36
	   		return;	
38
	   		return;	
37
	   	}
39
	   	}
38
	   	
40
	   	
39
	   	$chercheur_image = new RechercheImage($this->config);
41
	   	$chercheur_image = new RechercheImage($this->config);
40
	   	
42
	   	
41
	   	$parametres = array('ordre' => $uid[1]);
43
	   	$parametres = array('ordre' => $uid[1]);
42
	   	
44
	   	
43
	   	$retour = null;
45
	   	$retour = null;
44
	   	$image_recherchee = $chercheur_image->rechercherImages($uid[0], $parametres, 0, 1);		
46
	   	$image_recherchee = $chercheur_image->rechercherImages($uid[0], $parametres, 0, 1);		
45
	   	if(count($image_recherchee) > 0) {
47
	   	if(count($image_recherchee) > 0) {
46
	   		$retour = $image_recherchee[0];
48
	   		$retour = $image_recherchee[0];
47
	   	}
49
	   	}
48
	   	
50
	   	
49
		$this->envoyerJson($retour);			
51
		$this->envoyerJson($retour);			
50
		return true;	
52
		return true;	
51
	}
53
	}
52
 
54
 
53
	/**
55
	/**
54
	* Méthode appelée avec une requête de type POST avec un identifiant d'image.
56
	* Méthode appelée avec une requête de type POST avec un identifiant d'image.
55
	* Met a jour l'image correspondant à l'id passé en paramètre avec les valeurs passées dans le post
57
	* Met a jour l'image correspondant à l'id passé en paramètre avec les valeurs passées dans le post
56
	* 
58
	* 
57
	* @param int $uid[0] identifiant utilisateur
59
	* @param int $uid[0] identifiant utilisateur
58
	* @param int $uid[1] ordre de l'image relatif à l'utilisateur
60
	* @param int $uid[1] ordre de l'image relatif à l'utilisateur
59
	* @param pairs array tableau contenant les valeurs de metadonnées à modifier
61
	* @param pairs array tableau contenant les valeurs de metadonnées à modifier
60
	*/
62
	*/
61
	public function updateElement($uid,$pairs)
63
	public function updateElement($uid,$pairs)
62
	{
64
	{
63
		// Controle detournement utilisateur
65
		// Controle detournement utilisateur
64
		$this->controleUtilisateur($uid[0]);
66
		$this->controleUtilisateur($uid[0]);
65
		
67
		
66
		if(count($pairs) == 0 || !isset($uid[1])) {
68
		if(count($pairs) == 0 || !isset($uid[1])) {
67
			return;	
69
			return;	
68
		}
70
		}
69
		
71
		
70
		$gestionnaire_image = new GestionImage($this->config);
72
		$gestionnaire_image = new GestionImage($this->config);
71
		$resultat_mise_a_jour = $gestionnaire_image->modifierImage($uid[0],$uid[1],$pairs);
73
		$resultat_mise_a_jour = $gestionnaire_image->modifierImage($uid[0],$uid[1],$pairs);
72
		
74
		
73
		$retour = false;
75
		$retour = false;
74
		if ($resultat_mise_a_jour) {
76
		if ($resultat_mise_a_jour) {
75
			$retour = 'OK';
77
			$retour = 'OK';
76
		}
78
		}
77
		
79
		
78
		$this->envoyer($retour);
80
		$this->envoyer($retour);
79
	}
81
	}
80
	
82
	
81
	/**
83
	/**
82
	* Méthode appelée avec une requête de type PUT.
84
	* Méthode appelée avec une requête de type PUT.
83
	* Stocke une image, crée ses miniatures et enregistre ses informations
85
	* Stocke une image, crée ses miniatures et enregistre ses informations
84
	* Renvoie l'identifiant d'image nouvellement crée en cas de succès
86
	* Renvoie l'identifiant d'image nouvellement crée en cas de succès
85
	* 
87
	* 
86
	* @param $pairs array tableau contenant les valeurs de metadonnées à ajouter
88
	* @param $pairs array tableau contenant les valeurs de metadonnées à ajouter
87
	*/
89
	*/
88
	function createElement($pairs)
90
	function createElement($pairs)
89
	{
91
	{
-
 
92
		
-
 
93
		if(self::ARRET_SERVICE) {
-
 
94
			header('Status: 503 Service Temporarily Unavailable');
-
 
95
			echo "L'envoi d'images au cel est temporairement désactivé";
-
 
96
			exit;
-
 
97
		}
90
		// Controle detournement utilisateur
98
		// Controle detournement utilisateur
91
		$this->controleUtilisateur($pairs['ce_utilisateur']);
99
		$this->controleUtilisateur($pairs['ce_utilisateur']);
92
				
100
				
93
		foreach ($_FILES as $file) {
101
		foreach ($_FILES as $file) {
94
			$infos_fichier = $file ;
102
			$infos_fichier = $file ;
95
		}
103
		}
96
		
104
		
97
		$gestionnaire_image = new GestionImage($this->config);
105
		$gestionnaire_image = new GestionImage($this->config);
98
		$id_utilisateur = $pairs['ce_utilisateur'];
106
		$id_utilisateur = $pairs['ce_utilisateur'];
99
		
107
		
100
		if ($gestionnaire_image->ajouterImage($id_utilisateur, $infos_fichier)) {
108
		if ($gestionnaire_image->ajouterImage($id_utilisateur, $infos_fichier)) {
101
			
109
			
102
			// l'upload demande de court-circuiter le fonctionnement normal de JREST
110
			// l'upload demande de court-circuiter le fonctionnement normal de JREST
103
			// en quittant directement après l'envoi
111
			// en quittant directement après l'envoi
104
			$this->envoyerMessageCreationEffectuee();
112
			$this->envoyerMessageCreationEffectuee();
105
			exit;
113
			exit;
106
		}
114
		}
107
	}
115
	}
108
	
116
	
109
	private function envoyerMessageCreationEffectuee() {
117
	private function envoyerMessageCreationEffectuee() {
110
			
118
			
111
		header('HTTP/1.0 200 Created');
119
		header('HTTP/1.0 200 Created');
112
		echo 'OK';
120
		echo 'OK';
113
		exit() ;
121
		exit() ;
114
	}
122
	}
115
 
123
 
116
	/**
124
	/**
117
	* Méthode appelée avec une requête de type DELETE.
125
	* 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
126
	* 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
127
	* Supporte la suppression multiple en passant plusieurs numéros séparés par des virgules
120
    * 
128
    * 
121
    * @param int uid[0] id utilisateur
129
    * @param int uid[0] id utilisateur
122
	* @param string uid[1] : ordre(s) image(s) obligatoire(s) séparés par des virgules
130
	* @param string uid[1] : ordre(s) image(s) obligatoire(s) séparés par des virgules
123
	* 
131
	* 
124
	*/
132
	*/
125
	function deleteElement($uid){
133
	function deleteElement($uid){
-
 
134
 
-
 
135
		if(self::ARRET_SERVICE) {
-
 
136
			header('Status: 503 Service Temporarily Unavailable');
-
 
137
			echo "L'envoi d'images au cel est temporairement désactivé";
-
 
138
			exit;
126
 
139
		}
127
	 	// Controle detournement utilisateur
140
	 	// Controle detournement utilisateur
128
		$this->controleUtilisateur($uid[0]);
141
		$this->controleUtilisateur($uid[0]);
129
 
142
 
130
		if (!isset($uid[1]) || !$this->EstUneSuiteIdentifiantsImage($uid[1])) {
143
		if (!isset($uid[1]) || !$this->EstUneSuiteIdentifiantsImage($uid[1])) {
131
			return;
144
			return;
132
		}
145
		}
133
		
146
		
134
		$ordres_images = explode(',',$uid[1]);
147
		$ordres_images = explode(',',$uid[1]);
135
 
148
 
136
	    $gestionnaire_image = new GestionImage($this->config);
149
	    $gestionnaire_image = new GestionImage($this->config);
137
	    $suppression_image = $gestionnaire_image->supprimerImage($uid[0], $ordres_images);
150
	    $suppression_image = $gestionnaire_image->supprimerImage($uid[0], $ordres_images);
138
 
151
 
139
		$this->envoyer('OK');
152
		$this->envoyer('OK');
140
	}
153
	}
141
	
154
	
142
	private function estUneSuiteIdentifiantsImage($chaine) {
155
	private function estUneSuiteIdentifiantsImage($chaine) {
143
		
156
		
144
		// un ensemble d'identifiants est une suite d'identifiants séparés par des virgules
157
		// un ensemble d'identifiants est une suite d'identifiants séparés par des virgules
145
		// sans virgule terminale
158
		// sans virgule terminale
146
		$reg_exp = "/^(([0-9])+,)*([0-9])+$/";
159
		$reg_exp = "/^(([0-9])+,)*([0-9])+$/";
147
		
160
		
148
		return preg_match($reg_exp, $chaine);	
161
		return preg_match($reg_exp, $chaine);	
149
	}
162
	}
150
}
163
}
151
?>
164
?>