[SPIP] v3.2.7-->v3.2.9
[lhc/web/www.git] / www / prive / formulaires / editer_rubrique.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2019 *
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 du formulaire de d'édition de rubrique
15 *
16 * @package SPIP\Core\Rubriques\Formulaires
17 **/
18
19 if (!defined('_ECRIRE_INC_VERSION')) {
20 return;
21 }
22
23 include_spip('inc/actions');
24 include_spip('inc/editer');
25
26
27 /**
28 * Chargement du formulaire d'édition d'une rubrique
29 *
30 * @see formulaires_editer_objet_charger()
31 *
32 * @param int|string $id_rubrique
33 * Identifiant de la rubrique. 'new' pour une nouvelle rubrique
34 * @param int $id_parent
35 * Identifiant de la rubrique parente
36 * @param string $retour
37 * URL de redirection après le traitement
38 * @param int $lier_trad
39 * Identifiant éventuel d'une rubrique source de traduction
40 * @param string $config_fonc
41 * Nom de la fonction ajoutant des configurations particulières au formulaire
42 * @param array $row
43 * Valeurs de la ligne SQL de la rubrique, si connue
44 * @param string $hidden
45 * Contenu HTML ajouté en même temps que les champs cachés du formulaire.
46 * @return array
47 * Environnement du formulaire
48 **/
49 function formulaires_editer_rubrique_charger_dist(
50 $id_rubrique = 'new',
51 $id_parent = 0,
52 $retour = '',
53 $lier_trad = 0,
54 $config_fonc = 'rubriques_edit_config',
55 $row = array(),
56 $hidden = ''
57 ) {
58 $valeurs = formulaires_editer_objet_charger(
59 'rubrique',
60 $id_rubrique,
61 $id_parent,
62 $lier_trad,
63 $retour,
64 $config_fonc,
65 $row,
66 $hidden
67 );
68
69 if (test_formulaire_inclus_par_modele()){
70 if (intval($id_rubrique) and !autoriser('modifier', 'rubrique', intval($id_rubrique))){
71 $valeurs['editable'] = '';
72 }
73 }
74
75 return $valeurs;
76 }
77
78 /**
79 * Choix par défaut des options de présentation
80 *
81 * @param array $row
82 * Valeurs de la ligne SQL d'une rubrique, si connue
83 * return array
84 * Configuration pour le formulaire
85 */
86 function rubriques_edit_config($row) {
87 global $spip_lang;
88
89 $config = $GLOBALS['meta'];
90 $config['lignes'] = 8;
91 $config['langue'] = $spip_lang;
92
93 $config['restreint'] = (!$GLOBALS['connect_toutes_rubriques']);
94
95 return $config;
96 }
97
98 /**
99 * Identifier le formulaire en faisant abstraction des paramètres qui
100 * ne représentent pas l'objet édité
101 *
102 * @param int|string $id_rubrique
103 * Identifiant de la rubrique. 'new' pour une nouvelle rubrique
104 * @param int $id_parent
105 * Identifiant de la rubrique parente
106 * @param string $retour
107 * URL de redirection après le traitement
108 * @param int $lier_trad
109 * Identifiant éventuel d'une rubrique source de traduction
110 * @param string $config_fonc
111 * Nom de la fonction ajoutant des configurations particulières au formulaire
112 * @param array $row
113 * Valeurs de la ligne SQL de la rubrique, si connue
114 * @param string $hidden
115 * Contenu HTML ajouté en même temps que les champs cachés du formulaire.
116 * @return string
117 * Hash du formulaire
118 */
119 function formulaires_editer_rubrique_identifier_dist(
120 $id_rubrique = 'new',
121 $id_parent = 0,
122 $retour = '',
123 $lier_trad = 0,
124 $config_fonc = 'rubriques_edit_config',
125 $row = array(),
126 $hidden = ''
127 ) {
128 return serialize(array(intval($id_rubrique), $lier_trad));
129 }
130
131 /**
132 * Vérifications du formulaire d'édition d'une rubrique
133 *
134 * @see formulaires_editer_objet_verifier()
135 *
136 * @param int|string $id_rubrique
137 * Identifiant de la rubrique. 'new' pour une nouvelle rubrique
138 * @param int $id_parent
139 * Identifiant de la rubrique parente
140 * @param string $retour
141 * URL de redirection après le traitement
142 * @param int $lier_trad
143 * Identifiant éventuel d'une rubrique source de traduction
144 * @param string $config_fonc
145 * Nom de la fonction ajoutant des configurations particulières au formulaire
146 * @param array $row
147 * Valeurs de la ligne SQL de la rubrique, si connue
148 * @param string $hidden
149 * Contenu HTML ajouté en même temps que les champs cachés du formulaire.
150 * @return array
151 * Erreurs du formulaire
152 **/
153 function formulaires_editer_rubrique_verifier_dist(
154 $id_rubrique = 'new',
155 $id_parent = 0,
156 $retour = '',
157 $lier_trad = 0,
158 $config_fonc = 'rubriques_edit_config',
159 $row = array(),
160 $hidden = ''
161 ) {
162 // auto-renseigner le titre si il n'existe pas
163 titre_automatique('titre', array('descriptif', 'texte'));
164 // on ne demande pas le titre obligatoire : il sera rempli a la volee dans editer_rubrique si vide
165 $erreurs = formulaires_editer_objet_verifier('rubrique', $id_rubrique, array());
166
167 return $erreurs;
168 }
169
170 /**
171 * Traitements du formulaire d'édition d'une rubrique
172 *
173 * @see formulaires_editer_objet_traiter()
174 *
175 * @param int|string $id_rubrique
176 * Identifiant de la rubrique. 'new' pour une nouvelle rubrique
177 * @param int $id_parent
178 * Identifiant de la rubrique parente
179 * @param string $retour
180 * URL de redirection après le traitement
181 * @param int $lier_trad
182 * Identifiant éventuel d'une rubrique source de traduction
183 * @param string $config_fonc
184 * Nom de la fonction ajoutant des configurations particulières au formulaire
185 * @param array $row
186 * Valeurs de la ligne SQL de la rubrique, si connue
187 * @param string $hidden
188 * Contenu HTML ajouté en même temps que les champs cachés du formulaire.
189 * @return array
190 * Retour des traitements
191 **/
192 function formulaires_editer_rubrique_traiter_dist(
193 $id_rubrique = 'new',
194 $id_parent = 0,
195 $retour = '',
196 $lier_trad = 0,
197 $config_fonc = 'rubriques_edit_config',
198 $row = array(),
199 $hidden = ''
200 ) {
201 return formulaires_editer_objet_traiter(
202 'rubrique',
203 $id_rubrique,
204 $id_parent,
205 $lier_trad,
206 $retour,
207 $config_fonc,
208 $row,
209 $hidden
210 );
211 }