Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 1400 Rev 1765
Line 72... Line 72...
72
									   '('.$champ_objet_lie.', '.$champ_mot_cle.') '.
72
									   '('.$champ_objet_lie.', '.$champ_mot_cle.') '.
73
									   'VALUES ';
73
									   'VALUES ';
Line 74... Line 74...
74
									   
74
									   
75
			foreach($ids as $id) {
75
			foreach($ids as $id) {
76
				foreach($mots_cles_ids as $mot) {
76
				foreach($mots_cles_ids as $mot) {
77
					$requete .= '('.$id.','.$this->proteger($mot).'),';
77
					$requete .= '('.$id.','.Cel::db()->proteger($mot).'),';
78
				}
78
				}
79
			}
79
			}
80
			$requete = rtrim($requete,',');
80
			$requete = rtrim($requete,',');
Line 81... Line 81...
81
			$resultat = $this->executer($requete);
81
			$resultat = Cel::db()->executer($requete);
82
			
82
			
83
			// J'en suis ici
83
			// J'en suis ici
84
			if ($resultat) {
84
			if ($resultat) {
Line 124... Line 124...
124
					'FROM '.'cel_mots_cles'.$this->suffix.' '.
124
					'FROM '.'cel_mots_cles'.$this->suffix.' '.
125
					'WHERE id_mot_cle_'.(($this->suffix == self::OBS_TABLE_SUFFIXE) ? 'obs' : 'image').' IN '.
125
					'WHERE id_mot_cle_'.(($this->suffix == self::OBS_TABLE_SUFFIXE) ? 'obs' : 'image').' IN '.
126
						'('.
126
						'('.
127
							'SELECT id_mot_cle_'.(($this->suffix == self::OBS_TABLE_SUFFIXE) ? 'obs' : 'image').' '.
127
							'SELECT id_mot_cle_'.(($this->suffix == self::OBS_TABLE_SUFFIXE) ? 'obs' : 'image').' '.
128
							'FROM cel'.$this->suffix.'_mots_cles '.
128
							'FROM cel'.$this->suffix.'_mots_cles '.
129
							'WHERE '.(($this->suffix == self::OBS_TABLE_SUFFIXE) ? 'id_observation' : 'id_image').' = '.$this->proteger($id_image_ou_obs).
129
							'WHERE '.(($this->suffix == self::OBS_TABLE_SUFFIXE) ? 'id_observation' : 'id_image').' = '.Cel::db()->proteger($id_image_ou_obs).
130
						')';
130
						')';
Line 131... Line 131...
131
 
131
 
132
		$resultats = $this->requeter($requete);
132
		$resultats = Cel::db()->requeter($requete);
133
		return $resultats;
133
		return $resultats;
Line 134... Line 134...
134
	}
134
	}
135
 
135
 
Line 151... Line 151...
151
		$mot_cles_concatenes = rtrim($mot_cles_concatenes, self::SEPARATEUR_MOT_CLE_TEXTE);
151
		$mot_cles_concatenes = rtrim($mot_cles_concatenes, self::SEPARATEUR_MOT_CLE_TEXTE);
152
		return $mot_cles_concatenes;
152
		return $mot_cles_concatenes;
153
	}
153
	}
Line 154... Line 154...
154
 
154
 
155
	private function mettreAJourMotsClesConcatenes($mots_cles, $id) {
155
	private function mettreAJourMotsClesConcatenes($mots_cles, $id) {
156
		$mots_cles = $this->proteger($mots_cles);
156
		$mots_cles = Cel::db()->proteger($mots_cles);
Line 157... Line 157...
157
		$utilisateur_id = $this->proteger($this->utilisateur_id);
157
		$utilisateur_id = Cel::db()->proteger($this->utilisateur_id);
158
 
158
 
159
		$requete = 	'UPDATE cel'.$this->suffix." ".
159
		$requete = 	'UPDATE cel'.$this->suffix." ".
Line 160... Line 160...
160
					"SET mots_cles_texte = $mots_cles ".
160
					"SET mots_cles_texte = $mots_cles ".
161
					"WHERE id_".(($this->suffix == self::OBS_TABLE_SUFFIXE) ? 'observation' : 'image')." = $id ";
161
					"WHERE id_".(($this->suffix == self::OBS_TABLE_SUFFIXE) ? 'observation' : 'image')." = $id ";
162
 
162
 
Line 163... Line 163...
163
		$ok = $this->executer($requete) ? true : false;
163
		$ok = Cel::db()->executer($requete) ? true : false;
Line 197... Line 197...
197
			$niveau = $bornes['niveau'] + 1;
197
			$niveau = $bornes['niveau'] + 1;
198
			$bg = $bornes['bd'];
198
			$bg = $bornes['bd'];
199
			$bd = $bg + 1;
199
			$bd = $bg + 1;
200
			$mot_cle_encode = $this->encoderMotCle($mot_cle);
200
			$mot_cle_encode = $this->encoderMotCle($mot_cle);
Line 201... Line 201...
201
 
201
 
202
			$mot_cle_protege = $this->proteger($mot_cle);
202
			$mot_cle_protege = Cel::db()->proteger($mot_cle);
203
			$bg = $this->proteger($bg);
203
			$bg = Cel::db()->proteger($bg);
204
			$bd = $this->proteger($bd);
204
			$bd = Cel::db()->proteger($bd);
205
			$mot_cle_encode = $this->proteger($mot_cle_encode);
205
			$mot_cle_encode = Cel::db()->proteger($mot_cle_encode);
206
			$mot_cle_id = $this->proteger($mot_cle_id);
206
			$mot_cle_id = Cel::db()->proteger($mot_cle_id);
207
			$id_utilisateur = $this->proteger($this->utilisateur_id);
207
			$id_utilisateur = Cel::db()->proteger($this->utilisateur_id);
208
			$mot_cle_parent_id_protege = $this->proteger($mot_cle_parent_id);
208
			$mot_cle_parent_id_protege = Cel::db()->proteger($mot_cle_parent_id);
Line 209... Line 209...
209
			$niveau = $this->proteger($niveau);
209
			$niveau = Cel::db()->proteger($niveau);
Line 210... Line 210...
210
 
210
 
211
			$transaction_reussie_1 = $this->decalerBornesPlusDeux($borne_pere) ? true : false;
211
			$transaction_reussie_1 = $this->decalerBornesPlusDeux($borne_pere) ? true : false;
Line 265... Line 265...
265
				default:
265
				default:
266
					$nom_racine = $this->suffix;
266
					$nom_racine = $this->suffix;
267
					$id_racine = $this->suffix;
267
					$id_racine = $this->suffix;
268
			}
268
			}
Line 269... Line 269...
269
 
269
 
270
			$md5_racine = $this->proteger($this->encoderMotCle($nom_racine));
270
			$md5_racine = Cel::db()->proteger($this->encoderMotCle($nom_racine));
271
			$nom_racine = $this->proteger($nom_racine);
271
			$nom_racine = Cel::db()->proteger($nom_racine);
272
			$id_racine = $this->proteger($id_racine);
272
			$id_racine = Cel::db()->proteger($id_racine);
Line 273... Line 273...
273
			$id_utilisateur = $this->proteger($this->utilisateur_id);
273
			$id_utilisateur = Cel::db()->proteger($this->utilisateur_id);
274
 
274
 
275
			$requete = "INSERT INTO cel_mots_cles{$this->suffix} ".
275
			$requete = "INSERT INTO cel_mots_cles{$this->suffix} ".
Line 283... Line 283...
283
		}
283
		}
284
	}
284
	}
Line 285... Line 285...
285
 
285
 
286
	private function verifierAbsence($mot_cle, $mot_cle_parent_id) {
286
	private function verifierAbsence($mot_cle, $mot_cle_parent_id) {
287
		$absence = false;
287
		$absence = false;
288
		$mot_cle = $this->proteger($mot_cle);
288
		$mot_cle = Cel::db()->proteger($mot_cle);
289
		$mot_cle_parent_id = $this->proteger($mot_cle_parent_id);
289
		$mot_cle_parent_id = Cel::db()->proteger($mot_cle_parent_id);
290
		$id_utilisateur = $this->proteger($this->utilisateur_id);
290
		$id_utilisateur = Cel::db()->proteger($this->utilisateur_id);
291
		$requete = 	'SELECT COUNT(*) AS nbre '.
291
		$requete = 	'SELECT COUNT(*) AS nbre '.
292
			"FROM cel_mots_cles{$this->suffix} ".
292
			"FROM cel_mots_cles{$this->suffix} ".
293
			"WHERE mot_cle = $mot_cle ".
293
			"WHERE mot_cle = $mot_cle ".
294
			"	AND id_utilisateur = $id_utilisateur ".
294
			"	AND id_utilisateur = $id_utilisateur ".
Line 303... Line 303...
303
		}
303
		}
304
		return $absence;
304
		return $absence;
305
	}
305
	}
Line 306... Line 306...
306
 
306
 
307
	private function getIdMotCle($mot_cle, $mot_cle_parent_id) {
307
	private function getIdMotCle($mot_cle, $mot_cle_parent_id) {
308
		$mot_cle = $this->proteger($mot_cle);
308
		$mot_cle = Cel::db()->proteger($mot_cle);
309
		$mot_cle_parent_id = $this->proteger($mot_cle_parent_id);
309
		$mot_cle_parent_id = Cel::db()->proteger($mot_cle_parent_id);
310
		$id_utilisateur = $this->proteger($this->utilisateur_id);
310
		$id_utilisateur = Cel::db()->proteger($this->utilisateur_id);
311
		$requete = 	'SELECT id_mot_cle_'.(($this->suffix == self::OBS_TABLE_SUFFIXE) ? 'obs' : 'image').' AS id '.
311
		$requete = 	'SELECT id_mot_cle_'.(($this->suffix == self::OBS_TABLE_SUFFIXE) ? 'obs' : 'image').' AS id '.
312
			"FROM cel_mots_cles{$this->suffix} ".
312
			"FROM cel_mots_cles{$this->suffix} ".
313
			"WHERE mot_cle = $mot_cle ".
313
			"WHERE mot_cle = $mot_cle ".
314
			"	AND id_utilisateur = $id_utilisateur ".
314
			"	AND id_utilisateur = $id_utilisateur ".
Line 318... Line 318...
318
		return $mot_cle_id;
318
		return $mot_cle_id;
319
	}
319
	}
Line 320... Line 320...
320
 
320
 
321
	private function compterMotsCles() {
321
	private function compterMotsCles() {
322
		$nbre = 0;
322
		$nbre = 0;
323
		$id_utilisateur = $this->proteger($this->utilisateur_id);
323
		$id_utilisateur = Cel::db()->proteger($this->utilisateur_id);
324
		$requete = 	'SELECT COUNT(*) AS nbre '.
324
		$requete = 	'SELECT COUNT(*) AS nbre '.
325
					"FROM cel_mots_cles{$this->suffix} ".
325
					"FROM cel_mots_cles{$this->suffix} ".
Line 326... Line 326...
326
					"WHERE id_utilisateur = $id_utilisateur ";
326
					"WHERE id_utilisateur = $id_utilisateur ";
Line 378... Line 378...
378
 
378
 
379
	/**
379
	/**
380
	 * Renvoie les bornes d'un noeud de l'arbre des mots clés
380
	 * Renvoie les bornes d'un noeud de l'arbre des mots clés
381
	 */
381
	 */
382
	private function retrouverBornesEtNiveau($mot_cle_id) {
382
	private function retrouverBornesEtNiveau($mot_cle_id) {
383
		$mot_cle_id = $this->proteger($mot_cle_id);
383
		$mot_cle_id = Cel::db()->proteger($mot_cle_id);
384
		$id_utilisateur = $this->proteger($this->utilisateur_id);
384
		$id_utilisateur = Cel::db()->proteger($this->utilisateur_id);
385
		$requete = 	'SELECT bd, bg, niveau '.
385
		$requete = 	'SELECT bd, bg, niveau '.
386
					"FROM cel_mots_cles{$this->suffix} ".
386
					"FROM cel_mots_cles{$this->suffix} ".
387
					"WHERE id_mot_cle_".(($this->suffix == self::OBS_TABLE_SUFFIXE) ? 'obs' : 'image')." = $mot_cle_id ".
387
					"WHERE id_mot_cle_".(($this->suffix == self::OBS_TABLE_SUFFIXE) ? 'obs' : 'image')." = $mot_cle_id ".
Line 394... Line 394...
394
	/**
394
	/**
395
	 * Décale les bornes de deux pour insérer un nouvel élément
395
	 * Décale les bornes de deux pour insérer un nouvel élément
396
	 */
396
	 */
397
	private function decalerBornesPlusDeux($valeur) {
397
	private function decalerBornesPlusDeux($valeur) {
398
		// Décalage borne droite
398
		// Décalage borne droite
399
		$valeur = $this->proteger($valeur);
399
		$valeur = Cel::db()->proteger($valeur);
400
		$id_utilisateur = $this->proteger($this->utilisateur_id);
400
		$id_utilisateur = Cel::db()->proteger($this->utilisateur_id);
401
		$requete = 	"UPDATE cel_mots_cles{$this->suffix} ".
401
		$requete = 	"UPDATE cel_mots_cles{$this->suffix} ".
402
					'SET bd = bd + 2 '.
402
					'SET bd = bd + 2 '.
403
					"WHERE bd >= $valeur ".
403
					"WHERE bd >= $valeur ".
404
					"	AND id_utilisateur = $id_utilisateur ";
404
					"	AND id_utilisateur = $id_utilisateur ";
405
		$reussi_1 = $this->executerSQL($requete);
405
		$reussi_1 = $this->executerSQL($requete);
Line 425... Line 425...
425
	/**
425
	/**
426
	 * Décale les bornes d'un intervalle négatif donné (pour la suppression d'un sous arbre).
426
	 * Décale les bornes d'un intervalle négatif donné (pour la suppression d'un sous arbre).
427
	 */
427
	 */
428
	private function decalerBornesMoinsIntervalle($bg, $bd) {
428
	private function decalerBornesMoinsIntervalle($bg, $bd) {
429
		$decalage = $bd - $bg + 1;
429
		$decalage = $bd - $bg + 1;
430
		$bg = $this->proteger($bg);
430
		$bg = Cel::db()->proteger($bg);
431
		$id_utilisateur = $this->proteger($this->utilisateur_id);
431
		$id_utilisateur = Cel::db()->proteger($this->utilisateur_id);
Line 432... Line 432...
432
 
432
 
433
		// Décalage borne droite
433
		// Décalage borne droite
434
		$requete = 	"UPDATE cel_mots_cles{$this->suffix} ".
434
		$requete = 	"UPDATE cel_mots_cles{$this->suffix} ".
435
					"SET bd = cmc_bd - $decalage ".
435
					"SET bd = cmc_bd - $decalage ".
Line 449... Line 449...
449
 
449
 
450
	/**
450
	/**
451
	 * Décale à droite des bornes donées d'un intervalle positif donné (pour l'ajout d'un sous arbre).
451
	 * Décale à droite des bornes donées d'un intervalle positif donné (pour l'ajout d'un sous arbre).
452
	 */
452
	 */
453
	private function decalerBornesPlusIntervalle($valeur_bornes, $largeur) {
453
	private function decalerBornesPlusIntervalle($valeur_bornes, $largeur) {
454
		$valeur_bornes = $this->proteger($valeur_bornes);
454
		$valeur_bornes = Cel::db()->proteger($valeur_bornes);
455
		$largeur = $this->proteger($largeur);
455
		$largeur = Cel::db()->proteger($largeur);
Line 456... Line 456...
456
		$id_utilisateur = $this->proteger($this->utilisateur_id);
456
		$id_utilisateur = Cel::db()->proteger($this->utilisateur_id);
457
 
457
 
458
		// Décalage borne droite
458
		// Décalage borne droite
459
		$requete = 	"UPDATE cel_mots_cles{$this->suffix} ".
459
		$requete = 	"UPDATE cel_mots_cles{$this->suffix} ".
Line 474... Line 474...
474
 
474
 
475
	/**
475
	/**
476
	 * Inverse les bornes d'un intervalle pour l'exclure des modifications sur l'arbre sans changer la hiérarchie.
476
	 * Inverse les bornes d'un intervalle pour l'exclure des modifications sur l'arbre sans changer la hiérarchie.
477
	 */
477
	 */
478
	private function exclureIntervalle($bg, $bd) {
478
	private function exclureIntervalle($bg, $bd) {
479
		$bg = $this->proteger($bg);
479
		$bg = Cel::db()->proteger($bg);
480
		$bd = $this->proteger($bd);
480
		$bd = Cel::db()->proteger($bd);
481
		$id_utilisateur = $this->proteger($this->utilisateur_id);
481
		$id_utilisateur = Cel::db()->proteger($this->utilisateur_id);
482
		$requete = 	"UPDATE cel_mots_cles{$this->suffix} ".
482
		$requete = 	"UPDATE cel_mots_cles{$this->suffix} ".
483
					"SET bd = bd - $bd - 1 , ".
483
					"SET bd = bd - $bd - 1 , ".
484
					"	bg =  bg - $bd - 1 ".
484
					"	bg =  bg - $bd - 1 ".
485
					"WHERE bd <= $bd ".
485
					"WHERE bd <= $bd ".
Line 491... Line 491...
491
	/**
491
	/**
492
	 * Recale les bornes dun intervalle pour l'inclure dans l'arbre à la bonne place.
492
	 * Recale les bornes dun intervalle pour l'inclure dans l'arbre à la bonne place.
493
	 * Décalage borne droite
493
	 * Décalage borne droite
494
	 */
494
	 */
495
	private function inclureIntervalle($bg, $bd, $largeur, $modif_niveau) {
495
	private function inclureIntervalle($bg, $bd, $largeur, $modif_niveau) {
496
		$bg = $this->proteger($bg);
496
		$bg = Cel::db()->proteger($bg);
497
		$bd = $this->proteger($bd);
497
		$bd = Cel::db()->proteger($bd);
498
		$largeur = $this->proteger($largeur);
498
		$largeur = Cel::db()->proteger($largeur);
499
		$modif_niveau = $this->proteger($modif_niveau);
499
		$modif_niveau = Cel::db()->proteger($modif_niveau);
500
		$id_utilisateur = $this->proteger($this->utilisateur_id);
500
		$id_utilisateur = Cel::db()->proteger($this->utilisateur_id);
501
		$requete = 	"UPDATE cel_mots_cles{$this->suffix} ".
501
		$requete = 	"UPDATE cel_mots_cles{$this->suffix} ".
502
					"SET bg =  bg + $largeur , ".
502
					"SET bg =  bg + $largeur , ".
503
					"	bd = bd + $largeur, ".
503
					"	bd = bd + $largeur, ".
504
					"	niveau = niveau + $modif_niveau ".
504
					"	niveau = niveau + $modif_niveau ".
505
					"WHERE bg >=  $bg ".
505
					"WHERE bg >=  $bg ".
Line 508... Line 508...
508
 
508
 
509
		return $this->executerSQL($requete);
509
		return $this->executerSQL($requete);
Line 510... Line 510...
510
	}
510
	}
511
 
511
 
512
	private function changerPere($mot_cle_id, $id_pere) {
512
	private function changerPere($mot_cle_id, $id_pere) {
513
		$mot_cle_id = $this->proteger($mot_cle_id);
513
		$mot_cle_id = Cel::db()->proteger($mot_cle_id);
514
		$id_pere = $this->proteger($id_pere);
514
		$id_pere = Cel::db()->proteger($id_pere);
515
		$id_utilisateur = $this->proteger($this->utilisateur_id);
515
		$id_utilisateur = Cel::db()->proteger($this->utilisateur_id);
516
		$requete = 	"UPDATE cel_mots_cles{$this->suffix} ".
516
		$requete = 	"UPDATE cel_mots_cles{$this->suffix} ".
517
					"SET ce_mot_cle_".(($this->suffix == self::OBS_TABLE_SUFFIXE) ? 'obs' : 'image')."_parent = $id_pere ".
517
					"SET ce_mot_cle_".(($this->suffix == self::OBS_TABLE_SUFFIXE) ? 'obs' : 'image')."_parent = $id_pere ".
Line 518... Line 518...
518
					"WHERE id_mot_cle_".(($this->suffix == self::OBS_TABLE_SUFFIXE) ? 'obs' : 'image')." = $mot_cle_id ".
518
					"WHERE id_mot_cle_".(($this->suffix == self::OBS_TABLE_SUFFIXE) ? 'obs' : 'image')." = $mot_cle_id ".
519
					"	AND id_utilisateur = $id_utilisateur ";
519
					"	AND id_utilisateur = $id_utilisateur ";
Line 520... Line 520...
520
 
520
 
521
		return $this->executerSQL($requete);
521
		return $this->executerSQL($requete);
522
	}
522
	}
523
 
523
 
524
	private function executerSQL($requete) {
524
	private function executerSQL($requete) {
Line 525... Line 525...
525
		$execution = $this->executer($requete);
525
		$execution = Cel::db()->executer($requete);
526
		$execution = ($execution === false) ? false : true;
526
		$execution = ($execution === false) ? false : true;
527
		return $execution;
527
		return $execution;
528
	}
528
	}
Line 529... Line 529...
529
 
529
 
530
	private function recupererValeur($requete) {
530
	private function recupererValeur($requete) {
531
		$resultat = $this->requeter($requete, Cel::SQL_RETOUR_COLONNE);
531
		$resultat = Cel::db()->requeter($requete, Cel::SQL_RETOUR_COLONNE);
532
		return $resultat;
532
		return $resultat;
Line 533... Line 533...
533
	}
533
	}
534
 
534
 
535
	private function recupererResultat($requete) {
535
	private function recupererResultat($requete) {
536
		$resultat = $this->requeter($requete, Cel::SQL_RETOUR_LIGNE, Cel::SQL_MODE_ASSOC);
536
		$resultat = Cel::db()->requeter($requete, Cel::SQL_RETOUR_LIGNE, Cel::SQL_MODE_ASSOC);
Line 537... Line 537...
537
		return $resultat;
537
		return $resultat;
538
	}
538
	}
539
 
539
 
540
	private function recupererResultats($requete) {
540
	private function recupererResultats($requete) {
541
		$resultat = $this->requeter($requete, Cel::SQL_RETOUR_COMPLET, Cel::SQL_MODE_ASSOC);
541
		$resultat = Cel::db()->requeter($requete, Cel::SQL_RETOUR_COMPLET, Cel::SQL_MODE_ASSOC);
542
		return $resultat;
542
		return $resultat;
543
	}
543
	}