Rev 996 | Rev 1327 | 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 Aurélien 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/*//*** InventoryImageLink.php** in : utf8* out : utf8** Cas d'utilisation :* Service de liaisons d'images à des observations** 2: Le service lie une ou plusieurs images à une ou plusieurs observations* 3: Le service renvoie les observations liées à une image*/class InventoryImageLink extends Cel {function createElement($pairs){// Controle detournement utilisateur$this->controleUtilisateur($pairs['ce_utilisateur']);$ids_images = $pairs['id_image'] ;$ids_images = rtrim($ids_images,',') ;$ids_images_liste = explode(",",$ids_images) ;$utilisateur = $pairs['ce_utilisateur'] ;$ids_observations = $pairs['id_observation'] ;$ids_observations = rtrim($ids_observations,',') ;$ids_observations_liste = explode(",",$ids_observations) ;$retour = false;foreach($ids_images_liste as $image){foreach($ids_observations_liste as $observation){$requete_creation_lien = 'INSERT INTO cel_obs_images (id_image, id_utilisateur, id_observation, date_liaison) '.'VALUES '.'('.$this->proteger($image).','.$this->proteger($utilisateur).','.$this->proteger($observation).', NOW()) '.'ON DUPLICATE KEY UPDATE id_image = id_image' ;$resultat_creation_lien = $this->executer($requete_creation_lien);if ($resultat_creation_lien) {$retour = "OK";}}}echo $retour ;exit ;}/*** renvoie les numeros des images liées à une observation ou l'inverse, suivant le paramètre* uid[0] : utilisateur obligatoire* uid[1] : ordre_observation=valeur ou bien id_image=valeur**/function getElement($uid){// Controle detournement utilisateur$this->controleUtilisateur($uid[0]);if($uid) {$param = $uid[1] ;$tab_param = explode('=',$param) ;$field = $tab_param[0] ;$value = $tab_param[1] ;$requete_selection_liaison = "" ;if ($field == 'id_observation'){$column = 'id_image' ;$requete_selection_liaison = 'SELECT id_image, hauteur , largeur '.'FROM cel_images '.'WHERE id_image IN ( '.'SELECT id_image '.'FROM cel_obs_images '.'WHERE id_observation = '.$this->proteger($value).' '.'AND id_utilisateur = '.$this->proteger($uid[0]).' '.')';}else{$column = 'id_observation' ;$requete_selection_liaison = 'SELECT * from cel_obs WHERE id_observation IN (SELECT '.$column.' FROM cel_obs_images WHERE '.$field.' = '.$this->proteger($value).') AND ce_utilisateur = '.$this->proteger($uid[0]).' ' ;}}$resultat_selection_liaison = $this->requeter($requete_selection_liaison);$liaisons = array();if (is_array($resultat_selection_liaison) && count($resultat_selection_liaison) > 0) {$liaisons = $resultat_selection_liaison;}$this->envoyerJson($liaisons);return true;}function updateElement($uid,$pairs){}/*** Supprimme une ou plusieurs liaisons entre images et observations* uid[0] : utilisateur obligatoire* uid[1] : identifiant(s) image(s) obligatoire(s)* uid[2] : identifiant(s) observations**/function deleteElement($uid){// Controle detournement utilisateur$this->controleUtilisateur($uid[0]);$id_img = $uid[1] ;$id_obs = $this->proteger($uid[2]) ;$id = $uid[0] ;if (isset($id)) {$requete_suppression_lien = "DELETE FROM cel_obs_images "."WHERE id_image IN (".$id_img.") "."AND id_observation IN (".$id_obs.") AND coi_ce_utilisateur = '".$id."'" ;}$resultat_suppression_lien = $this->executer($requete_suppression_lien);$retour = false;if ($resultat_suppression_lien) {$retour = "OK";}echo $retour;exit() ;}}?>