Subversion Repositories eFlore/Applications.cel

Rev

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

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