<?php

/***************************************************************************\
 *  SPIP, Systeme de publication pour l'internet                           *
 *                                                                         *
 *  Copyright (c) 2001-2014                                                *
 *  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];
}