[PLUGINS] +set de base
[lhc/web/www.git] / www / plugins / formidable_1_0 / formulaires / editer_formulaire.php
1 <?php
2
3 // Sécurité
4 if (!defined("_ECRIRE_INC_VERSION")) return;
5
6 include_spip('inc/saisies');
7 include_spip('action/editer_liens');
8 include_spip('inc/config');
9
10 function formulaires_editer_formulaire_charger($id_formulaire, $nouveau){
11 $contexte = array();
12 $editer_formulaire = $GLOBALS['formulaires']['editer_formulaire'];
13 $champs = saisies_lister_champs($editer_formulaire);
14 $id_formulaire = intval($id_formulaire);
15
16 $contexte['_contenu'] = $editer_formulaire;
17
18 // Est-ce qu'on a le droit ?
19 if (autoriser('editer', 'formulaire', $id_formulaire)){
20 // Est-ce que le formulaire existe ?
21 if ($id_formulaire > 0 and $formulaire = sql_fetsel('*', 'spip_formulaires', 'id_formulaire = '.$id_formulaire)){
22 // Alors on pré-remplit avec les valeurs
23 foreach($champs as $champ)
24 $contexte[$champ] = $formulaire[$champ];
25 $contexte['_action'] = array('editer_formulaire', $id_formulaire);
26 }
27 // Sinon si c'est une création
28 elseif ($nouveau == 'oui'){
29 // On déclare juste les champs
30 foreach ($champs as $champ)
31 $contexte[$champ] = '';
32 $contexte['_action'] = array('editer_formulaire', $nouveau);
33 }
34 // Sinon c'est n'importe quoi
35 else{
36 $contexte['editable'] = false;
37 $contexte['message_erreur'] = 'Erreur dans les parametres.';
38 }
39 }
40 else{
41 $contexte['editable'] = false;
42 $contexte['message_erreur'] = _T('formidable:erreur_autorisation');
43 }
44
45 return $contexte;
46 }
47
48 function formulaires_editer_formulaire_verifier($id_formulaire, $nouveau){
49 $configurer_formulaire = $GLOBALS['formulaires']['editer_formulaire'];
50 $erreurs = saisies_verifier($configurer_formulaire);
51 // On vérifie l'unicité de l'identifiant
52 if (!$erreurs['identifiant'] and sql_getfetsel('id_formulaire', 'spip_formulaires', 'identifiant = '.sql_quote(_request('identifiant').' and id_formulaire != '.$id_formulaire)))
53 $erreurs['identifiant'] = _T('formidable:erreur_identifiant');
54 return $erreurs;
55 }
56
57 function formulaires_editer_formulaire_traiter($id_formulaire, $nouveau){
58 include_spip('inc/editer');
59 $id_formulaire = $id_formulaire ? $id_formulaire : $nouveau;
60 $retours = formulaires_editer_objet_traiter('formulaire', $id_formulaire);
61
62 // S'il n'y a pas d'erreur et que le formulaire est bien là
63 if (!$retours['message_erreur'] and $retours['id_formulaire'] > 0){
64 // Si c'était un nouveau on reste sur l'édition
65 if (!intval($id_formulaire) and $nouveau == 'oui'){
66 // Tout a fonctionné. En fonction de la config, on attribue l'auteur courant
67 $auteurs = lire_config('formidable/analyse/auteur');
68 if ($auteurs == 'on') {
69 if ($id_auteur = session_get('id_auteur')) {
70 // association (par défaut) du formulaire et de l'auteur courant
71 objet_associer(array('formulaire'=>$retours['id_formulaire']), array('auteur'=>$id_auteur));
72 }
73 }
74 $retours['redirect'] = parametre_url(generer_url_ecrire('formulaire_edit'), 'id_formulaire', $retours['id_formulaire'], '&');
75 }
76 // Sinon on redirige vers la page de visualisation
77 else{
78 $retours['redirect'] = parametre_url(generer_url_ecrire('formulaire'), 'id_formulaire', $retours['id_formulaire'], '&');
79 }
80 }
81
82 return $retours;
83 }
84
85 ?>