Server : Apache System : Linux webd348.cluster026.gra.hosting.ovh.net 5.15.148-ovh-vps-grsec-zfs-classid #1 SMP Thu Feb 8 09:41:04 UTC 2024 x86_64 User : hednacluml ( 122243) PHP Version : 8.3.9 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl Directory : /home/hednacluml/univers/ecrire/action/ |
<?php /***************************************************************************\ * SPIP, Système de publication pour l'internet * * * * Copyright © avec tendresse depuis 2001 * * Arnaud Martin, Antoine Pitrou, Philippe Rivière, Emmanuel Saint-James * * * * Ce programme est un logiciel libre distribué sous licence GNU/GPL. * \***************************************************************************/ /** * Gestion de l'action converser qui permet changer de langue * * @package SPIP\Core\Langue **/ if (!defined('_ECRIRE_INC_VERSION')) { return; } include_spip('inc/cookie'); /** * Point d'entrée pour changer de langue * * Pas de secu si espace public ou login ou installation * mais alors on n'accède pas à la base, on pose seulement le cookie. * * @return void */ function action_converser_dist() { $update_session = false; if (_request('arg') and spip_connect()) { $securiser_action = charger_fonction('securiser_action', 'inc'); $securiser_action(); $update_session = true; } $lang = action_converser_changer_langue($update_session); $redirect = rawurldecode(_request('redirect')); if (!$redirect) { $redirect = _DIR_RESTREINT_ABS; } $redirect = parametre_url($redirect, 'lang', $lang, '&'); redirige_par_entete($redirect, true); } /** * Cette fonction prépare le travail de changement de langue * en récupérant la bonne variable de langue * * @global array $GLOBALS ['visiteur_session'] * @param bool $update_session * @return string */ function action_converser_changer_langue($update_session) { if ($lang = _request('var_lang')) { action_converser_post($lang); } elseif ($lang = _request('var_lang_ecrire')) { if ($update_session) { sql_updateq('spip_auteurs', ['lang' => $lang], 'id_auteur = ' . $GLOBALS['visiteur_session']['id_auteur']); $GLOBALS['visiteur_session']['lang'] = $lang; $session = charger_fonction('session', 'inc'); if ($spip_session = $session($GLOBALS['visiteur_session'])) { spip_setcookie('spip_session', $spip_session, [ 'expires' => time() + 3600 * 24 * 14, 'httponly' => true, ]); } } action_converser_post($lang, true); } return $lang; } /** * Cette fonction effectue le travail de changement de langue * * @param string $lang * @param bool $ecrire * @return void */ function action_converser_post($lang, $ecrire = false) { if ($lang) { include_spip('inc/lang'); if (changer_langue($lang)) { spip_setcookie('spip_lang', $_COOKIE['spip_lang'] = $lang, [ 'expires' => time() + 365 * 24 * 3600, ]); if ($ecrire) { spip_setcookie('spip_lang_ecrire', $_COOKIE['spip_lang_ecrire'] = $lang, [ 'expires' => time() + 365 * 24 * 3600, 'httponly' => true, ]); } } } }