[PLUGINS] +acces restreint
[ptitvelo/web/www.git] / www / plugins / accesrestreint_3_5 / urls / generer_url_document.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2011 *
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
16 /**
17 * Generer l'url d'un document dans l'espace public,
18 * fonction du statut du document
19 *
20 * @param int $id
21 * @param string $args
22 * @param string $ancre
23 * @param string $public
24 * @param string $connect
25 * @return string
26 *
27 * http://doc.spip.org/@generer_url_ecrire_document
28 */
29 function urls_generer_url_document_dist($id, $args='', $ancre='', $public=null, $connect='') {
30 include_spip('inc/autoriser');
31 include_spip('inc/documents');
32
33 if (!autoriser('voir', 'document', $id)) return '';
34
35 $r = sql_fetsel("fichier,distant", "spip_documents", "id_document=".intval($id));
36
37 if (!$r) return '';
38
39 $f = $r['fichier'];
40
41 if ($r['distant'] == 'oui') return $f;
42
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);
48
49 include_spip('inc/securiser_action');
50
51 // cette url doit etre publique !
52 $cle = calculer_cle_action($id.','.$f);
53
54 // renvoyer une url plus ou moins jolie
55 if ($GLOBALS['meta']['creer_htaccess'])
56 return _DIR_RACINE."docrestreint.api/$id/$cle/$f";
57 else
58 return get_spip_doc($f)."?$id/$cle";
59 }