[PLUGINS] +set de base
[lhc/web/www.git] / www / plugins / formidable_1_0 / action / dupliquer_formulaire.php
1 <?php
2
3 // Sécurité
4 if (!defined("_ECRIRE_INC_VERSION")) return;
5
6 include_spip('inc/config');
7
8 /**
9 * Dupliquer un formulaire
10 * @param unknown_type $arg
11 * @return unknown_type
12 */
13 function action_dupliquer_formulaire_dist($arg=null) {
14 if (is_null($arg)){
15 $securiser_action = charger_fonction('securiser_action', 'inc');
16 $arg = $securiser_action();
17 }
18 $id_formulaire = intval($arg);
19
20 // Si le formulaire existe bien
21 if ($id_formulaire > 0 and $formulaire = sql_fetsel('*', 'spip_formulaires', 'id_formulaire = '.$id_formulaire)){
22 include_spip('action/editer_formulaire');
23 // On enlève les champs inutiles
24 unset($formulaire['id_formulaire']);
25 // On modifie un peu le titre
26 $formulaire['titre'] = $formulaire['titre'].' '._T('formidable:formulaires_dupliquer_copie');
27 // On s'assure que l'identifiant n'existe pas déjà
28 $formulaire['identifiant'] = $formulaire['identifiant'].'_'.time();
29 // On insère un nouveau formulaire
30 $id_formulaire = insert_formulaire();
31 // Si ça a marché on modifie les champs de base
32 if ($id_formulaire > 0 and !($erreur = formulaire_set($id_formulaire, $formulaire))){
33 // Et ensuite les saisies et les traitements
34 $ok = sql_updateq(
35 'spip_formulaires',
36 array(
37 'saisies' => $formulaire['saisies'],
38 'traitements' => $formulaire['traitements']
39 ),
40 'id_formulaire = '.$id_formulaire
41 );
42 // Tout a fonctionné. En fonction de la config, on attribue l'auteur courant
43 $auteurs = lire_config('formidable/analyse/auteur');
44 if ($auteurs == 'on') {
45 if ($id_auteur = session_get('id_auteur')) {
46 // association (par défaut) du formulaire et de l'auteur courant
47 objet_associer(array('formulaire'=>$id_formulaire), array('auteur'=>$id_auteur));
48 }
49 }
50 // Et on redirige vers la vue
51 $redirect = parametre_url(generer_url_ecrire('formulaire'), 'id_formulaire', $id_formulaire, '&');
52 }
53 // Sinon on reste sur la page qui liste tout
54 else{
55 $redirect = generer_url_ecrire('formulaires');
56 }
57 }
58
59 // Si on a précisé une direction on va plutôt là
60 if (_request('redirect')) {
61 $redirect = parametre_url(urldecode(_request('redirect')),
62 'id_formulaire', $id_formulaire, '&') . $erreur;
63 }
64
65 // On redirige
66 include_spip('inc/headers');
67 redirige_par_entete($redirect);
68 }
69
70 ?>