Rev 1307 | Rev 2129 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel ///*** PHP Version 5** @category PHP* @package jrest* @author Aurelien Peronnet <aurelien@tela-botanica.org>* @copyright 2010 Tela-Botanica* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL* @version SVN: <svn_id>* @link /doc/jrest/*//*** Service recherche et ajout d'image a partir de divers critères* in=utf8* out=utf8**/class InventoryImage extends Cel {/*** Méthode appelée avec une requête de type GET.* Renvoie les infos sur l'image correspondant à l'id passé en parametre* @param int uid[0] : utilisateur obligatoire* @param int uid[1] : identifiant image obligatoire*/public function getElement($uid){// Controle detournement utilisateur$this->controleUtilisateur($uid[0]);if(!isset($uid[0]) || !isset($uid[1])) {return;}$chercheur_image = new RechercheImage($this->config);$parametres = array('ordre' => $uid[1]);$retour = null;$image_recherchee = $chercheur_image->rechercherImages($uid[0], $parametres, 0, 1);if(count($image_recherchee) > 0) {$retour = $image_recherchee[0];}$this->envoyerJson($retour);return true;}/*** Méthode appelée avec une requête de type POST avec un identifiant d'image.* Met a jour l'image correspondant à l'id passé en paramètre avec les valeurs passées dans le post** @param int $uid[0] identifiant utilisateur* @param int $uid[1] ordre de l'image relatif à l'utilisateur* @param pairs array tableau contenant les valeurs de metadonnées à modifier*/public function updateElement($uid,$pairs){// Controle detournement utilisateur$this->controleUtilisateur($uid[0]);if(count($pairs) == 0 || !isset($uid[1])) {return;}$gestionnaire_image = new GestionImage($this->config);$resultat_mise_a_jour = $gestionnaire_image->modifierImage($uid[0],$uid[1],$pairs);$retour = false;if ($resultat_mise_a_jour) {$retour = 'OK';}$this->envoyer($retour);}/*** Méthode appelée avec une requête de type PUT.* Stocke une image, crée ses miniatures et enregistre ses informations* Renvoie l'identifiant d'image nouvellement crée en cas de succès** @param $pairs array tableau contenant les valeurs de metadonnées à ajouter*/function createElement($pairs){if(self::ARRET_SERVICE) {header('Status: 503 Service Temporarily Unavailable');echo "L'envoi d'images au cel est temporairement désactivé";exit;}// Controle detournement utilisateur$this->controleUtilisateur($pairs['ce_utilisateur']);foreach ($_FILES as $file) {$infos_fichier = $file ;}$gestionnaire_image = new GestionImage($this->config);$id_utilisateur = $pairs['ce_utilisateur'];if ($gestionnaire_image->ajouterImage($id_utilisateur, $infos_fichier)) {// l'upload demande de court-circuiter le fonctionnement normal de JREST// en quittant directement après l'envoi$this->envoyerMessageCreationEffectuee();exit;}}private function envoyerMessageCreationEffectuee() {header('HTTP/1.0 200 Created');echo 'OK';exit() ;}/*** Méthode appelée avec une requête de type DELETE.* Supprime les infos sur l'image et le fichier correspondant à l'ordre passé en parametre* Supporte la suppression multiple en passant plusieurs numéros séparés par des virgules** @param int uid[0] id utilisateur* @param string uid[1] : ordre(s) image(s) obligatoire(s) séparés par des virgules**/function deleteElement($uid){if(self::ARRET_SERVICE) {header('Status: 503 Service Temporarily Unavailable');echo "L'envoi d'images au cel est temporairement désactivé";exit;}// Controle detournement utilisateur$this->controleUtilisateur($uid[0]);if (!isset($uid[1]) || !$this->EstUneSuiteIdentifiantsImage($uid[1])) {return;}$ids_images = explode(',',$uid[1]);$gestionnaire_image = new GestionImage($this->config);$suppression_image = $gestionnaire_image->supprimerImage($uid[0], $ids_images);$this->envoyer('OK');}private function estUneSuiteIdentifiantsImage($chaine) {// un ensemble d'identifiants est une suite d'identifiants séparés par des virgules// sans virgule terminale$reg_exp = "/^(([0-9])+,)*([0-9])+$/";return preg_match($reg_exp, $chaine);}}?>