Rev 759 | Rev 996 | 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 utilisateursession_start();$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 utilisateursession_start();$this->controleUtilisateur($uid[0]);if($uid) {$param = $uid[1] ;$param = ltrim($param,'&') ;$tab_param = split('=',$param) ;$field = $tab_param[0] ;$value = $tab_param[1] ;$requete_selection_liaison = "" ;if ($field == 'id_observation'){$column = 'id_image' ;$requete_selection_liaison = 'SELECT cel_obs_images.id_image, hauteur , largeur '.'FROM cel_obs_images, cel_images '.'WHERE cel_obs_images.id_image = cel_images.id_image '.'AND id_observation = '.$this->proteger($value).' AND id_utilisateur = '.$this->proteger($uid[0]) ;}else{$column = 'id_observation' ;$requete_selection_liaison = 'SELECT nom_sel, nom_sel_nn, nom_ret, nom_ret_nn, nt, famille, zone_geo, ordre, date_observation, lieudit,' .'station, milieu, commentaire, transmission, ce_zone_geo 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->executer($requete_selection_liaison);$liaisons = array();if (is_array($resultat_selection_liaison) && count($resultat_selection_liaison) > 0) {$liaisons = $resultat_selection_liaison;}$retour_encode = json_encode($liaisons) ;header("content-type: text/json") ;print $retour_encode ;exit() ;}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 utilisateursession_start();$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() ;}}?>