[SPIP] ~2.1.12 -->2.1.25
[velocampus/web/www.git] / www / ecrire / action / redirect.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2014 *
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 // Un script utile pour recalculer une URL symbolique des son changement
16
17 function action_redirect_dist()
18 {
19 $type = _request('type');
20 $id = intval(_request('id'));
21
22 if ($m = _request('var_mode')) {
23 $GLOBALS['var_urls'] = true; // forcer la mise a jour de l'url de cet objet !
24 }
25
26 if (preg_match('/^\w+$/', $type)) {
27 $h = generer_url_entite_absolue($id, $type, '', '', true);
28 }
29 else if ($page = _request('page')
30 AND preg_match('/^\w+$/', $page)) {
31 $h = generer_url_public($page, '', true);
32 }
33 else return;
34
35 if ($m > '')
36 $h = parametre_url($h, 'var_mode', $m);
37
38 if ($m == 'preview'
39 AND defined('_PREVIEW_TOKEN')
40 AND _PREVIEW_TOKEN
41 AND autoriser('previsualiser')
42 AND $aut = $GLOBALS['visiteur_session']['id_auteur'] ) {
43 include_spip('inc/securiser_action');
44 $token = _action_auteur('previsualiser', $aut, null, 'alea_ephemere');
45 $h = parametre_url($h, 'var_previewtoken', "$aut*$token");
46 }
47
48 $status = '302';
49 if (_request('status') AND _request('status')=='301')
50 $status = '301';
51
52 if ($h)
53 redirige_par_entete(str_replace('&amp;', '&', $h),'',$status);
54 else
55 redirige_par_entete('/','',$status);
56 }
57
58 ?>