source: spip-zone/_core_/plugins/sites/formulaires/importer_sites.php

Last change on this file was 113294, checked in by spip.franck@…, 2 months ago

Il parait que le futur c'est maintenant :-D

File size: 3.1 KB
Line 
1<?php
2
3/***************************************************************************\
4 *  SPIP, Systeme de publication pour l'internet                           *
5 *                                                                         *
6 *  Copyright (c) 2001-2019                                                *
7 *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
8 *                                                                         *
9 *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
10 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
11\***************************************************************************/
12
13if (!defined("_ECRIRE_INC_VERSION")) {
14        return;
15}
16
17function formulaires_importer_sites_charger_dist() {
18
19        if (!autoriser('importer', '_sites')) {
20                return false;
21        }
22
23        return array(
24                'fichier_import' => 0,
25                'id_parent' => 0,
26                'importer_statut_publie' => 0,
27                'importer_les_tags' => 1,
28        );
29}
30
31function formulaires_importer_sites_verifier_dist() {
32        $erreurs = array();
33
34        if (!_request('id_parent')) {
35                $erreurs['id_parent'] = _T('info_obligatoire');
36        }
37
38        $fichier_ok = info_fichiers_import('fichier_import');
39        if (!$fichier_ok) {
40                $erreurs['fichier_import'] = _T('sites:erreur_fichier_incorrect');
41        } elseif (!charger_fonction('importer_bookmarks_' . $fichier_ok['format'], 'action', true)) {
42                $erreurs['fichier_import'] = _T('sites:erreur_fichier_format_inconnu',
43                        array('fichier' => "<tt>" . $fichier_ok['name'] . "</tt>"));
44        }
45
46        return $erreurs;
47}
48
49function formulaires_importer_sites_traiter_dist() {
50        $id_parent = intval(_request('id_parent'));
51        $importer_statut_publie = _request('importer_statut_publie') ? true : false;
52        $importer_tags = _request('importer_les_tags') ? true : false;
53        $fichier_ok = info_fichiers_import('fichier_import');
54
55        $importer_bookmarks = charger_fonction('importer_bookmarks_' . $fichier_ok['format'], 'action');
56        $nb = $importer_bookmarks($fichier_ok, $id_parent, $importer_statut_publie, $importer_tags);
57
58        if (!$nb) {
59                $res = array('message_erreur' => _T('sites:info_aucun_site_importe'));
60        } else {
61                $res = array(
62                        'message_ok' => singulier_ou_pluriel($nb, 'sites:info_1_site_importe', 'sites:info_nb_sites_importes')
63                );
64        }
65
66        return $res;
67}
68
69function info_fichiers_import($name) {
70        static $fichier_ok = array();
71
72        if (!isset($fichier_ok[$name])) {
73                if (sizeof($_FILES) < 0
74                        or !isset($_FILES[$name])
75                        or !$_FILES[$name]['size'] > 0
76                ) {
77                        return false;
78                }
79
80                if ($_FILES[$name]['error'] != 0) {
81                        return false;
82                }
83
84                $fichier_ok[$name] = array();
85                $fichier_ok[$name]['name'] = $_FILES[$name]['name'];
86                $fichier_ok[$name]['chemin'] = $_FILES[$name]['tmp_name'];
87
88                // On r�cup�re le contenu du fichier
89                $fichier_ok[$name]['format'] = '';
90                lire_fichier($fichier_ok[$name]['chemin'], $fichier_ok[$name]['contenu']);
91                if (stripos($fichier_ok[$name]['contenu'], 'NETSCAPE-Bookmark-file') !== false) {
92                        $fichier_ok[$name]['format'] = 'netscape';
93                }
94                if ($_FILES[$name]['type'] == 'text/xml' and stripos($fichier_ok[$name]['contenu'], 'opml') !== false) {
95                        $fichier_ok[$name]['format'] = 'opml';
96                }
97        }
98
99        return $fichier_ok[$name];
100}
Note: See TracBrowser for help on using the repository browser.