3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
6 * Copyright (c) 2001-2019 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
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 \***************************************************************************/
13 if (!defined("_ECRIRE_INC_VERSION")) {
17 function formulaires_importer_sites_charger_dist() {
19 if (!autoriser('importer', '_sites')) {
24 'fichier_import' => 0,
26 'importer_statut_publie' => 0,
27 'importer_les_tags' => 1,
31 function formulaires_importer_sites_verifier_dist() {
34 if (!_request('id_parent')) {
35 $erreurs['id_parent'] = _T('info_obligatoire');
38 $fichier_ok = info_fichiers_import('fichier_import');
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>"));
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');
55 $importer_bookmarks = charger_fonction('importer_bookmarks_' . $fichier_ok['format'], 'action');
56 $nb = $importer_bookmarks($fichier_ok, $id_parent, $importer_statut_publie, $importer_tags);
59 $res = array('message_erreur' => _T('sites:info_aucun_site_importe'));
62 'message_ok' => singulier_ou_pluriel($nb, 'sites:info_1_site_importe', 'sites:info_nb_sites_importes')
69 function info_fichiers_import($name) {
70 static $fichier_ok = array();
72 if (!isset($fichier_ok[$name])) {
73 if (sizeof($_FILES) < 0
74 or !isset($_FILES[$name])
75 or !$_FILES[$name]['size'] > 0
80 if ($_FILES[$name]['error'] != 0) {
84 $fichier_ok[$name] = array();
85 $fichier_ok[$name]['name'] = $_FILES[$name]['name'];
86 $fichier_ok[$name]['chemin'] = $_FILES[$name]['tmp_name'];
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';
94 if ($_FILES[$name]['type'] == 'text/xml' and stripos($fichier_ok[$name]['contenu'], 'opml') !== false) {
95 $fichier_ok[$name]['format'] = 'opml';
99 return $fichier_ok[$name];