8d0f67cb999331dccdf42f7fec45eceaea3fdb2d
[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-2016 *
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 // un bug a permis a un moment que des breves soient dans des sous rubriques
67 // lorsque ce cas se presente, il faut relocaliser la breve dans son secteur, plutot que n'importe ou
68 if ($valeurs['id_parent']) {
69 $valeurs['id_parent'] = sql_getfetsel(
70 'id_secteur',
71 'spip_rubriques',
72 'id_rubrique=' . intval($valeurs['id_parent'])
73 );
74 }
75
76 return $valeurs;
77 }
78
79
80 /**
81 * Identifier le formulaire en faisant abstraction des paramètres qui
82 * ne representent pas l'objet édité
83 *
84 * @param int|string $id_breve
85 * Identifiant de la brève. 'new' pour une nouvelle brève.
86 * @param int $id_rubrique
87 * Identifiant de la rubrique parente (si connue)
88 * @param string $retour
89 * URL de redirection après le traitement
90 * @param int $lier_trad
91 * Identifiant de la brève que l'on cherche à traduire
92 * @param string $config_fonc
93 * Nom de la fonction ajoutant des configurations particulières au formulaire
94 * @param array $row
95 * Valeurs de la ligne SQL de la brève, si connue
96 * @param string $hidden
97 * Contenu HTML ajouté en même temps que les champs cachés du formulaire.
98 * @return string
99 * Hash du formulaire
100 **/
101 function formulaires_editer_breve_identifier_dist(
102 $id_breve = 'new',
103 $id_rubrique = 0,
104 $retour = '',
105 $lier_trad = 0,
106 $config_fonc = 'breves_edit_config',
107 $row = array(),
108 $hidden = ''
109 ) {
110 return serialize(array(intval($id_breve), $lier_trad));
111 }
112
113
114 /**
115 * Choix par défaut des options de présentation
116 *
117 * @param array $row
118 * Valeurs de la ligne SQL d'un mot, si connu
119 * return array
120 * Configuration pour le formulaire
121 */
122 function breves_edit_config($row) {
123 global $spip_lang;
124
125 $config = $GLOBALS['meta'];
126 $config['lignes'] = 8;
127 $config['langue'] = $spip_lang;
128
129 $config['restreint'] = ($row['statut'] == 'publie');
130
131 return $config;
132 }
133
134 /**
135 * Vérification du formulaire d'édition d'une brève
136 *
137 * @see formulaires_editer_objet_verifier()
138 *
139 * @param int|string $id_breve
140 * Identifiant de la brève. 'new' pour une nouvelle brève.
141 * @param int $id_rubrique
142 * Identifiant de la rubrique parente (si connue)
143 * @param string $retour
144 * URL de redirection après le traitement
145 * @param int $lier_trad
146 * Identifiant de la brève que l'on cherche à traduire
147 * @param string $config_fonc
148 * Nom de la fonction ajoutant des configurations particulières au formulaire
149 * @param array $row
150 * Valeurs de la ligne SQL de la brève, si connue
151 * @param string $hidden
152 * Contenu HTML ajouté en même temps que les champs cachés du formulaire.
153 * @return array
154 * Tableau des erreurs
155 */
156 function formulaires_editer_breve_verifier_dist(
157 $id_breve = 'new',
158 $id_rubrique = 0,
159 $retour = '',
160 $lier_trad = 0,
161 $config_fonc = 'breves_edit_config',
162 $row = array(),
163 $hidden = ''
164 ) {
165 // auto-renseigner le titre si il n'existe pas
166 titre_automatique('titre', array('texte'));
167 // on ne demande pas le titre obligatoire : il sera rempli a la volee dans editer_article si vide
168 $erreurs = formulaires_editer_objet_verifier('breve', $id_breve, array('id_parent'));
169
170 return $erreurs;
171 }
172
173 /**
174 * Traitements du formulaire d'édition d'une brève
175 *
176 * @see formulaires_editer_objet_traiter()
177 *
178 * @param int|string $id_breve
179 * Identifiant de la brève. 'new' pour une nouvelle brève.
180 * @param int $id_rubrique
181 * Identifiant de la rubrique parente (si connue)
182 * @param string $retour
183 * URL de redirection après le traitement
184 * @param int $lier_trad
185 * Identifiant de la brève que l'on cherche à traduire
186 * @param string $config_fonc
187 * Nom de la fonction ajoutant des configurations particulières au formulaire
188 * @param array $row
189 * Valeurs de la ligne SQL de la brève, si connue
190 * @param string $hidden
191 * Contenu HTML ajouté en même temps que les champs cachés du formulaire.
192 * @return array
193 * Tableau des erreurs
194 */
195 function formulaires_editer_breve_traiter_dist(
196 $id_breve = 'new',
197 $id_rubrique = 0,
198 $retour = '',
199 $lier_trad = 0,
200 $config_fonc = 'breves_edit_config',
201 $row = array(),
202 $hidden = ''
203 ) {
204 return formulaires_editer_objet_traiter(
205 'breve',
206 $id_breve,
207 $id_rubrique,
208 $lier_trad,
209 $retour,
210 $config_fonc,
211 $row,
212 $hidden
213 );
214 }