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