<?php

/***************************************************************************\
 *  SPIP, Systeme de publication pour l'internet                           *
 *                                                                         *
 *  Copyright (c) 2001-2020                                                *
 *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
 *                                                                         *
 *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
\***************************************************************************/

if (!defined("_ECRIRE_INC_VERSION")) {
	return;
}

function formulaires_importer_sites_charger_dist() {

	if (!autoriser('importer', '_sites')) {
		return false;
	}

	return array(
		'fichier_import' => 0,
		'id_parent' => 0,
		'importer_statut_publie' => 0,
		'importer_les_tags' => 1,
	);
}

function formulaires_importer_sites_verifier_dist() {
	$erreurs = array();

	if (!_request('id_parent')) {
		$erreurs['id_parent'] = _T('info_obligatoire');
	}

	$fichier_ok = info_fichiers_import('fichier_import');
	if (!$fichier_ok) {
		$erreurs['fichier_import'] = _T('sites:erreur_fichier_incorrect');
	} elseif (!charger_fonction('importer_bookmarks_' . $fichier_ok['format'], 'action', true)) {
		$erreurs['fichier_import'] = _T('sites:erreur_fichier_format_inconnu',
			array('fichier' => "<tt>" . $fichier_ok['name'] . "</tt>"));
	}

	return $erreurs;
}

function formulaires_importer_sites_traiter_dist() {
	$id_parent = intval(_request('id_parent'));
	$importer_statut_publie = _request('importer_statut_publie') ? true : false;
	$importer_tags = _request('importer_les_tags') ? true : false;
	$fichier_ok = info_fichiers_import('fichier_import');

	$importer_bookmarks = charger_fonction('importer_bookmarks_' . $fichier_ok['format'], 'action');
	$nb = $importer_bookmarks($fichier_ok, $id_parent, $importer_statut_publie, $importer_tags);

	if (!$nb) {
		$res = array('message_erreur' => _T('sites:info_aucun_site_importe'));
	} else {
		$res = array(
			'message_ok' => singulier_ou_pluriel($nb, 'sites:info_1_site_importe', 'sites:info_nb_sites_importes')
		);
	}

	return $res;
}

function info_fichiers_import($name) {
	static $fichier_ok = array();

	if (!isset($fichier_ok[$name])) {
		if (sizeof($_FILES) < 0
			or !isset($_FILES[$name])
			or !$_FILES[$name]['size'] > 0
		) {
			return false;
		}

		if ($_FILES[$name]['error'] != 0) {
			return false;
		}

		$fichier_ok[$name] = array();
		$fichier_ok[$name]['name'] = $_FILES[$name]['name'];
		$fichier_ok[$name]['chemin'] = $_FILES[$name]['tmp_name'];

		// On r�cup�re le contenu du fichier
		$fichier_ok[$name]['format'] = '';
		lire_fichier($fichier_ok[$name]['chemin'], $fichier_ok[$name]['contenu']);
		if (stripos($fichier_ok[$name]['contenu'], 'NETSCAPE-Bookmark-file') !== false) {
			$fichier_ok[$name]['format'] = 'netscape';
		}
		if ($_FILES[$name]['type'] == 'text/xml' and stripos($fichier_ok[$name]['contenu'], 'opml') !== false) {
			$fichier_ok[$name]['format'] = 'opml';
		}
	}

	return $fichier_ok[$name];
}
