[SPIP] ~v3.0.20-->v3.0.25
[lhc/web/clavette_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")) return;
14
15 function formulaires_importer_sites_charger_dist(){
16
17 if (!autoriser('importer', '_sites'))
18 return false;
19
20 return array(
21 'fichier_import' => 0,
22 'id_parent' => 0,
23 'importer_statut_publie' => 0,
24 'importer_les_tags' => 1,
25 );
26 }
27
28 function formulaires_importer_sites_verifier_dist(){
29 $erreurs = array();
30
31 if (!_request('id_parent'))
32 $erreurs['id_parent'] = _T('info_obligatoire');
33
34 $fichier_ok = info_fichiers_import('fichier_import');
35 if (!$fichier_ok){
36 $erreurs['fichier_import'] = _T('sites:erreur_fichier_incorrect');
37 }
38 elseif (!charger_fonction('importer_bookmarks_'.$fichier_ok['format'],'action',true)){
39 $erreurs['fichier_import'] = _T('sites:erreur_fichier_format_inconnu',array('fichier'=>"<tt>".$fichier_ok['name']."</tt>"));
40 }
41
42 return $erreurs;
43 }
44
45 function formulaires_importer_sites_traiter_dist(){
46 $id_parent = intval(_request('id_parent'));
47 $importer_statut_publie = _request('importer_statut_publie') ? true : false;
48 $importer_tags = _request('importer_les_tags') ? true : false;
49 $fichier_ok = info_fichiers_import('fichier_import');
50
51
52 $importer_bookmarks = charger_fonction('importer_bookmarks_'.$fichier_ok['format'],'action');
53 $nb = $importer_bookmarks($fichier_ok,$id_parent,$importer_statut_publie,$importer_tags);
54
55 if (!$nb)
56 $res = array('message_erreur'=>_T('sites:info_aucun_site_importe'));
57 else
58 $res = array('message_ok'=>singulier_ou_pluriel($nb,'sites:info_1_site_importe','sites:info_nb_sites_importes'));
59
60 return $res;
61 }
62
63 function info_fichiers_import($name){
64 static $fichier_ok = array();
65
66 if (!isset($fichier_ok[$name])){
67 if (sizeof($_FILES)<0
68 OR !isset($_FILES[$name])
69 OR !$_FILES[$name]['size']>0)
70 return false;
71
72 if ($_FILES[$name]['error']!=0)
73 return false;
74
75 $fichier_ok[$name] = array();
76 $fichier_ok[$name]['name'] = $_FILES[$name]['name'];
77 $fichier_ok[$name]['chemin'] = $_FILES[$name]['tmp_name'];
78
79 // On récupère le contenu du fichier
80 $fichier_ok[$name]['format'] = '';
81 lire_fichier($fichier_ok[$name]['chemin'],$fichier_ok[$name]['contenu']);
82 if (stripos($fichier_ok[$name]['contenu'], 'NETSCAPE-Bookmark-file')!==false)
83 $fichier_ok[$name]['format'] = 'netscape';
84 }
85
86 return $fichier_ok[$name];
87 }