3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
6 * Copyright (c) 2001-2019 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
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 \***************************************************************************/
14 * Gestion du formulaire de d'édition de rubrique
16 * @package SPIP\Core\Rubriques\Formulaires
19 if (!defined('_ECRIRE_INC_VERSION')) {
23 include_spip('inc/actions');
24 include_spip('inc/editer');
28 * Chargement du formulaire d'édition d'une rubrique
30 * @see formulaires_editer_objet_charger()
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
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.
47 * Environnement du formulaire
49 function formulaires_editer_rubrique_charger_dist(
54 $config_fonc = 'rubriques_edit_config',
58 $valeurs = formulaires_editer_objet_charger(
69 if (test_formulaire_inclus_par_modele()){
70 if (intval($id_rubrique) and !autoriser('modifier', 'rubrique', intval($id_rubrique))){
71 $valeurs['editable'] = '';
79 * Choix par défaut des options de présentation
82 * Valeurs de la ligne SQL d'une rubrique, si connue
84 * Configuration pour le formulaire
86 function rubriques_edit_config($row) {
89 $config = $GLOBALS['meta'];
90 $config['lignes'] = 8;
91 $config['langue'] = $spip_lang;
93 $config['restreint'] = (!$GLOBALS['connect_toutes_rubriques']);
99 * Identifier le formulaire en faisant abstraction des paramètres qui
100 * ne représentent pas l'objet édité
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
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.
119 function formulaires_editer_rubrique_identifier_dist(
120 $id_rubrique = 'new',
124 $config_fonc = 'rubriques_edit_config',
128 return serialize(array(intval($id_rubrique), $lier_trad));
132 * Vérifications du formulaire d'édition d'une rubrique
134 * @see formulaires_editer_objet_verifier()
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
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.
151 * Erreurs du formulaire
153 function formulaires_editer_rubrique_verifier_dist(
154 $id_rubrique = 'new',
158 $config_fonc = 'rubriques_edit_config',
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());
171 * Traitements du formulaire d'édition d'une rubrique
173 * @see formulaires_editer_objet_traiter()
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
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.
190 * Retour des traitements
192 function formulaires_editer_rubrique_traiter_dist(
193 $id_rubrique = 'new',
197 $config_fonc = 'rubriques_edit_config',
201 return formulaires_editer_objet_traiter(