[PLUGINS] +set de base
[lhc/web/www.git] / www / plugins / formidable_1_0 / action / editer_formulaire.php
1 <?php
2
3 // Sécurité
4 if (!defined("_ECRIRE_INC_VERSION")) return;
5
6 /**
7 * Action de création / Modification d'un formulaire
8 * @param unknown_type $arg
9 * @return unknown_type
10 */
11 function action_editer_formulaire_dist($arg=null) {
12 if (is_null($arg)){
13 $securiser_action = charger_fonction('securiser_action', 'inc');
14 $arg = $securiser_action();
15 }
16
17 // si id_formulaire n'est pas un nombre, c'est une creation
18 if (!$id_formulaire = intval($arg)) {
19 $id_formulaire = insert_formulaire();
20 }
21
22 // Enregistre l'envoi dans la BD
23 if ($id_formulaire > 0) $err = formulaire_set($id_formulaire);
24
25 if (_request('redirect')) {
26 $redirect = parametre_url(urldecode(_request('redirect')),
27 'id_formulaire', $id_formulaire, '&') . $err;
28
29 include_spip('inc/headers');
30 redirige_par_entete($redirect);
31 }
32 else
33 return array($id_formulaire,$err);
34 }
35
36 /**
37 * Crée un nouveau formulaire et retourne son ID
38 *
39 * @return int id_formulaire
40 */
41 function insert_formulaire() {
42 // Envoyer aux plugins
43 $champs = pipeline('pre_insertion',
44 array(
45 'args' => array(
46 'table' => 'spip_formulaires',
47 ),
48 'data' => $champs
49 )
50 );
51 $id_formulaire = sql_insertq("spip_formulaires");
52
53 return $id_formulaire;
54 }
55
56 /**
57 * Appelle la fonction de modification d'un formulaire
58 *
59 * @param int $id_formulaire
60 * @param unknown_type $set
61 * @return $err
62 */
63 function formulaire_set($id_formulaire, $set=null) {
64 include_spip('inc/saisies');
65 $err = '';
66
67 $c = array();
68 $champs = saisies_lister_champs($GLOBALS['formulaires']['editer_formulaire']);
69 foreach ($champs as $champ)
70 $c[$champ] = _request($champ,$set);
71
72 include_spip('inc/modifier');
73 revision_formulaire($id_formulaire, $c);
74
75 return $err;
76 }
77
78 /**
79 * Enregistre une révision de formulaire
80 *
81 * @param int $id_formulaire
82 * @param array $c
83 * @return
84 */
85 function revision_formulaire($id_formulaire, $c=false) {
86 $invalideur = "id='id_formulaire/$id_formulaire'";
87
88 modifier_contenu('formulaire', $id_formulaire,
89 array(
90 'nonvide' => array('titre' => _T('info_sans_titre')),
91 'invalideur' => $invalideur
92 ),
93 $c);
94
95 return ''; // pas d'erreur
96 }
97
98 ?>