3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
6 * Copyright (c) 2001-2007 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
9 * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
10 * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
11 \***************************************************************************/
13 if (!defined("_ECRIRE_INC_VERSION")) return;
15 include_spip('inc/filtres');
16 include_spip('base/abstract_sql');
18 // Modifier le reglage des forums publics de l'article x
19 // http://doc.spip.org/@action_instituer_mot_dist
20 function action_instituer_mot_dist()
22 $securiser_action = charger_fonction('securiser_action', 'inc');
23 $arg = $securiser_action();
24 if (!preg_match(",^(\d+)(\W(\d+)\W(\w+)\W(\w+))?$,", $arg, $r)) {
25 spip_log("action_instituer_mot_dist '$arg' pas compris");
26 } else action_instituer_mot_post($r);
29 // http://doc.spip.org/@action_instituer_mot_post
30 function action_instituer_mot_post($r)
33 $id_groupe = intval(_request('id_groupe'));
35 if (!$id_mot AND $id_groupe) {
36 $id_mot = spip_abstract_insert("spip_mots",
37 '(id_groupe)', "($id_groupe)");
40 list(,,,$ajouter_id_article, $table, $table_id) = $r;
41 ajouter_nouveau_mot($id_groupe, $table, $table_id, $id_mot, $ajouter_id_article);
45 // modifier le contenu via l'API
46 include_spip('inc/modifier');
47 revision_mot($id_mot);
48 if ($redirect = _request('redirect'))
49 redirige_par_entete(parametre_url(urldecode($redirect),
50 'id_mot', $id_mot, '&'));
54 // http://doc.spip.org/@ajouter_nouveau_mot
55 function ajouter_nouveau_mot($id_groupe, $table, $table_id, $id_mot, $id)
57 if (un_seul_mot_dans_groupe($id_groupe)) {
58 $mots = spip_query("SELECT id_mot FROM spip_mots WHERE id_groupe = $id_groupe");
59 while ($r = spip_fetch_array($mots))
60 spip_query("DELETE FROM spip_mots_$table WHERE id_mot=" . $r['id_mot'] ." AND $table_id=$id");
62 spip_abstract_insert("spip_mots_$table", "(id_mot, $table_id)", "($id_mot, $id)");
66 // http://doc.spip.org/@un_seul_mot_dans_groupe
67 function un_seul_mot_dans_groupe($id_groupe)
69 $u = spip_fetch_array(spip_query("SELECT unseul FROM spip_groupes_mots WHERE id_groupe = $id_groupe"));
70 return ($u['unseul'] == 'oui');