[SPIP] ~maj v3.0.14-->v3.0.17
[ptitvelo/web/www.git] / www / plugins-dist / mots / action / editer_groupe_mots.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2014 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
8 * *
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 \***************************************************************************/
12
13 /**
14 * Gestion de l'action editer_groupes_mots
15 *
16 * @package SPIP\Mots\Actions
17 */
18 if (!defined("_ECRIRE_INC_VERSION")) return;
19
20 include_spip('inc/filtres');
21
22 /**
23 * Action d'édition d'un groupe de mots clés dans la base de données dont
24 * l'identifiant du groupe est donné en paramètre de cette fonction ou
25 * en argument de l'action sécurisée
26 *
27 * Si aucun identifiant n'est donné, on crée alors un nouveau groupe de
28 * mots clés.
29 *
30 * @param null|int $id_groupe
31 * Identifiant du groupe de mot-clé. En absence utilise l'argument
32 * de l'action sécurisée.
33 * @return array
34 * Liste (identifiant du groupe de mot clé, Texte d'erreur éventuel)
35 **/
36 function action_editer_groupe_mots_dist($id_groupe=null)
37 {
38 if (is_null($id_groupe)){
39 $securiser_action = charger_fonction('securiser_action', 'inc');
40 $id_groupe = $securiser_action();
41 }
42
43 if (!intval($id_groupe)) {
44 $id_groupe = groupe_mots_inserer();
45 }
46
47 if ($id_groupe>0)
48 $err = groupe_mots_modifier($id_groupe);
49
50 return array($id_groupe,$err);
51 }
52
53
54 /**
55 * Insertion d'un groupe de mots clés
56 *
57 * @pipeline_appel pre_insertion
58 * @pipeline_appel post_insertion
59 *
60 * @param string $table
61 * Tables sur lesquels des mots de ce groupe pourront être liés
62 * @return int|bool
63 * Identifiant du nouveau groupe de mots clés.
64 */
65 function groupe_mots_inserer($table='') {
66 $champs = array(
67 'titre' => '',
68 'unseul' => 'non',
69 'obligatoire' => 'non',
70 'tables_liees' => $table,
71 'minirezo' => 'oui',
72 'comite' => 'non',
73 'forum' => 'non'
74 );
75
76 // Envoyer aux plugins
77 $champs = pipeline('pre_insertion',
78 array(
79 'args' => array(
80 'table' => 'spip_groupes_mots',
81 ),
82 'data' => $champs
83 )
84 );
85
86 $id_groupe = sql_insertq("spip_groupes_mots", $champs) ;
87
88 pipeline('post_insertion',
89 array(
90 'args' => array(
91 'table' => 'spip_groupes_mots',
92 'id_objet' => $id_groupe
93 ),
94 'data' => $champs
95 )
96 );
97
98 return $id_groupe;
99 }
100
101
102 /**
103 * Modifier un groupe de mot
104 *
105 * @param int $id_groupe
106 * Identifiant du grope de mots clés à modifier
107 * @param array|null $set
108 * Couples (colonne => valeur) de données à modifier.
109 * En leur absence, on cherche les données dans les champs éditables
110 * qui ont été postés
111 * @return string|null
112 * Chaîne vide si aucune erreur,
113 * Null si aucun champ à modifier,
114 * Chaîne contenant un texte d'erreur sinon.
115 */
116 function groupe_mots_modifier($id_groupe, $set=null) {
117 $err = '';
118
119 include_spip('inc/modifier');
120 $c = collecter_requests(
121 // white list
122 array(
123 'titre', 'descriptif', 'texte', 'tables_liees',
124 'obligatoire', 'unseul',
125 'comite', 'forum', 'minirezo',
126 ),
127 // black list
128 array(),
129 // donnees eventuellement fournies
130 $set
131 );
132 // normaliser les champ oui/non
133 foreach (array(
134 'obligatoire', 'unseul',
135 'comite', 'forum', 'minirezo'
136 ) as $champ)
137 if (isset($c[$champ]))
138 $c[$champ] = ($c[$champ]=='oui'?'oui':'non');
139
140 if (isset($c['tables_liees']) AND is_array($c['tables_liees']))
141 $c['tables_liees'] = implode(',',array_diff($c['tables_liees'],array('')));
142
143 $err = objet_modifier_champs('groupe_mot', $id_groupe,
144 array(
145 'nonvide' => array('titre' => _T('info_sans_titre'))
146 ),
147 $c);
148
149 return $err;
150 }
151
152 // Fonctions Dépréciées
153 // --------------------
154
155 /**
156 * Créer une révision sur un groupe de mot
157 *
158 * @deprecated Utiliser groupe_mots_modifier()
159 * @see groupe_mots_modifier()
160 *
161 * @param int $id_groupe
162 * Identifiant du grope de mots clés à modifier
163 * @param array|null $c
164 * Couples (colonne => valeur) de données à modifier.
165 * En leur absence, on cherche les données dans les champs éditables
166 * qui ont été postés
167 * @return string|null
168 * Chaîne vide si aucune erreur,
169 * Null si aucun champ à modifier,
170 * Chaîne contenant un texte d'erreur sinon.
171 */
172 function revision_groupe_mot($id_groupe, $c=false) {
173 return groupe_mots_modifier($id_groupe,$c);
174 }
175
176
177 /**
178 * Insertion d'un groupe de mots clés
179 *
180 * @deprecated Utiliser groupe_mots_inserer() ou objet_inserer()
181 * @see groupe_mots_inserer()
182 *
183 * @param string $table
184 * Tables sur lesquels des mots de ce groupe pourront être liés
185 * @return int|bool
186 * Identifiant du nouveau groupe de mots clés.
187 */
188 function groupemots_inserer($table='') {
189 return groupe_mots_inserer($table);
190 }
191
192 /**
193 * Modifier un groupe de mot
194 *
195 * @deprecated Utiliser groupe_mots_modifier() ou objet_modifier()
196 * @see groupe_mots_modifier()
197 *
198 * @param int $id_groupe
199 * Identifiant du grope de mots clés à modifier
200 * @param array|null $set
201 * Couples (colonne => valeur) de données à modifier.
202 * En leur absence, on cherche les données dans les champs éditables
203 * qui ont été postés
204 * @return string|null
205 * Chaîne vide si aucune erreur,
206 * Null si aucun champ à modifier,
207 * Chaîne contenant un texte d'erreur sinon.
208 */
209 function groupemots_modifier($id_groupe, $set=null) {
210 return groupe_mots_modifier($id_groupe, $set);
211 }
212 ?>