Subversion Repositories eFlore/Applications.cel

Rev

Rev 605 | Rev 899 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 605 Rev 664
Line 1... Line 1...
1
<?php
1
<?php
2
 
-
 
3
require_once('include/extract_metadonnee.php') ;
-
 
4
require_once('include/stockage_fichier.php') ;
-
 
5
 
-
 
6
/**
2
/**
7
 
-
 
8
 Aurelien Peronnet aurelienperonnet@gmail.com 2008
-
 
9
 
-
 
10
 Ce logiciel est r?gi par la licence CeCILL soumise au droit fran?ais et
-
 
11
 respectant les principes de diffusion des logiciels libres. Vous pouvez
-
 
12
 utiliser, modifier et/ou redistribuer ce programme sous les conditions
-
 
13
 de la licence CeCILL telle que diffus?e par le CEA, le CNRS et l'INRIA
-
 
14
 sur le site "http://www.cecill.info".
-
 
15
 En contrepartie de l'accessibilit? au code source et des droits de copie,
-
 
16
 de modification et de redistribution accord?s par cette licence, il n'est
3
 * Service recherche, et de suppression multiple d'images a partir de divers critères
17
 offert aux utilisateurs qu'une garantie limit?e.  Pour les m?mes raisons,
-
 
18
 seule une responsabilit? restreinte p?se sur l'auteur du programme,  le
-
 
19
 titulaire des droits patrimoniaux et les conc?dants successifs.
-
 
20
 
-
 
21
 A cet ?gard  l'attention de l'utilisateur est attir?e sur les risques
-
 
22
 associ?s au chargement,  ? l'utilisation,  ? la modification et/ou au
-
 
23
 d?veloppement et ? la reproduction du logiciel par l'utilisateur ?tant
-
 
24
 donn? sa sp?cificit? de logiciel libre, qui peut le rendre complexe ?
-
 
25
 manipuler et qui le r?serve donc ? des d?veloppeurs et des professionnels
-
 
26
 avertis poss?dant  des  connaissances  informatiques approfondies.  Les
-
 
27
 utilisateurs sont donc invit?s ? charger  et  tester  l'ad?quation  du
-
 
28
 logiciel ? leurs besoins dans des conditions permettant d'assurer la
-
 
29
 s?curit? de leurs syst?mes et ou de leurs donn?es et, plus g?n?ralement,
-
 
30
 ? l'utiliser et l'exploiter dans les m?mes conditions de s?curit?.
-
 
31
 
-
 
32
 Le fait que vous puissiez acc?der ? cet en-t?te signifie que vous avez
-
 
33
 pris connaissance de la licence CeCILL, et que vous en avez accept? les
-
 
34
 termes.
-
 
35
 
-
 
36
 */
-
 
37
 
-
 
38
 
-
 
39
// in : utf8
-
 
40
// out : utf8
4
 * Encodage en entrée : utf8
41
/*
-
 
42
 * InventoryImageList.php
-
 
43
 *
-
 
44
 * Cas d'utilisation :
5
 * Encodage en sortie : utf8
45
 * Service recherche d'images a partir de divers crit�res
-
 
46
 *
6
 *
-
 
7
 * @author Aurélien PERONNET <aurelien@tela-botanica.org>
47
 * 2: Le service recherche l'image correspondant au crit�res demand�
8
 * @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>
48
 * 3: Le service renvoie l'adresse de base de l'image qui permet de la localiser sous ses diff�rents formats (X, M ou L)
9
 * @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
-
 
10
 * @version $Id$
49
 */
11
 */
50
 
-
 
51
 Class InventoryImageList extends DBAccessor {
12
 Class InventoryImageList extends DBAccessor {
Line 52... Line 13...
52
 
13
 
Line 53... Line 14...
53
	var $config;
14
	var $config;
Line 116... Line 77...
116
							$mot_comment = trim($mot_comment) ;
77
							$mot_comment = trim($mot_comment) ;
117
							$query .= $nom_valeur[0].' LIKE "%'.$DB->escapeSimple($mot_comment).'%"' ;
78
							$query .= $nom_valeur[0].' LIKE "%'.$DB->escapeSimple($mot_comment).'%"' ;
118
							$query .= ' AND ' ;
79
							$query .= ' AND ' ;
119
						}
80
						}
120
					}
81
					}
121
					elseif($nom_valeur[0] == "ci_meta_date")
82
					elseif($nom_valeur[0] == "annee" || $nom_valeur[0] == "mois" || $nom_valeur[0] == "jour")
122
					{
83
					{
123
						$query .= 'DATE_FORMAT( '.$nom_valeur[0].', \'%Y-%m-%d\' ) = "'.$DB->escapeSimple($nom_valeur[1]).'"' ;
84
						$query .= $this->fabriquerSousRequeteRechercheDate($nom_valeur[0], $nom_valeur[1]) ;
124
						$query .= ' AND ' ;
85
						$query .= ' AND ' ;
125
					}
86
					}
126
					elseif($nom_valeur[0] == "ci_id_tampon")
87
					elseif($nom_valeur[0] == "ci_id_tampon")
127
					{
88
					{
128
						$ids_tampon = rtrim($nom_valeur[1], ',') ;
89
						$ids_tampon = rtrim($nom_valeur[1], ',') ;
129
						$query .= 'ci_id_image IN ( '.$DB->escapeSimple($ids_tampon).')' ;
90
						$query .= 'ci_id_image IN ( '.$DB->escapeSimple($ids_tampon).')' ;
130
					}
91
					}
-
 
92
					elseif($nom_valeur[0] == "ci_recherche_generale")
-
 
93
					{
-
 
94
						$query .= $this->fabriquerSousRequeteRechercheGenerale($uid[0], $nom_valeur[1]);
-
 
95
						$query .= ' AND ';
-
 
96
					}
131
					else
97
					else
132
					{
98
					{
133
						$query .= $nom_valeur[0].' = "'.$DB->escapeSimple($nom_valeur[1]) ;
99
						$query .= $nom_valeur[0].' = "'.$DB->escapeSimple($nom_valeur[1]) ;
134
						$query .= '" AND ' ;
100
						$query .= '" AND ' ;
135
					}
101
					}
Line 137... Line 103...
137
		}
103
		}
Line 138... Line 104...
138
 
104
 
Line 139... Line 105...
139
		$debut = $limite*$numero_page ;
105
		$debut = $limite*$numero_page ;
-
 
106
 
140
 
107
		$query = rtrim($query,' AND ') ;
Line 141... Line 108...
141
		$query = rtrim($query,' AND ') ;
108
		
142
		$query .= ' ORDER BY ci_ordre LIMIT '.$debut.','.$limite ;
109
		$query .= ' ORDER BY ci_ordre LIMIT '.$debut.','.$limite ;
Line 191... Line 158...
191
 
158
 
192
			$result[] = $image ;
159
			$result[] = $image ;
Line 193... Line 160...
193
		}
160
		}
-
 
161
 
-
 
162
		$res = json_encode($result) ;
Line 194... Line 163...
194
 
163
		
195
		$res = json_encode($result) ;
164
		$res = str_replace('\u0000','',$res);
196
 
165
 
197
		header("content-type: text/json") ;
166
		header("content-type: text/html") ;
Line 198... Line -...
198
		print $res ;
-
 
-
 
167
		print $res ;
199
		exit() ;
168
		exit() ;
200
	}
169
	}
201
 
-
 
202
	// met � jour les m�tadonn�es d'une image
-
 
203
	function updateElement($uid,$pairs)
-
 
Line 204... Line -...
204
	{
-
 
205
		// Controle detournement utilisateur
-
 
206
	    session_start();
170
 
Line 207... Line 171...
207
	 	$this->controleUtilisateur($uid[0]);
171
	
208
 
172
	function updateElement($uid,$pairs)
Line 251... Line 215...
251
 
215
 
252
			echo "OK" ;
216
			echo "OK" ;
253
			exit() ;
217
			exit() ;
254
		}
218
		}
-
 
219
	}
-
 
220
	
-
 
221
	private function fabriquerSousRequeteRechercheGenerale($id_utilisateur, $chaine_recherche) {
-
 
222
		
-
 
223
		$requete_recherche_taxon .= 'SELECT coi_ce_image 
-
 
224
								FROM cel_obs_images
-
 
225
								WHERE coi_ce_observation IN ' .
-
 
226
								'(SELECT ordre ' .
-
 
227
									'FROM cel_inventory '.
-
 
228
									'WHERE identifiant ="'.$id_utilisateur.'" '.
-
 
229
									'AND nom_sel LIKE "'.$chaine_recherche.'%" '.
-
 
230
								')';
-
 
231
								
-
 
232
		$requete_recherche_comm = ' ci_meta_comment LIKE "%'.$chaine_recherche.'%" ';
-
 
233
		
-
 
234
		$requete_recherche_generale = '(ci_id_image IN ( '.($requete_recherche_taxon).') OR ('.$requete_recherche_comm.'))' ;
-
 
235
							
-
 
236
		return $requete_recherche_generale;
-
 
237
	}
-
 
238
	
-
 
239
	private function fabriquerSousRequeteRechercheDate($intervalle, $valeur) {
-
 
240
		
-
 
241
		$correspondance_champ = array('annee' => 'YEAR','mois' => 'MONTH','jour' => 'DAY');
-
 
242
		
-
 
243
		$requete_recherche_date = '';
-
 
244
		
-
 
245
		$requete_recherche_date = $correspondance_champ[$intervalle].'(ci_meta_date) = "'.$valeur.'" ';
-
 
246
							
-
 
247
		return $requete_recherche_date;
Line 255... Line 248...
255
	}
248
	}
256
 
249
 
257
}
250
}