Subversion Repositories eFlore/Applications.cel

Rev

Rev 898 | Rev 996 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 898 Rev 974
1
<?php
1
<?php
2
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel //
2
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel //
3
/**
3
/**
4
* PHP Version 5
4
* PHP Version 5
5
*
5
*
6
* @category  PHP
6
* @category  PHP
7
* @package   jrest
7
* @package   jrest
8
* @author    Aurélien Peronnet <aurelien@tela-botanica.org>
8
* @author    Aurélien Peronnet <aurelien@tela-botanica.org>
9
* @copyright 2010 Tela-Botanica
9
* @copyright 2010 Tela-Botanica
10
* @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
10
* @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
11
* @version   SVN: <svn_id>
11
* @version   SVN: <svn_id>
12
* @link      /doc/jrest/
12
* @link      /doc/jrest/
13
*/
13
*/
14
 
14
 
15
/**
15
/**
16
* InventoryImageLink.php
16
* InventoryImageLink.php
17
* 
17
* 
18
* in : utf8
18
* in : utf8
19
* out : utf8
19
* out : utf8
20
*
20
*
21
* Cas d'utilisation :
21
* Cas d'utilisation :
22
* Service de liaisons d'images à des observations
22
* Service de liaisons d'images à des observations
23
*
23
*
24
* 2: Le service lie une ou plusieurs images à une ou plusieurs observations
24
* 2: Le service lie une ou plusieurs images à une ou plusieurs observations
25
* 3: Le service renvoie les observations liées à une image
25
* 3: Le service renvoie les observations liées à une image
26
*/
26
*/
27
class InventoryImageLink extends Cel {
27
class InventoryImageLink extends Cel {
28
 
28
 
29
	function createElement($pairs)
29
	function createElement($pairs)
30
	{
30
	{
31
		// Controle detournement utilisateur
31
		// Controle detournement utilisateur
32
		session_start();
32
		session_start();
33
		$this->controleUtilisateur($pairs['ce_utilisateur']);
33
		$this->controleUtilisateur($pairs['ce_utilisateur']);
34
 
34
 
35
		$ids_images = $pairs['id_image'] ;
35
		$ids_images = $pairs['id_image'] ;
36
		$ids_images = rtrim($ids_images,',') ;
36
		$ids_images = rtrim($ids_images,',') ;
37
 
37
 
38
		$ids_images_liste = explode(",",$ids_images) ;
38
		$ids_images_liste = explode(",",$ids_images) ;
39
 
39
 
40
		$utilisateur = $pairs['ce_utilisateur'] ;
40
		$utilisateur = $pairs['ce_utilisateur'] ;
41
 
41
 
42
		$ids_observations = $pairs['id_observation'] ;
42
		$ids_observations = $pairs['id_observation'] ;
43
		$ids_observations = rtrim($ids_observations,',') ;
43
		$ids_observations = rtrim($ids_observations,',') ;
44
		$ids_observations_liste = explode(",",$ids_observations) ;
44
		$ids_observations_liste = explode(",",$ids_observations) ;
45
		
45
		
46
		$retour = false;
46
		$retour = false;
47
 
47
 
48
		foreach($ids_images_liste as $image)
48
		foreach($ids_images_liste as $image)
49
		{
49
		{
50
			foreach($ids_observations_liste as $observation)
50
			foreach($ids_observations_liste as $observation)
51
			{
51
			{
52
				$requete_creation_lien = 'INSERT INTO cel_obs_images (id_image, id_utilisateur, id_observation, date_liaison) '.
52
				$requete_creation_lien = 'INSERT INTO cel_obs_images (id_image, id_utilisateur, id_observation, date_liaison) '.
53
					   	 'VALUES '. 
53
					   	 'VALUES '. 
54
						 '("'.$this->proteger($image).'","'.$this->proteger($utilisateur).'","'.$this->proteger($observation).'", NOW()) '.
54
						 '('.$this->proteger($image).','.$this->proteger($utilisateur).','.$this->proteger($observation).', NOW()) '.
55
						 'ON DUPLICATE KEY UPDATE id_image = id_image' ;
55
						 'ON DUPLICATE KEY UPDATE id_image = id_image' ;
56
				
56
				
57
				$resultat_creation_lien = $this->executer($requete_creation_lien);
57
				$resultat_creation_lien = $this->executer($requete_creation_lien);
-
 
58
				
58
				if ($resultat_creation_lien) {
59
				if ($resultat_creation_lien) {
59
					$retour = "OK";
60
					$retour = "OK";
60
				}
61
				}
61
			}
62
			}
62
		}
63
		}
63
 
64
 
64
		echo $retour ;
65
		echo $retour ;
65
		exit ;
66
		exit ;
66
	}
67
	}
67
 
68
 
68
	/**
69
	/**
69
	 * renvoie les numeros des images liées à une observation ou l'inverse, suivant le paramètre
70
	 * renvoie les numeros des images liées à une observation ou l'inverse, suivant le paramètre
70
	 * uid[0] : utilisateur obligatoire
71
	 * uid[0] : utilisateur obligatoire
71
	 * uid[1] : ordre_observation=valeur ou bien id_image=valeur
72
	 * uid[1] : ordre_observation=valeur ou bien id_image=valeur
72
	 * 
73
	 * 
73
	 */ 
74
	 */ 
74
	function getElement($uid)
75
	function getElement($uid)
75
	{
76
	{
76
		// Controle detournement utilisateur
77
		// Controle detournement utilisateur
77
	    session_start();
78
	    session_start();
78
		$this->controleUtilisateur($uid[0]);
79
		$this->controleUtilisateur($uid[0]);
79
 
80
 
80
		if($uid) {
81
		if($uid) {
81
 
82
 
82
			$param = $uid[1] ;
83
			$param = $uid[1] ;
83
			$param = ltrim($param,'&') ;
-
 
84
 
84
 
85
			$tab_param = split('=',$param) ;
85
			$tab_param = split('=',$param) ;
86
 
86
 
87
			$field = $tab_param[0] ;
87
			$field = $tab_param[0] ;
88
			$value = $tab_param[1] ;
88
			$value = $tab_param[1] ;
89
 
89
 
90
			$requete_selection_liaison = "" ;
90
			$requete_selection_liaison = "" ;
91
 
91
 
92
			if ($field == 'id_observation')
92
			if ($field == 'id_observation')
93
			{
93
			{
94
				$column = 'id_image' ;
94
				$column = 'id_image' ;
95
				$requete_selection_liaison = 'SELECT cel_obs_images.id_image, hauteur , largeur '.
95
				$requete_selection_liaison = 'SELECT id_image, hauteur , largeur '.
-
 
96
						 'FROM cel_images '.
-
 
97
						 'WHERE id_image IN ( '.
-
 
98
						 	'SELECT id_image '.
96
						 'FROM cel_obs_images, cel_images '.
99
							'FROM cel_obs_images '.						 	
97
						 'WHERE cel_obs_images.id_image = cel_images.id_image '.
100
							'WHERE id_observation = '.$this->proteger($value).' '.
98
						 'AND id_observation = '.$this->proteger($value).' AND id_utilisateur = '.$this->proteger($uid[0]) ;
101
							'AND id_utilisateur = '.$this->proteger($uid[0]).' '.
-
 
102
						 ')';
99
			}
103
			}
100
			else
104
			else
101
			{
105
			{
102
				$column = 'id_observation' ;
106
				$column = 'id_observation' ;
103
				$requete_selection_liaison = 'SELECT nom_sel, nom_sel_nn, nom_ret, nom_ret_nn, nt, famille, zone_geo, ordre, date_observation, lieudit,' .
-
 
104
 				'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]).' "' ;
107
				$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]).' ' ;
105
			}
108
			}
106
 
109
 
107
		}
110
		}
108
 
111
 
109
		$resultat_selection_liaison = $this->executer($requete_selection_liaison);
112
		$resultat_selection_liaison = $this->requeter($requete_selection_liaison);
110
		
113
		
111
		$liaisons = array();
114
		$liaisons = array();
112
        if (is_array($resultat_selection_liaison) && count($resultat_selection_liaison) > 0) {
115
        if (is_array($resultat_selection_liaison) && count($resultat_selection_liaison) > 0) {
113
			$liaisons = $resultat_selection_liaison;
116
			$liaisons = $resultat_selection_liaison;
114
        }
117
        }
115
 
118
 
116
		$retour_encode = json_encode($liaisons) ;
119
		$retour_encode = json_encode($liaisons) ;
117
		header("content-type: text/json") ;
120
		header("content-type: application/json") ;
118
		print $retour_encode ;
121
		print $retour_encode ;
119
		exit() ;
122
		exit() ;
120
	}
123
	}
121
 
124
 
122
	function updateElement($uid,$pairs)
125
	function updateElement($uid,$pairs)
123
	{
126
	{
124
 
127
 
125
	}
128
	}
126
 
129
 
127
	/**
130
	/**
128
	 * Supprimme une ou plusieurs liaisons entre images et observations 
131
	 * Supprimme une ou plusieurs liaisons entre images et observations 
129
	 * uid[0] : utilisateur obligatoire
132
	 * uid[0] : utilisateur obligatoire
130
	 * uid[1] : identifiant(s) image(s) obligatoire(s)
133
	 * uid[1] : identifiant(s) image(s) obligatoire(s)
131
	 * uid[2] : identifiant(s) observations
134
	 * uid[2] : identifiant(s) observations
132
	 *
135
	 *
133
	 */
136
	 */
134
	function deleteElement($uid)
137
	function deleteElement($uid)
135
	{
138
	{
136
	 	// Controle detournement utilisateur
139
	 	// Controle detournement utilisateur
137
	    session_start();
140
	    session_start();
138
		$this->controleUtilisateur($uid[0]);
141
		$this->controleUtilisateur($uid[0]);
139
 
142
 
140
		$id_img = $uid[1] ;
143
		$id_img = $uid[1] ;
141
		$id_obs = $this->proteger($uid[2]) ;
144
		$id_obs = $this->proteger($uid[2]) ;
142
 
145
 
143
		$id = $uid[0] ;
146
		$id = $uid[0] ;
144
 
147
 
145
		if (isset($id)) {
148
		if (isset($id)) {
146
	           	$requete_suppression_lien = "DELETE FROM cel_obs_images ".
149
	           	$requete_suppression_lien = "DELETE FROM cel_obs_images ".
147
											"WHERE id_image IN (".$id_img.") ".
150
											"WHERE id_image IN (".$id_img.") ".
148
											"AND id_observation IN (".$id_obs.") AND coi_ce_utilisateur = '".$id."'" ;
151
											"AND id_observation IN (".$id_obs.") AND coi_ce_utilisateur = '".$id."'" ;
149
		}
152
		}
150
 
153
 
151
		$resultat_suppression_lien = $this->executer($requete_suppression_lien);
154
		$resultat_suppression_lien = $this->executer($requete_suppression_lien);
152
 
155
 
153
		$retour = false;
156
		$retour = false;
154
		if ($resultat_suppression_lien) {
157
		if ($resultat_suppression_lien) {
155
			$retour = "OK";
158
			$retour = "OK";
156
		}
159
		}
157
 
160
 
158
		echo $retour;
161
		echo $retour;
159
		exit() ;
162
		exit() ;
160
	}
163
	}
161
 
164
 
162
}
165
}
163
?>
166
?>