diff --git a/ecrire/inc_mots.php3 b/ecrire/inc_mots.php3 index 6318a4ea0924262776333101b8933930fd77d6be..8751835342d010b4e86cb7c86924db51db58709a 100644 --- a/ecrire/inc_mots.php3 +++ b/ecrire/inc_mots.php3 @@ -101,6 +101,22 @@ function mots_ressemblants($mot, $table_mots, $table_ids='') { } +function un_seul_mot_dans_groupe($id_groupe) +{ + list($u) = spip_fetch_array(spip_query("SELECT unseul FROM spip_groupes_mots WHERE id_groupe = $id_groupe")); + return ($u == 'oui'); +} + +function supprime_mot_de_groupe($id_groupe, $table) +{ + if (un_seul_mot_dans_groupe($id_groupe)) { + $mots = spip_query("SELECT id_mot FROM spip_mots WHERE id_groupe = $id_groupe"); + while ($r = spip_fetch_array($mots)) + spip_query("DELETE FROM spip_mots_$table WHERE id_mot=" . + $r['id_mot']); + } +} + /* * Affiche la liste des mots-cles associes a l'objet * specifie, plus le formulaire d'ajout de mot-cle diff --git a/ecrire/mots_edit.php3 b/ecrire/mots_edit.php3 index 42ee8a2c75e3ee777a4db65f9c01fd5dd776272d..5a5ea4d83eafb04d06308ec1ac9163c29550ef40 100644 --- a/ecrire/mots_edit.php3 +++ b/ecrire/mots_edit.php3 @@ -12,6 +12,7 @@ include ("inc.php3"); +include_ecrire ("inc_mots.php3"); include_ecrire ("inc_logos.php3"); include_ecrire ("inc_sites.php3"); include_ecrire ("inc_abstract_sql.php3"); @@ -30,11 +31,12 @@ if ($connect_statut == '0minirezo' AND $connect_toutes_rubriques) { if (strval($titre_mot)!='') { if ($new == 'oui' && $id_groupe) { - $id_mot = spip_abstract_insert("spip_mots", '(id_groupe)', "($id_groupe)"); + $id_mot = spip_abstract_insert("spip_mots", '(id_groupe)', "($id_groupe)"); - // ajouter le mot a l'article - if (settype($ajouter_id_article, 'integer') AND ($ajouter_id_article>0)) - spip_query("INSERT INTO spip_mots_$table (id_mot, $id_table) VALUES ($id_mot, $ajouter_id_article)"); + $ajouter_id_article = intval($ajouter_id_article); + if ($ajouter_id_article) + supprime_mot_de_groupe($id_groupe, $table); + spip_query("INSERT INTO spip_mots_$table (id_mot, $id_table) VALUES ($id_mot, $ajouter_id_article)"); } $titre_mot = addslashes($titre_mot);