222c12ee24f4e92df8bcf8589cd4cf0640279d24
[lhc/web/www.git] / www / plugins / formidable / formulaires / importer_formulaire.php
1 <?php
2
3 // Sécurité
4 if (!defined('_ECRIRE_INC_VERSION')) {
5 return;
6 }
7
8 include_spip('inc/formidable');
9 include_spip('inc/config');
10
11 function formulaires_importer_formulaire_charger() {
12
13 $contexte = array();
14
15 // On va chercher toutes les fonctions d'importation existantes
16 $types_echange = echanges_formulaire_lister_disponibles();
17 $types_import = array();
18 foreach ($types_echange['importer'] as $type => $fonction) {
19 $types_import[$type] = _T("formidable:echanger_formulaire_${type}_importer");
20 }
21
22 $contexte['_types_import'] = $types_import;
23
24 return $contexte;
25 }
26
27 function formulaires_importer_formulaire_verifier() {
28 $erreurs = array();
29
30 return $erreurs;
31 }
32
33 function formulaires_importer_formulaire_traiter() {
34 $retours = array();
35
36 if (!$_FILES['fichier']['error']) {
37 $type_import = _request('type_import');
38 $fichier = $_FILES['fichier']['tmp_name'];
39
40 $importer = charger_fonction('importer', "echanger/formulaire/$type_import", true);
41
42 try {
43 $erreur_ou_id = $importer($fichier);
44 } catch (Exception $e) {
45 $erreur_ou_id = $e->getMessage();
46 }
47
48 if (!is_numeric($erreur_ou_id)) {
49 $retours['message_erreur'] = $erreur_ou_id;
50 $retours['editable'] = true;
51 } else {
52 $id_formulaire = intval($erreur_ou_id);
53 // Tout a fonctionné. En fonction de la config, on attribue l'auteur courant
54 $auteurs = lire_config('formidable/analyse/auteur');
55 if ($auteurs == 'on') {
56 if ($id_auteur = session_get('id_auteur')) {
57 // association (par défaut) du formulaire et de l'auteur courant
58 objet_associer(array('formulaire'=>$id_formulaire), array('auteur'=>$id_auteur));
59 }
60 }
61 $retours['redirect'] = generer_url_ecrire('formulaire', "id_formulaire=$id_formulaire");
62 }
63 }
64
65 return $retours;
66 }