3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
6 * Copyright (c) 2001-2011 *
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')) return;
17 * Generer l'url d'un document dans l'espace public,
18 * fonction du statut du document
22 * @param string $ancre
23 * @param string $public
24 * @param string $connect
27 * http://doc.spip.org/@generer_url_ecrire_document
29 function urls_generer_url_document_dist($id, $args='', $ancre='', $public=null, $connect='') {
30 include_spip('inc/autoriser');
31 include_spip('inc/documents');
33 if (!autoriser('voir', 'document', $id)) return '';
35 $r = sql_fetsel("fichier,distant", "spip_documents", "id_document=".intval($id));
41 if ($r['distant'] == 'oui') return $f;
43 // Si droit de voir tous les docs, pas seulement celui-ci
44 // il est inutilement couteux de rajouter une protection
45 $r = (autoriser('voir', 'document'));
46 if (($r AND $r !== 'htaccess'))
47 return get_spip_doc($f);
49 include_spip('inc/securiser_action');
51 // cette url doit etre publique !
52 $cle = calculer_cle_action($id.','.$f);
54 // renvoyer une url plus ou moins jolie
55 if ($GLOBALS['meta']['creer_htaccess'])
56 return _DIR_RACINE
."docrestreint.api/$id/$cle/$f";
58 return get_spip_doc($f)."?$id/$cle";