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