Subversion Repositories eFlore/Applications.cel

Rev

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

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