Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 958 Rev 970
Line 29... Line 29...
29
		$this->mode = $mode;
29
		$this->mode = $mode;
30
	}
30
	}
Line 31... Line 31...
31
	
31
	
Line -... Line 32...
-
 
32
	public function ajouterLiaisonMotsCles($id_utilisateur, $ids_images_ou_obs, $mots_cles) {
-
 
33
		
32
	public function ajouterLiaisonMotsCles($id_utilisateur, $ids_images_ou_obs, $mots_cles) {
34
		$champ = ($this->mode == 'obs') ? 'id_observation' : 'id_image'; 
33
		
35
		
34
		// le mot clé ignore est spécifique mysql, mais il est utilisé ici pour des raisons
36
		// le mot clé ignore est spécifique mysql, mais il est utilisé ici pour des raisons
35
		// de performance, à remplacer par un test sur les mots clés déjà existant si ça gène
37
		// de performance, à remplacer par un test sur les mots clés déjà existant si ça gène
36
		$requete_liaison_mots_cles = 'INSERT IGNORE INTO cel_'.$this->mode.'_mots_cles '.
38
		$requete_liaison_mots_cles = 'INSERT IGNORE INTO cel_'.$this->mode.'_mots_cles '.
Line 37... Line 39...
37
								   '(id_observation, id_mot_cle_utilisateur) '.
39
								   '('.$champ.', id_mot_cle_utilisateur) '.
38
								   'VALUES ';
40
								   'VALUES ';
39
								   
41
								   
40
		foreach($ids_images_ou_obs as $id_image_ou_obs) {
42
		foreach($ids_images_ou_obs as $id_image_ou_obs) {
41
			foreach($mots_cles as $mot) {
43
			foreach($mots_cles as $mot) {
42
				$requete_liaison_mots_cles .= '('.$id_image_ou_obs.','.$this->proteger($mot).'),';
44
				$requete_liaison_mots_cles .= '('.$id_image_ou_obs.','.$this->proteger($mot).'),';
Line 43... Line 45...
43
			}
45
			}
44
			$this->regenererIndexTexteMotCle($id_image_ou_obs, $id_utilisateur);
46
			$this->regenererIndexTexteMotCle($id_image_ou_obs, $id_utilisateur);
-
 
47
		}
45
		}
48
		
Line 46... Line 49...
46
		
49
		$requete_liaison_mots_cles = rtrim($requete_liaison_mots_cles,',');
47
		$requete_liaison_mots_cles = rtrim($requete_liaison_mots_cles,',');
50
		
48
 
51
		echo $requete_liaison_mots_cles;
Line 49... Line 52...
49
		$resultat_liaison_mots_cles = $this->executer($requete_liaison_mots_cles);
52
		$resultat_liaison_mots_cles = $this->executer($requete_liaison_mots_cles);
50
		
53
		
Line -... Line 54...
-
 
54
		if(!$resultat_liaison_mots_cles) {
-
 
55
			$this->logger('CEL_bugs', 'Erreur d\'ajout de mots clés à des '.$this->mode.' : '.$requete_liaison_mots_cles);	
-
 
56
		}
-
 
57
		
-
 
58
		return $resultat_liaison_mots_cles;			
-
 
59
	}
-
 
60
	
-
 
61
	public function supprimerLiaisonMotsClesEtRegenererIndexTexte($id_utilisateur, $ids_images_ou_obs, $mots_cles) {
-
 
62
		
-
 
63
		$retour = $this->supprimerLiaisonMotsCles($id_utilisateur, $ids_images_ou_obs, $mots_cles);
-
 
64
		
51
		if(!$resultat_liaison_mots_cles) {
65
		foreach($ids_images_ou_obs as $image_ou_obs) {
Line 52... Line 66...
52
			$this->logger('CEL_bugs', 'Erreur d\'ajout de mots clés à des '.$this->mode.' : '.$requete_liaison_mots_cles);	
66
			$this->regenererIndexTexteMotCle($image_ou_obs, $id_utilisateur);	
Line 53... Line 67...
53
		}
67
		}	
54
		
68
		
55
		return $resultat_liaison_mots_cles;			
69
		return $retour;
Line 56... Line 70...
56
	}
70
	}
57
	
71
	
58
	public function supprimerLiaisonMotsCles($id_utilisateur, $ids_images_ou_obs, $mots_cles) {
72
	public function supprimerLiaisonMotsCles($id_utilisateur, $ids_images_ou_obs, $mots_cles) {
59
		
73
		
60
		$champ = ($this->mode == 'obs') ? 'id_observation' : 'id_image'; 
74
		$champ = ($this->mode == 'obs') ? 'id_observation' : 'id_image'; 
61
		
75
		
62
		$requete_suppression_liaison_mot_cle = 'DELETE FROM cel_'.$this->mode.'_mots_cles WHERE '.
76
		$requete_suppression_liaison_mot_cle = 'DELETE FROM cel_'.$this->mode.'_mots_cles WHERE '.
Line 63... Line 77...
63
											   $champ.' IN ('.implode(',',$ids_images_ou_obs).') '.
77
											   $champ.' IN ('.implode(',',$ids_images_ou_obs).') '.
64
											   'AND id_mot_cle_utilisateur IN ('.implode(',',$mots_cles).')';
78
											   'AND id_mot_cle_utilisateur IN ('.implode(',',$mots_cles).')';
Line -... Line 79...
-
 
79
		
-
 
80
		$resultat_suppression_mot_cle = $this->executer($requete_suppression_liaison_mot_cle);
-
 
81
 
-
 
82
		if ($requete_suppression_liaison_mot_cle !== false) {
-
 
83
			$retour = true;
-
 
84
		} else {
-
 
85
			$message = "Erreur de suppression des mots clés de plusieurs ".$this->mode." : $requete";
-
 
86
			$this->logger($message);
65
		
87
			
-
 
88
			$retour = false;
-
 
89
		}
-
 
90
		
66
		$resultat_suppression_mot_cle = $this->executer($requete_suppression_liaison_mot_cle);
91
		return $retour;
-
 
92
	}
-
 
93
	
-
 
94
	public function supprimerToutesLiaisonsPourIdImageOuObs($id_utilisateur, $ids_images_ou_obs) {
-
 
95
		
-
 
96
		$champ = ($this->mode == 'obs') ? 'id_observation' : 'id_image'; 
-
 
97
		
67
		
98
		$requete_suppression_liaison_mot_cle = 'DELETE FROM cel_'.$this->mode.'_mots_cles WHERE '.
Line 68... Line 99...
68
		if ($resultat_suppression_mot_cle) {
99
											   $champ.' IN ('.implode(',',$ids_images_ou_obs).') ';
69
			$retour = true;
100
		
Line 70... Line 101...
70
		} else {
101
		$resultat_suppression_mot_cle = $this->executer($requete_suppression_liaison_mot_cle);