Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 2121 Rev 2143
Line 1... Line 1...
1
<?php
1
<?php
2
/**
2
/**
3
 * PHP Version 5.2
3
 * PHP Version 5.2
4
 *
4
 *
5
 * @category  PHP
5
 * @category	CEL
6
 * @package   jrest
6
 * @package		Services
-
 
7
 * @subpackage	Bibliothèque
7
 * @author	Raphaël Droz <raphael@tela-botanica.org>
8
 * @author	Raphaël Droz <raphael@tela-botanica.org>
8
 * @author	Aurelien Peronnet <aurelien@tela-botanica.org>
9
 * @author	Aurelien Peronnet <aurelien@tela-botanica.org>
9
 * @copyright 2010, 2013 Tela-Botanica
10
 * @copyright 2010, 2013 Tela-Botanica
10
 * @license	 http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
11
 * @license	 http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
11
 * @license	 GPL v3 <http://www.gnu.org/licenses/gpl.txt>
12
 * @license	 GPL v3 <http://www.gnu.org/licenses/gpl.txt>
Line 66... Line 67...
66
		$requete_insertion_observation = $requete_insertion_observation.$sous_requete_colonnes;
67
		$requete_insertion_observation = $requete_insertion_observation.$sous_requete_colonnes;
Line 67... Line 68...
67
 
68
 
68
		// important ! ne pas utiliser la fonction executerRequete qui renvoie une erreur si la requete
69
		// important ! ne pas utiliser la fonction executerRequete qui renvoie une erreur si la requete
69
		// contient des | (pipes) ce qui peut arriver dans les commentaires
70
		// contient des | (pipes) ce qui peut arriver dans les commentaires
70
		// TODO: corriger la fonction ou bien continuer à utiliser executerRequeteSimple
71
		// TODO: corriger la fonction ou bien continuer à utiliser executerRequeteSimple
Line 71... Line 72...
71
		$resultat_ajout_observation = Cel::db()->executerRequeteSimple($requete_insertion_observation);
72
		$resultat_ajout_observation = Cel::db()->executer($requete_insertion_observation);
72
 
73
 
73
		$retour = true;
74
		$retour = true;
74
		if ($resultat_ajout_observation === false) {
75
		if ($resultat_ajout_observation === false) {
Line 88... Line 89...
88
	*
89
	*
89
	* @return int le nouveau numero d'ordre relatif à l'utilisateur ou bien 0 s'il n'a jamais créé d'observations
90
	* @return int le nouveau numero d'ordre relatif à l'utilisateur ou bien 0 s'il n'a jamais créé d'observations
90
	*/
91
	*/
91
	public function renvoyerDernierOrdreUtilisePlusUn($utilisateur) {
92
	public function renvoyerDernierOrdreUtilisePlusUn($utilisateur) {
92
		$idUtilisateurP = Cel::db()->proteger($utilisateur);
93
		$idUtilisateurP = Cel::db()->proteger($utilisateur);
93
		$requete_selection_dernier_ordre = 'SELECT max(ordre) AS ordre '.
94
		$requete = 'SELECT max(ordre) AS ordre '.
94
			'FROM cel_obs '.
95
			'FROM cel_obs '.
95
			"WHERE ce_utilisateur = $idUtilisateurP ".
96
			"WHERE ce_utilisateur = $idUtilisateurP ".
96
			' -- ' . __FILE__ . ':' . __LINE__;
97
			' -- ' . __FILE__ . ':' . __LINE__;
97
		$dernier_ordre = Cel::db()->executerRequete($requete_selection_dernier_ordre);
98
		$dernier_ordre = Cel::db()->requeter($requete);
Line 98... Line 99...
98
 
99
 
99
		$nouvel_ordre = 0;
100
		$nouvel_ordre = 0;
100
		if (is_array($dernier_ordre) && count($dernier_ordre) > 0 && trim($dernier_ordre[0]['ordre']) != '') {
101
		if (is_array($dernier_ordre) && count($dernier_ordre) > 0 && trim($dernier_ordre[0]['ordre']) != '') {
101
			$nouvel_ordre = $dernier_ordre[0]['ordre'] + 1;
102
			$nouvel_ordre = $dernier_ordre[0]['ordre'] + 1;
Line 111... Line 112...
111
	*/
112
	*/
112
	public function renvoyerIdPourOrdre($utilisateur, $ordre) {
113
	public function renvoyerIdPourOrdre($utilisateur, $ordre) {
113
		$idUtilisateurP = Cel::db()->proteger($utilisateur);
114
		$idUtilisateurP = Cel::db()->proteger($utilisateur);
114
		$ordreP = Cel::db()->proteger($ordre);
115
		$ordreP = Cel::db()->proteger($ordre);
Line 115... Line 116...
115
 
116
 
116
		$requete_selection_dernier_id = 'SELECT id_observation '.
117
		$requete = 'SELECT id_observation '.
117
			'FROM cel_obs '.
118
			'FROM cel_obs '.
118
			"WHERE ce_utilisateur = $idUtilisateurP ".
119
			"WHERE ce_utilisateur = $idUtilisateurP ".
119
			"AND ordre = $ordreP ".
120
			"AND ordre = $ordreP ".
Line 120... Line 121...
120
			' -- ' . __FILE__ . ':' . __LINE__;
121
			' -- ' . __FILE__ . ':' . __LINE__;
Line 121... Line 122...
121
 
122
 
122
		$dernier_id = Cel::db()->executerRequete($requete_selection_dernier_id);
123
		$dernier_id = Cel::db()->requeter($requete);
123
 
124
 
124
		$retour = null;
125
		$retour = null;
Line 183... Line 184...
183
 
184
 
184
 
185
 
185
		// important ! ne pas utiliser la fonction executerRequete qui renvoie une erreur si la requete contient des | (pipes)
186
		// important ! ne pas utiliser la fonction executerRequete qui renvoie une erreur si la requete contient des | (pipes)
186
		// ce qui peut arriver dans les commentaires
187
		// ce qui peut arriver dans les commentaires
Line 187... Line 188...
187
		// TODO: corriger la fonction ou bien continuer à utiliser executerRequeteSimple
188
		// TODO: corriger la fonction ou bien continuer à utiliser executerRequeteSimple
188
		$resultat_modification = Cel::db()->executerRequeteSimple($requete_modification);
189
		$resultat_modification = Cel::db()->executer($requete_modification);
189
 
190
 
190
		$retour = true;
191
		$retour = true;
Line 260... Line 261...
260
			" AND transmission = 1 ".
261
			" AND transmission = 1 ".
261
			' -- ' . __FILE__ . ':' . __LINE__;
262
			' -- ' . __FILE__ . ':' . __LINE__;
262
		// important ! ne pas utiliser la fonction executerRequete qui renvoie une erreur si la requete contient des | (pipes)
263
		// important ! ne pas utiliser la fonction executerRequete qui renvoie une erreur si la requete contient des | (pipes)
263
		// ce qui peut arriver dans les commentaires
264
		// ce qui peut arriver dans les commentaires
264
		// TODO: corriger la fonction ou bien continuer à utiliser executerRequeteSimple
265
		// TODO: corriger la fonction ou bien continuer à utiliser executerRequeteSimple
265
		$resultat_modification = Cel::db()->executerRequeteSimple($requete_modification . ' -- ' . __FILE__ . ':' . __LINE__);
266
		$resultat_modification = Cel::db()->executer($requete_modification . ' -- ' . __FILE__ . ':' . __LINE__);
Line 266... Line 267...
266
 
267
 
267
		if ($resultat_modification === false) {
268
		if ($resultat_modification === false) {
268
			$this->logger("CEL_bugs","Erreur de mise à jour de l\'observation : ".$id);
269
			$this->logger("CEL_bugs","Erreur de mise à jour de l\'observation : ".$id);
Line 269... Line 270...
269
		}
270
		}
270
 
271
 
Line 271... Line 272...
271
		return $resultat_modification;
272
		return $resultat_modification;
272
	}
273
	}
273
 
274
 
274
	public function modifierTransmissionObservation($ids_obs_ou_tableau, $publier) {
275
	public function modifierTransmissionObservation($ids_obs_ou_tableau, $publier) {
275
		if(is_array($ids_obs_ou_tableau)) {
276
		if (is_array($ids_obs_ou_tableau)) {
276
			$ids_obs_ou_tableau = array_map(array(Cel::db(),'proteger'),$ids_obs_ou_tableau);
277
			$ids_obs_ou_tableau = array_map(array(Cel::db(),'proteger'),$ids_obs_ou_tableau);
277
			$chaine_ids_obs = implode(',',$ids_obs_ou_tableau);
278
			$chaine_ids_obs = implode(',',$ids_obs_ou_tableau);
278
		} else {
-
 
279
			$chaine_ids_obs = Cel::db()->proteger($ids_obs_ou_tableau);
279
		} else {
280
		}
280
			$chaine_ids_obs = Cel::db()->proteger($ids_obs_ou_tableau);
281
		
281
		}
282
		$etat_transmission = $publier ? 1 : 0;
282
		$etat_transmission = $publier ? 1 : 0;
283
		
283
 
284
		$requete = "UPDATE cel_obs ".
284
		$requete = "UPDATE cel_obs ".
285
					"SET transmission = ".$etat_transmission.", ".
285
			"SET transmission = $etat_transmission , date_modification = NOW() ".
286
					"date_modification = NOW() ".
286
			"WHERE id_observation IN ($chaine_ids_obs) ".
287
					"WHERE id_observation IN (".$chaine_ids_obs.")";
-
 
288
		
287
			' -- ' . __FILE__ . ':' . __LINE__;
289
		$resultat_modif_obs = Cel::db()->executerRequeteSimple($requete);
288
 
290
		
289
		$resultat = Cel::db()->executer($requete);
291
		return $resultat_modif_obs;
290
		return $resultat;
292
	}
291
	}
293
	
292
 
294
	/**
293
	/**
295
	* Supprime une ou plusieurs observations grâce aux paramètres fournis
294
	* Supprime une ou plusieurs observations grâce aux paramètres fournis
Line 326... Line 325...
326
			$requete = 'DELETE FROM cel_obs WHERE '.
325
			$requete = 'DELETE FROM cel_obs WHERE '.
327
				"ce_utilisateur = $idUtilisateurP ".
326
				"ce_utilisateur = $idUtilisateurP ".
328
				"AND id_observation IN ($chaine_ids_obs) ".
327
				"AND id_observation IN ($chaine_ids_obs) ".
329
				' -- ' . __FILE__ . ':' . __LINE__;
328
				' -- ' . __FILE__ . ':' . __LINE__;
Line 330... Line 329...
330
 
329
 
Line 331... Line 330...
331
			$resultat_suppression_observations = Cel::db()->executerRequeteSimple($requete);
330
			$resultat_suppression_observations = Cel::db()->executer($requete);
332
 
331
 
333
			// TODO: Faire la suppression des mots clés
332
			// TODO: Faire la suppression des mots clés
334
			// et des liaisons obs images dans une ou des fonctions à part
333
			// et des liaisons obs images dans une ou des fonctions à part
Line 338... Line 337...
338
			} else {
337
			} else {
339
				$requete = 'DELETE FROM cel_obs_images '.
338
				$requete = 'DELETE FROM cel_obs_images '.
340
					"WHERE id_observation IN ($chaine_ids_obs) ".
339
					"WHERE id_observation IN ($chaine_ids_obs) ".
341
					' -- ' . __FILE__ . ':' . __LINE__;
340
					' -- ' . __FILE__ . ':' . __LINE__;
Line 342... Line 341...
342
 
341
 
Line 343... Line 342...
343
				$resultat_suppression_liens = Cel::db()->executerRequeteSimple($requete);
342
				$resultat_suppression_liens = Cel::db()->executer($requete);
344
 
343
 
345
				if ($resultat_suppression_liens === false) {
344
				if ($resultat_suppression_liens === false) {
346
					$msg = "Erreur de suppression d'une liste de liaison entre observations et images : $requete";
345
					$msg = "Erreur de suppression d'une liste de liaison entre observations et images : $requete";
Line 381... Line 380...
381
		$requete = 'SELECT ordre '.
380
		$requete = 'SELECT ordre '.
382
			'FROM cel_obs '.
381
			'FROM cel_obs '.
383
			"WHERE ce_utilisateur = $idAncienP ".
382
			"WHERE ce_utilisateur = $idAncienP ".
384
			'ORDER BY ordre '.
383
			'ORDER BY ordre '.
385
			' -- '.__FILE__.' : '.__LINE__;
384
			' -- '.__FILE__.' : '.__LINE__;
386
		$resultat = Cel::db()->executerRequete($requete);
385
		$resultat = Cel::db()->requeter($requete);
Line 387... Line 386...
387
 
386
 
388
		$reussite = true;
387
		$reussite = true;
389
		if (is_array($resultat)) {
388
		if (is_array($resultat)) {
390
			foreach ($resultat as $releve_temporaire) {
389
			foreach ($resultat as $releve_temporaire) {
Line 394... Line 393...
394
					"ce_utilisateur = $idUtilisateurP, ".
393
					"ce_utilisateur = $idUtilisateurP, ".
395
					"ordre = $nouvel_ordre ".
394
					"ordre = $nouvel_ordre ".
396
					"WHERE ce_utilisateur = $idAncienP ".
395
					"WHERE ce_utilisateur = $idAncienP ".
397
					"AND ordre = $ancienOrdre ".
396
					"AND ordre = $ancienOrdre ".
398
					' -- '.__FILE__.' : '.__LINE__;
397
					' -- '.__FILE__.' : '.__LINE__;
399
				$migration_releve = Cel::db()->executerRequeteSimple($requete);
398
				$migration_releve = Cel::db()->executer($requete);
Line 400... Line 399...
400
 
399
 
401
				//TODO: meilleure vérification
400
				//TODO: meilleure vérification
402
				if ($migration_releve === false) {
401
				if ($migration_releve === false) {
403
					$reussite = false;
402
					$reussite = false;
Line 423... Line 422...
423
			'nom_utilisateur = '.Cel::db()->proteger($infos_utilisateur['nom']).', '.
422
			'nom_utilisateur = '.Cel::db()->proteger($infos_utilisateur['nom']).', '.
424
			'courriel_utilisateur = '.Cel::db()->proteger($infos_utilisateur['courriel']).' '.
423
			'courriel_utilisateur = '.Cel::db()->proteger($infos_utilisateur['courriel']).' '.
425
			'WHERE ce_utilisateur = '.Cel::db()->proteger($mail_utilisateur).' '.
424
			'WHERE ce_utilisateur = '.Cel::db()->proteger($mail_utilisateur).' '.
426
			' -- '.__FILE__.' : '.__LINE__;
425
			' -- '.__FILE__.' : '.__LINE__;
Line 427... Line 426...
427
 
426
 
Line 428... Line 427...
428
		$migration_releve = Cel::db()->executerRequeteSimple($requete_migration_releve);
427
		$migration_releve = Cel::db()->executer($requete_migration_releve);
429
 
428
 
Line 430... Line 429...
430
		return $migration_releve;
429
		return $migration_releve;