Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 2457 → Rev 2458

/trunk/jrest/services/InventoryImage.php
1,24 → 1,20
<?php
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel //
 
// declare(encoding='UTF-8');
/**
* 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
*
*/
* Service recherche et ajout d'image a partir de divers critères.
*
* @internal Mininum PHP version : 5.2
* @category CEL
* @package Services
* @subpackage Images
* @version 0.1
* @author Mathias CHOUET <mathias@tela-botanica.org>
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @author Aurelien PERONNET <aurelien@tela-botanica.org>
* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>
* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
* @copyright 1999-2014 Tela Botanica <accueil@tela-botanica.org>
*/
class InventoryImage extends Cel {
 
/**
27,25 → 23,21
* @param int uid[0] : utilisateur obligatoire
* @param int uid[1] : identifiant image obligatoire
*/
public function getElement($uid)
{
public function getElement($uid) {
// Controle detournement utilisateur
$this->controleUtilisateur($uid[0]);
$this->controleUtilisateur($uid[0]);
 
if(!isset($uid[0]) || !isset($uid[1])) {
return;
}
if (!isset($uid[0]) || !isset($uid[1])) {
return;
}
$parametres = array('ordre' => $uid[1]);
$retour = null;
$chercheurImage = new RechercheImage($this->config);
$image_recherchee = $chercheurImage->rechercherImages($uid[0], $parametres, 0, 1);
if (count($image_recherchee) > 0) {
$retour = $image_recherchee[0];
}
 
$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;
}
58,17 → 50,16
* @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)
{
public function updateElement($uid,$pairs) {
// Controle detournement utilisateur
$this->controleUtilisateur($uid[0]);
 
if(count($pairs) == 0 || !isset($uid[1])) {
if (count($pairs) == 0 || !isset($uid[1])) {
return false;
}
 
$gestionnaire_image = new GestionImage($this->config);
$resultat_mise_a_jour = $gestionnaire_image->modifierImage($uid[0],$uid[1],$pairs);
$gestionnaireImage = new GestionImage($this->config);
$resultat_mise_a_jour = $gestionnaireImage->modifierImage($uid[0],$uid[1],$pairs);
 
$retour = false;
$ok = false;
88,10 → 79,8
*
* @param $pairs array tableau contenant les valeurs de metadonnées à ajouter
*/
function createElement($pairs)
{
 
if(self::ARRET_SERVICE) {
public 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;
103,37 → 92,34
$infos_fichier = $file ;
}
 
$gestionnaire_image = new GestionImage($this->config);
$gestionnaireImage = new GestionImage($this->config);
$id_utilisateur = $pairs['ce_utilisateur'];
 
if ($gestionnaire_image->ajouterImage($id_utilisateur, $infos_fichier)) {
 
if ($gestionnaireImage->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;
exit();
}
}
 
private function envoyerMessageCreationEffectuee() {
 
header('HTTP/1.0 200 Created');
echo 'OK';
exit() ;
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) {
* 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
*
*/
public 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;
140,26 → 126,20
}
// Controle detournement utilisateur
$this->controleUtilisateur($uid[0]);
 
if (!isset($uid[1]) || !$this->EstUneSuiteIdentifiantsImage($uid[1])) {
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($ids_images);
 
$gestionnaireImage = new GestionImage($this->config);
$gestionnaireImage->supprimerImage($ids_images);
$this->envoyer('OK');
}
 
/** Un ensemble d'identifiants est une suite d'identifiants séparés par des virgules
* sans virgule terminale
*/
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);
}
}
?>
}