Subversion Repositories eFlore/Projets.eflore-projets

Rev

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

Rev 375 Rev 377
Line 164... Line 164...
164
	private function verifierValeurParametreFormat() {
164
	private function verifierValeurParametreFormat() {
165
		$formats = Outils::recupererTableauConfig('Images.formats');
165
		$formats = Outils::recupererTableauConfig('Images.formats');
166
		$ok = array_key_exists($this->parametres['retour.format'], $formats);
166
		$ok = array_key_exists($this->parametres['retour.format'], $formats);
167
		return $ok;
167
		return $ok;
168
	}
168
	}
169
	
169
 
170
	private function verifierValeurParametreTri() {
170
	private function verifierValeurParametreTri() {
171
		return in_array($this->parametres['retour.tri'], $this->tris_supportes);
171
		return in_array($this->parametres['retour.tri'], $this->tris_supportes);
172
	}
172
	}
Line 173... Line 173...
173
 
173
 
Line 198... Line 198...
198
				}
198
				}
199
			}
199
			}
200
		}
200
		}
201
	}
201
	}
Line 202... Line 202...
202
 
202
 
203
	
203
 
204
//+----------------------------------------  REQUETES  ---------------------------------------------------------------+
204
//+----------------------------------------  REQUETES  ---------------------------------------------------------------+
205
	private function obtenirIdImageAuHasard() {
205
	private function obtenirIdImageAuHasard() {
206
		$refTax = self::CODE_REFTAX_DEFAUT;
206
		$refTax = self::CODE_REFTAX_DEFAUT;
Line 224... Line 224...
224
		}
224
		}
Line 225... Line 225...
225
 
225
 
226
		$id_image_hasard = $resultat[array_rand($resultat)]['id_image'];
226
		$id_image_hasard = $resultat[array_rand($resultat)]['id_image'];
227
		return $id_image_hasard;
227
		return $id_image_hasard;
228
	}
228
	}
229
	
229
 
230
	private function obtenirIdPremiereImage() {
230
	private function obtenirIdPremiereImage() {
231
		$refTax = self::CODE_REFTAX_DEFAUT;
231
		$refTax = self::CODE_REFTAX_DEFAUT;
232
		$numNom = $this->Bdd->proteger($this->ref_tax_demande[$refTax][0]);
232
		$numNom = $this->Bdd->proteger($this->ref_tax_demande[$refTax][0]);
233
		$requete = 	'SELECT ci.ci_id_image AS id_image '.
233
		$requete = 	'SELECT ci.ci_id_image AS id_image '.
Line 237... Line 237...
237
					'	LEFT JOIN cel_inventory AS co '.
237
					'	LEFT JOIN cel_inventory AS co '.
238
					'		ON (coi.coi_ce_observation = co.ordre AND coi.coi_ce_utilisateur = co.identifiant) '.
238
					'		ON (coi.coi_ce_observation = co.ordre AND coi.coi_ce_utilisateur = co.identifiant) '.
239
					'WHERE co.transmission = 1 '.
239
					'WHERE co.transmission = 1 '.
240
					"	AND co.num_nom_ret IN ($numNom) ".
240
					"	AND co.num_nom_ret IN ($numNom) ".
241
					'	AND ci.ci_meta_date != "0000-00-00" ORDER BY ci.ci_meta_date ASC';
241
					'	AND ci.ci_meta_date != "0000-00-00" ORDER BY ci.ci_meta_date ASC';
242
		
242
 
243
		$resultat = $this->Bdd->recupererTous($requete);
243
		$resultat = $this->Bdd->recupererTous($requete);
244
	
244
 
245
		if (!is_array($resultat) || count($resultat) <= 0) {
245
		if (!is_array($resultat) || count($resultat) <= 0) {
246
			$message = "Aucune image ne correspond au numéro numenclatural $refTax:$numNom";
246
			$message = "Aucune image ne correspond au numéro numenclatural $refTax:$numNom";
247
			$code = RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE;
247
			$code = RestServeur::HTTP_CODE_RESSOURCE_INTROUVABLE;
248
			throw new Exception($message, $code);
248
			throw new Exception($message, $code);
249
		}
249
		}
250
	
250
 
251
		$id_image_hasard = $resultat[0]['id_image'];
251
		$id_image_hasard = $resultat[0]['id_image'];
252
		return $id_image_hasard;
252
		return $id_image_hasard;
253
	}
253
	}
254
	
254
 
255
	private function chargerInfosImage() {
255
	private function chargerInfosImage() {
256
		$requete = 	'SELECT SQL_CALC_FOUND_ROWS '.
256
		$requete = 	'SELECT SQL_CALC_FOUND_ROWS '.
257
				' ci.ci_id_image AS id_img, co.id AS id_obs, '.
257
				' ci.ci_id_image AS id_img, co.id AS id_obs, '.
258
				' identifiant AS utilisateur_courriel, '.
258
				' identifiant AS utilisateur_courriel, '.
259
				' nom_sel, num_nom_sel, '.
259
				' nom_sel, num_nom_sel, '.
Line 263... Line 263...
263
				'	LEFT JOIN cel_obs_images AS coi  '.
263
				'	LEFT JOIN cel_obs_images AS coi  '.
264
				'		ON (coi.coi_ce_image = ci.ci_id_image) '.
264
				'		ON (coi.coi_ce_image = ci.ci_id_image) '.
265
				'	LEFT JOIN cel_inventory AS co '.
265
				'	LEFT JOIN cel_inventory AS co '.
266
				'		ON (coi.coi_ce_observation = co.ordre AND coi.coi_ce_utilisateur = co.identifiant) '.
266
				'		ON (coi.coi_ce_observation = co.ordre AND coi.coi_ce_utilisateur = co.identifiant) '.
267
				'WHERE ci.ci_id_image = '.$this->ressources[0];
267
				'WHERE ci.ci_id_image = '.$this->ressources[0];
268
	
268
 
269
		$this->infosImages = $this->Bdd->recupererTous($requete);
269
		$this->infosImages = $this->Bdd->recupererTous($requete);
270
	}
270
	}
Line 271... Line 271...
271
 
271
 
272
	private function chargerListeImages() {
272
	private function chargerListeImages() {
273
		$refTax = self::CODE_REFTAX_DEFAUT;
273
		$refTax = self::CODE_REFTAX_DEFAUT;
274
		$numNomListe = implode(',', $this->ref_tax_demande[$refTax]);
274
		$numNomListe = implode(',', $this->ref_tax_demande[$refTax]);
275
		$depart = $this->parametres['navigation.depart'];
275
		$depart = $this->parametres['navigation.depart'];
276
		$limite = $this->parametres['navigation.limite'];
276
		$limite = $this->parametres['navigation.limite'];
277
	
277
 
278
		//TODO: modifier la requete lors du passage à la nouvelle base de données pour faire quelque chose
278
		//TODO: modifier la requete lors du passage à la nouvelle base de données pour faire quelque chose
-
 
279
		// du numéro nomenclatural + modifier les champs appelés pour le nouveau format + supprimer table annuaire
279
		// du numéro nomenclatural + modifier les champs appelés pour le nouveau format
280
		$annuaireTable = $this->config['annuaire']['table'];
280
		$requete = 	'SELECT SQL_CALC_FOUND_ROWS '.
281
		$requete = 	'SELECT SQL_CALC_FOUND_ROWS '.
281
				' ci.ci_id_image AS id_img, co.id AS id_obs, '.
282
				' ci.ci_id_image AS id_img, co.id AS id_obs, '.
-
 
283
				' identifiant AS utilisateur_courriel, '.
282
				' identifiant AS utilisateur_courriel, '.
284
				' an.u_id AS utilisateur_id, '.
283
				' nom_sel, num_nom_sel, '.
285
				' nom_sel, num_nom_sel, '.
284
				' location, id_location, lieudit, station, milieu, '.
286
				' location, id_location, lieudit, station, milieu, '.
285
			    ' ci.ci_meta_date AS date '.
287
			    ' ci.ci_meta_date AS date '.
286
				'FROM cel_images AS ci'.
288
				'FROM cel_images AS ci'.
287
				'	LEFT JOIN cel_obs_images AS coi  '.
289
				'	LEFT JOIN cel_obs_images AS coi  '.
288
				'		ON (coi.coi_ce_image = ci.ci_id_image) '.
290
				'		ON (coi.coi_ce_image = ci.ci_id_image) '.
289
				'	LEFT JOIN cel_inventory AS co '.
291
				'	LEFT JOIN cel_inventory AS co '.
-
 
292
				'		ON (coi.coi_ce_observation = co.ordre AND coi.coi_ce_utilisateur = co.identifiant) '.
-
 
293
				"	LEFT JOIN $annuaireTable AS an ".
290
				'		ON (coi.coi_ce_observation = co.ordre AND coi.coi_ce_utilisateur = co.identifiant) '.
294
				'		ON (co.identifiant = an.u_mail) '.
291
				$this->formerRequeteConditions($numNomListe).
295
				$this->formerRequeteConditions($numNomListe).
292
				' GROUP BY id_img '.
296
				' GROUP BY id_img '.
293
				$this->formerRequeteTri().
297
				$this->formerRequeteTri().
294
				"LIMIT $depart,$limite ";
298
				"LIMIT $depart,$limite ";
295
	
299
 
296
		$this->infosImages = $this->Bdd->recupererTous($requete);
300
		$this->infosImages = $this->Bdd->recupererTous($requete);
297
	}
301
	}
298
	
302
 
299
	private function formerRequeteConditions($numNomListe) {
303
	private function formerRequeteConditions($numNomListe) {
300
		$where[] = " co.transmission = 1 AND co.num_nom_ret IN ($numNomListe) ";
304
		$where[] = " co.transmission = 1 AND co.num_nom_ret IN ($numNomListe) ";
301
		if (isset($this->parametres['retour.tri']) && $this->parametres['retour.tri'] == 'date') {
305
		if (isset($this->parametres['retour.tri']) && $this->parametres['retour.tri'] == 'date') {
302
			$where[] = ' ci.ci_meta_date != "0000-00-00"';
306
			$where[] = ' ci.ci_meta_date != "0000-00-00"';
303
		}
307
		}
304
		return ' WHERE '.implode(' AND ', $where);
308
		return ' WHERE '.implode(' AND ', $where);
305
	}
309
	}
306
	
310
 
307
	private function formerRequeteTri() {
311
	private function formerRequeteTri() {
308
		$order = "";
312
		$order = "";
309
		if (isset($this->parametres['retour.tri']) && $this->parametres['retour.tri'] == 'date') {
313
		if (isset($this->parametres['retour.tri']) && $this->parametres['retour.tri'] == 'date') {
310
			$order = ' ORDER BY ci.ci_meta_date ASC ';
314
			$order = ' ORDER BY ci.ci_meta_date ASC ';
311
		}
315
		}
312
		return $order;
316
		return $order;
313
	}
317
	}
314
	
318
 
315
	
319
 
316
	private function chargerNbreImagesTotal() {
320
	private function chargerNbreImagesTotal() {
317
		$requete = 'SELECT FOUND_ROWS() AS nbre ';
321
		$requete = 'SELECT FOUND_ROWS() AS nbre ';
318
		$resultats = $this->Bdd->recuperer($requete);
322
		$resultats = $this->Bdd->recuperer($requete);
319
		$this->nbreImages = (int) $resultats['nbre'];
323
		$this->nbreImages = (int) $resultats['nbre'];
320
	}
324
	}
Line 321... Line 325...
321
	
325
 
322
 
326
 
323
//+---------------------------------------CHEMIN ET CONVERSION--------------------------------------------------------+
327
//+---------------------------------------CHEMIN ET CONVERSION--------------------------------------------------------+
324
	private function recupererImageBinaire($id_image) {
328
	private function recupererImageBinaire($id_image) {
Line 357... Line 361...
357
		$codeImage = wordwrap($codeImage, 3, '_', true);
361
		$codeImage = wordwrap($codeImage, 3, '_', true);
358
		$format = $this->parametres['retour.format'];
362
		$format = $this->parametres['retour.format'];
359
		$codeImage .= '_'.$format;
363
		$codeImage .= '_'.$format;
360
		return $codeImage;
364
		return $codeImage;
361
	}
365
	}
362
	
366
 
363
	
367
 
364
//+------------------------------------FORMATAGE LISTE----------------------------------------------------------------+
368
//+------------------------------------FORMATAGE LISTE----------------------------------------------------------------+
365
	private function formaterListeImages() {
369
	private function formaterListeImages() {
366
		$entete = $this->construireEntete();
370
		$entete = $this->construireEntete();
367
		$resultats = $this->construireResultats();
371
		$resultats = $this->construireResultats();
Line 445... Line 449...
445
 
449
 
446
	private function formaterInfosImage($img) {
450
	private function formaterInfosImage($img) {
447
		$info = array();
451
		$info = array();
448
		$info['date'] = $img['date'];
452
		$info['date'] = $img['date'];
449
		$info['mime'] = self::MIME_JPEG;
453
		$info['mime'] = self::MIME_JPEG;
-
 
454
		$info['auteur.libelle'] = $this->formaterAuteur($img);
450
		$info['auteur'] = $this->formaterAuteur($img);
455
		$info['auteur.id'] = $img['utilisateur_id'];
451
		$info['binaire.href'] = $this->formaterUrlImage($img);
456
		$info['binaire.href'] = $this->formaterUrlImage($img);
452
		$info['determination.libelle'] = $this->formaterDetermination($img);
457
		$info['determination.libelle'] = $this->formaterDetermination($img);
453
		$info['determination.nom_sci'] = $img['nom_sel'];
458
		$info['determination.nom_sci'] = $img['nom_sel'];
454
		$info['determination.nom_sci.code'] = $this->formaterNomSciCode($img);
459
		$info['determination.nom_sci.code'] = $this->formaterNomSciCode($img);
455
		$info = array_merge($info, $this->formaterStation($img));
460
		$info = array_merge($info, $this->formaterStation($img));
456
		return $info;
461
		return $info;
457
	}
462
	}
458
	
463
 
459
	private function extraireIntitulesAuteurs() {
464
	private function extraireIntitulesAuteurs() {
460
		$courriels = array();
465
		$courriels = array();
461
		foreach ($this->infosImages as $img) {
466
		foreach ($this->infosImages as $img) {
462
			$courriels[] = $img['utilisateur_courriel'];
467
			$courriels[] = $img['utilisateur_courriel'];