31,10 → 31,12 |
|
public function ajouterLiaisonMotsCles($id_utilisateur, $ids_images_ou_obs, $mots_cles) { |
|
$champ = ($this->mode == 'obs') ? 'id_observation' : 'id_image'; |
|
// le mot clé ignore est spécifique mysql, mais il est utilisé ici pour des raisons |
// de performance, à remplacer par un test sur les mots clés déjà existant si ça gène |
$requete_liaison_mots_cles = 'INSERT IGNORE INTO cel_'.$this->mode.'_mots_cles '. |
'(id_observation, id_mot_cle_utilisateur) '. |
'('.$champ.', id_mot_cle_utilisateur) '. |
'VALUES '; |
|
foreach($ids_images_ou_obs as $id_image_ou_obs) { |
45,7 → 47,8 |
} |
|
$requete_liaison_mots_cles = rtrim($requete_liaison_mots_cles,','); |
|
|
echo $requete_liaison_mots_cles; |
$resultat_liaison_mots_cles = $this->executer($requete_liaison_mots_cles); |
|
if(!$resultat_liaison_mots_cles) { |
55,6 → 58,17 |
return $resultat_liaison_mots_cles; |
} |
|
public function supprimerLiaisonMotsClesEtRegenererIndexTexte($id_utilisateur, $ids_images_ou_obs, $mots_cles) { |
|
$retour = $this->supprimerLiaisonMotsCles($id_utilisateur, $ids_images_ou_obs, $mots_cles); |
|
foreach($ids_images_ou_obs as $image_ou_obs) { |
$this->regenererIndexTexteMotCle($image_ou_obs, $id_utilisateur); |
} |
|
return $retour; |
} |
|
public function supprimerLiaisonMotsCles($id_utilisateur, $ids_images_ou_obs, $mots_cles) { |
|
$champ = ($this->mode == 'obs') ? 'id_observation' : 'id_image'; |
64,8 → 78,29 |
'AND id_mot_cle_utilisateur IN ('.implode(',',$mots_cles).')'; |
|
$resultat_suppression_mot_cle = $this->executer($requete_suppression_liaison_mot_cle); |
|
if ($requete_suppression_liaison_mot_cle !== false) { |
$retour = true; |
} else { |
$message = "Erreur de suppression des mots clés de plusieurs ".$this->mode." : $requete"; |
$this->logger($message); |
|
$retour = false; |
} |
|
if ($resultat_suppression_mot_cle) { |
return $retour; |
} |
|
public function supprimerToutesLiaisonsPourIdImageOuObs($id_utilisateur, $ids_images_ou_obs) { |
|
$champ = ($this->mode == 'obs') ? 'id_observation' : 'id_image'; |
|
$requete_suppression_liaison_mot_cle = 'DELETE FROM cel_'.$this->mode.'_mots_cles WHERE '. |
$champ.' IN ('.implode(',',$ids_images_ou_obs).') '; |
|
$resultat_suppression_mot_cle = $this->executer($requete_suppression_liaison_mot_cle); |
|
if ($requete_suppression_liaison_mot_cle !== false) { |
$retour = true; |
} else { |
$message = "Erreur de suppression des mots clés de plusieurs ".$this->mode." : $requete"; |
74,10 → 109,6 |
$retour = false; |
} |
|
foreach($ids_images_ou_obs as $image_ou_obs) { |
$this->regenererIndexTexteMotCle($image_ou_obs, $id_utilisateur); |
} |
|
return $retour; |
} |
|