source: spip-zone/_core_/plugins/mots/action/editer_groupe_mots.php @ 93645

Last change on this file since 93645 was 93645, checked in by marcimat@…, 5 years ago

Meilleure compatibilité avec PSR-2 et nos règles d'écriture, en appliquant
différents fix avec php-cs-fixers. Fixers appliqués ici :

'encoding', utf8
'eof_ending',
un saut de ligne en fin de fichier
'elseif', elseif plutôt que else if
'function_call_space',
espaces sur fonctions
'function_declaration', espaces sur fonctions
'function_typehint_space',
espaces sur fonctions
'linefeed', sauts de ligne \n uniquement
'lowercase_constants',
true, false, null en munuscule
'lowercase_keywords', mots clés PHP en lowercase
'method_argument_space',
espaces sur appels de fonctions
'multiple_use', use unique sur fonctions anonymes
'newline_after_open_tag',
ouverture de php… et c'est tout sur cette ligne
'operators_spaces', espaces de part et d'autres des opérateurs binaires
'parenthesis',
pas d'espace juste après parenthèse ouvrante, ou avant parenthèse fermante
'php_closing_tag', pas de fermeture de php
'short_tag',
tag PHP corrects
'trailing_spaces', pas d'espace qui traîne en fin de ligne
'visibility',
déclarer 'public / private / protected' sur les méthodes

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