config=$config; } function createElement($pairs) { // Controle detournement utilisateur if(!isset($_SESSION)) {session_start();} $this->controleUtilisateur($pairs['identifiant']); $DB=$this->connectDB($this->config,'cel_db'); $ids_images = $pairs['coi_ce_image'] ; $ids_images = rtrim($ids_images,',') ; $ids_images_liste = explode(",",$ids_images) ; $utilisateur = $pairs['identifiant'] ; $ids_observations = $pairs['coi_ce_observation'] ; $ids_observations = rtrim($ids_observations,',') ; $ids_observations_liste = explode(",",$ids_observations) ; foreach($ids_images_liste as $image) { foreach($ids_observations_liste as $observation) { $query = 'INSERT INTO cel_obs_images (coi_ce_image, coi_ce_utilisateur, coi_ce_observation, coi_date_liaison) VALUES ("'.$DB->escapeSimple($image).'","'.$DB->escapeSimple($utilisateur).'","'.$DB->escapeSimple($observation).'", NOW()) ON DUPLICATE KEY UPDATE coi_ce_image = coi_ce_image' ; $res =& $DB->query($query); if (PEAR::isError($res)) { die($res->getMessage()); } } } echo "OK" ; exit ; } // renvoie les numeros des images liées à une observation ou l'inverse, suivant le paramètre function getElement($uid) { // uid[0] : utilisateur obligatoire // Controle detournement utilisateur if(!isset($_SESSION)) {session_start();} $this->controleUtilisateur($uid[0]); $DB=$this->connectDB($this->config,'cel_db'); if($uid) { $param = $uid[1] ; $param = ltrim($param,'&') ; $tab_param = split('=',$param) ; $field = $tab_param[0] ; $value = $tab_param[1] ; $query = "" ; if ($field == 'coi_ce_observation') { $column = 'coi_ce_image' ; $query = 'SELECT coi_ce_image, ci_meta_height , ci_meta_width '. 'FROM cel_obs_images, cel_images '. 'WHERE coi_ce_image = ci_id_image '. 'AND coi_ce_observation = "'.$DB->escapeSimple($value).'" AND coi_ce_utilisateur ="'.$DB->escapeSimple($uid[0]).'"' ; } else { $column = 'coi_ce_observation' ; $query = 'SELECT nom_sel, num_nom_sel, nom_ret, num_nom_ret, num_taxon, famille, location, ordre, date_observation, lieudit,' . 'station, milieu, commentaire, transmission, id_location from cel_inventory WHERE ordre IN (SELECT '.$column.' FROM cel_obs_images WHERE '.$field.' = "'.$DB->escapeSimple($value).'") AND identifiant = "'.$DB->escapeSimple($uid[0]).' "' ; } } $res =& $DB->query($query); if (PEAR::isError($res)) { die($res->getMessage()); } while ($image_liee = $res->fetchrow(DB_FETCHMODE_ORDERED)) { $images_liees[] = $image_liee ; } $res = json_encode($images_liees) ; header("content-type: text/json") ; print $res ; exit() ; } // met à jour les associations entre images et observations function updateElement($uid,$pairs) { /* // Controle detournement utilisateur if(!isset($_SESSION)) {session_start();} if (($_SESSION['user']!="") && $_SESSION['user']['name']!=$uid[0]) { print "Acces interdit"; return; } $DB=$this->connectDB($this->config,'cel_db'); $query = "SELECT * FROM cel_obs_images WHERE " ; $query .= ' WHERE '.$ci_id_image.' = "'.$DB->escapeSimple($pairs['ci_id_image']).'"' ; } function deleteElement($uid) { // uid[0] : utilisateur obligatoire // uid[1] : identifiant(s) image(s) obligatoire(s) // Controle detournement utilisateur session_start(); if (($_SESSION['user']!="") && $_SESSION['user']['name']!=$uid[0]) { print "Acces interdit"; return; } $DB=$this->connectDB($this->config,'cel_db'); $id = rtrim($uid[1],",") ; if (isset($id)) { $query="DELETE FROM cel_images WHERE ci_id_image in (".$DB->escapeSimple($id) .")"; //$query = "DELETE FROM cel_obs_images WHERE coi_fk__image in (".$DB->escapeSimple($uid[1]) .")"; } $res =& $DB->query($query); if (PEAR::isError($res)) { die($res->getMessage()); } else { echo "OK" ; exit() ; } $id_fichiers = explode(",",$id) ; foreach($id_fichiers as $en_cours) { supprimer_fichier($en_cours) ; } */ } function deleteElement($uid) { // uid[0] : utilisateur obligatoire // uid[1] : identifiant(s) image(s) obligatoire(s) // uid[2] : identifiant(s) observations // Controle detournement utilisateur if(!isset($_SESSION)) {session_start();} $this->controleUtilisateur($uid[0]); $DB=$this->connectDB($this->config,'cel_db'); $id_img = $uid[1] ; $id_obs = $DB->escapeSimple($uid[2]) ; $id = $uid[0] ; if (isset($id)) { $query = "DELETE FROM cel_obs_images WHERE coi_ce_image IN (".$id_img.") AND coi_ce_observation IN (".$id_obs.") AND coi_ce_utilisateur = '".$id."'" ; } $res =& $DB->query($query); if (PEAR::isError($res)) { die($res->getMessage()); } else { echo "OK" ; exit() ; } } } ?>