3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
6 * Copyright (c) 2001-2019 *
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 \***************************************************************************/
14 * Gestion de l'action converser qui permet changer de langue
16 * @package SPIP\Core\Langue
18 if (!defined('_ECRIRE_INC_VERSION')) {
22 include_spip('inc/cookie');
25 * Point d'entrée pour changer de langue
27 * Pas de secu si espace public ou login ou installation
28 * mais alors on n'accède pas à la base, on pose seulement le cookie.
32 function action_converser_dist() {
33 $update_session = false;
34 if (_request('arg') and spip_connect()) {
35 $securiser_action = charger_fonction('securiser_action', 'inc');
37 $update_session = true;
40 $lang = action_converser_changer_langue($update_session);
41 $redirect = rawurldecode(_request('redirect'));
44 $redirect = _DIR_RESTREINT_ABS
;
46 $redirect = parametre_url($redirect, 'lang', $lang, '&');
47 redirige_par_entete($redirect, true);
51 * Cette fonction prépare le travail de changement de langue
52 * en récupérant la bonne variable de langue
54 * @global array $GLOBALS ['visiteur_session']
55 * @param bool $update_session
58 function action_converser_changer_langue($update_session) {
59 if ($lang = _request('var_lang')) {
60 action_converser_post($lang);
61 } elseif ($lang = _request('var_lang_ecrire')) {
62 if ($update_session) {
63 sql_updateq("spip_auteurs", array("lang" => $lang), "id_auteur = " . $GLOBALS['visiteur_session']['id_auteur']);
64 $GLOBALS['visiteur_session']['lang'] = $lang;
65 $session = charger_fonction('session', 'inc');
66 if ($spip_session = $session($GLOBALS['visiteur_session'])) {
70 time() +
3600 * 24 * 14
74 action_converser_post($lang, 'spip_lang_ecrire');
81 * Cette fonction effectue le travail de changement de langue
87 function action_converser_post($lang, $ecrire = false) {
89 include_spip('inc/lang');
90 if (changer_langue($lang)) {
91 spip_setcookie('spip_lang', $_COOKIE['spip_lang'] = $lang, time() +
365 * 24 * 3600);
93 spip_setcookie('spip_lang_ecrire', $_COOKIE['spip_lang_ecrire'] = $lang, time() +
365 * 24 * 3600);