2254bf8cabab416df9c6e725962bb882c4322803
4 if (!defined("_ECRIRE_INC_VERSION")) return;
7 * Action de création / Modification d'un formulaire
8 * @param unknown_type $arg
11 function action_editer_formulaire_dist($arg=null) {
13 $securiser_action = charger_fonction('securiser_action', 'inc');
14 $arg = $securiser_action();
17 // si id_formulaire n'est pas un nombre, c'est une creation
18 if (!$id_formulaire = intval($arg)) {
19 $id_formulaire = insert_formulaire();
22 // Enregistre l'envoi dans la BD
23 if ($id_formulaire > 0) $err = formulaire_set($id_formulaire);
25 if (_request('redirect')) {
26 $redirect = parametre_url(urldecode(_request('redirect')),
27 'id_formulaire', $id_formulaire, '&') . $err;
29 include_spip('inc/headers');
30 redirige_par_entete($redirect);
33 return array($id_formulaire,$err);
37 * Crée un nouveau formulaire et retourne son ID
39 * @return int id_formulaire
41 function insert_formulaire() {
42 // Envoyer aux plugins
43 $champs = pipeline('pre_insertion',
46 'table' => 'spip_formulaires',
51 $id_formulaire = sql_insertq("spip_formulaires");
53 return $id_formulaire;
57 * Appelle la fonction de modification d'un formulaire
59 * @param int $id_formulaire
60 * @param unknown_type $set
63 function formulaire_set($id_formulaire, $set=null) {
64 include_spip('inc/saisies');
68 $champs = saisies_lister_champs($GLOBALS['formulaires']['editer_formulaire']);
69 foreach ($champs as $champ)
70 $c[$champ] = _request($champ,$set);
72 include_spip('inc/modifier');
73 revision_formulaire($id_formulaire, $c);
79 * Enregistre une révision de formulaire
81 * @param int $id_formulaire
85 function revision_formulaire($id_formulaire, $c=false) {
86 $invalideur = "id='id_formulaire/$id_formulaire'";
88 modifier_contenu('formulaire', $id_formulaire,
90 'nonvide' => array('titre' => _T('info_sans_titre')),
91 'invalideur' => $invalideur
95 return ''; // pas d'erreur