[SPIP] v3.2.1-->v3.2.2
[lhc/web/www.git] / www / prive / formulaires / rediriger_article.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2019 *
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')) {
14 return;
15 }
16
17 function formulaires_rediriger_article_charger_dist($id_article, $retour = '') {
18
19 include_spip('inc/autoriser');
20 if (!autoriser('modifier', 'article', $id_article)) {
21 return false;
22 }
23
24 $row = sql_fetsel('id_article,virtuel', 'spip_articles', 'id_article=' . intval($id_article));
25 if (!$row['id_article']) {
26 return false;
27 }
28 include_spip('inc/lien');
29 $redirection = virtuel_redirige($row['virtuel']);
30
31 if (!$redirection
32 and $GLOBALS['meta']['articles_redirection'] != 'oui'
33 ) {
34 return false;
35 }
36
37
38 include_spip('inc/texte');
39 $valeurs = array(
40 'redirection' => $redirection,
41 'id' => $id_article,
42 '_afficher_url' => ($redirection ? propre("[->$redirection]") : ''),
43 );
44
45 return $valeurs;
46 }
47
48 function formulaires_rediriger_article_verifier_dist($id_article, $retour = '') {
49 $erreurs = array();
50
51 if (($redirection = _request('redirection')) == $id_article || $redirection == 'art' . $id_article) {
52 $erreurs['redirection'] = _T('info_redirection_boucle');
53 }
54
55 return $erreurs;
56 }
57
58 function formulaires_rediriger_article_traiter_dist($id_article, $retour = '') {
59
60 $url = preg_replace(',^\s*https?://$,i', '', rtrim(_request('redirection')));
61 if ($url) {
62 $url = corriger_caracteres($url);
63 }
64
65 include_spip('action/editer_article');
66 articles_set($id_article, array('virtuel' => $url));
67
68 $js = _AJAX ? '<script type="text/javascript">if (window.ajaxReload) ajaxReload("wysiwyg");</script>' : '';
69
70 return array(
71 'message_ok' => ($url ? _T('info_redirection_activee') : _T('info_redirection_desactivee')) . $js,
72 'editable' => true
73 );
74 }