2a551f938f465fc54bbaaa354a3712e4495b5cdb
[lhc/web/www.git] / www / plugins-dist / sites / formulaires / importer_sites.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2016 *
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
13 if (!defined("_ECRIRE_INC_VERSION")) {
14 return;
15 }
16
17 function 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
31 function 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
49 function 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
69 function 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 }