[SPIP] ~v3.0.20-->v3.0.25
[lhc/web/clavette_www.git] / www / ecrire / action / converser.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2016 *
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 include_spip('inc/cookie');
16
17 // changer de langue: pas de secu si espace public ou login ou installation
18 // mais alors on n'accede pas a la base, on pose seulement le cookie.
19
20 // http://doc.spip.org/@action_converser_dist
21 function action_converser_dist()
22 {
23 $update_session = false;
24 if ( _request('arg') AND spip_connect()) {
25 $securiser_action = charger_fonction('securiser_action', 'inc');
26 $securiser_action();
27 $update_session = true;
28 }
29
30 $lang = action_converser_changer_langue($update_session);
31 $redirect = rawurldecode(_request('redirect'));
32
33 if (!$redirect) $redirect = _DIR_RESTREINT_ABS;
34 $redirect = parametre_url($redirect,'lang',$lang,'&');
35 redirige_par_entete($redirect, true);
36 }
37
38 function action_converser_changer_langue($update_session){
39 if ($lang = _request('var_lang'))
40 action_converser_post($lang);
41 elseif ($lang = _request('var_lang_ecrire')) {
42 if ($update_session) {
43 sql_updateq("spip_auteurs", array("lang" => $lang), "id_auteur = " . $GLOBALS['visiteur_session']['id_auteur']);
44 $GLOBALS['visiteur_session']['lang'] = $lang;
45 $session = charger_fonction('session', 'inc');
46 if ($spip_session = $session($GLOBALS['visiteur_session'])) {
47 spip_setcookie(
48 'spip_session',
49 $spip_session,
50 time() + 3600 * 24 * 14
51 );
52 }
53 }
54 action_converser_post($lang, 'spip_lang_ecrire');
55 }
56 return $lang;
57 }
58
59 // http://doc.spip.org/@action_converser_post
60 function action_converser_post($lang, $ecrire=false)
61 {
62 if ($lang) {
63 include_spip('inc/lang');
64 if (changer_langue($lang)) {
65 spip_setcookie('spip_lang', $_COOKIE['spip_lang'] = $lang, time() + 365 * 24 * 3600);
66 if ($ecrire)
67 spip_setcookie('spip_lang_ecrire', $_COOKIE['spip_lang_ecrire'] = $lang, time() + 365 * 24 * 3600);
68 }
69 }
70 }
71 ?>