724c55fe3ce527bf94357cc5afcc3e386a06d239
[lhc/web/www.git] / www / plugins / formidable / 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 $id_formulaire = intval($nouveau?0:$id_formulaire);
12 include_spip('inc/editer');
13
14 // Est-ce qu'on a le droit ?
15 if (!autoriser('editer', 'formulaire', $id_formulaire)){
16 $contexte = array();
17 $contexte['editable'] = false;
18 $contexte['message_erreur'] = _T('formidable:erreur_autorisation');
19 }
20 else
21 $contexte = formulaires_editer_objet_charger('formulaire', $id_formulaire,0,0,'','');
22 unset($contexte['id_formulaire']);
23
24 return $contexte;
25 }
26
27 function formulaires_editer_formulaire_verifier($id_formulaire, $nouveau){
28 $id_formulaire = intval($nouveau?0:$id_formulaire);
29 $erreurs = array();
30
31 include_spip('inc/editer');
32 $erreurs = formulaires_editer_objet_verifier('formulaire',$id_formulaire,array('titre','identifiant'));
33
34 if (!isset($erreurs['identifiant'])){
35 $identifiant = _request('identifiant');
36 // format de l'identifiant
37 if (!preg_match("/^[\w]+$/",$identifiant))
38 $erreurs['identifiant'] = _T('formidable:erreur_identifiant_format');
39 // unicite de l'identifiant
40 elseif (sql_getfetsel('id_formulaire', 'spip_formulaires', 'identifiant = '.sql_quote($identifiant).' AND id_formulaire != '.intval($id_formulaire)))
41 $erreurs['identifiant'] = _T('formidable:erreur_identifiant');
42 }
43
44 return $erreurs;
45 }
46
47 function formulaires_editer_formulaire_traiter($id_formulaire, $nouveau){
48 include_spip('inc/editer');
49 $id_formulaire = $id_formulaire ? $id_formulaire : $nouveau;
50 $retours = formulaires_editer_objet_traiter('formulaire', $id_formulaire);
51
52 // S'il n'y a pas d'erreur et que le formulaire est bien là
53 if (!$retours['message_erreur'] and $retours['id_formulaire'] > 0){
54 // Si c'était un nouveau on reste sur l'édition
55 if (!intval($id_formulaire) and $nouveau == 'oui'){
56 // Tout a fonctionné. En fonction de la config, on attribue l'auteur courant
57 $auteurs = lire_config('formidable/analyse/auteur');
58 if ($auteurs == 'on') {
59 if ($id_auteur = session_get('id_auteur')) {
60 // association (par défaut) du formulaire et de l'auteur courant
61 objet_associer(array('formulaire'=>$retours['id_formulaire']), array('auteur'=>$id_auteur));
62 }
63 }
64 $retours['redirect'] = parametre_url(generer_url_ecrire('formulaire_edit'), 'id_formulaire', $retours['id_formulaire'], '&');
65 }
66 // Sinon on redirige vers la page de visualisation
67 else{
68 $retours['redirect'] = parametre_url(generer_url_ecrire('formulaire'), 'id_formulaire', $retours['id_formulaire'], '&');
69 }
70 }
71
72 return $retours;
73 }
74
75 ?>