From 857af20fbd4f5f7b83828ef31215f2c7f79c6d59 Mon Sep 17 00:00:00 2001 From: Dries Buytaert Date: Thu, 3 Jun 2010 13:57:41 +0000 Subject: - Patch #815526 by plach: session language switcher prevents pages from being cached. --- includes/locale.inc | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'includes') diff --git a/includes/locale.inc b/includes/locale.inc index 9c383210f..a7fe5d17e 100644 --- a/includes/locale.inc +++ b/includes/locale.inc @@ -126,9 +126,14 @@ function locale_language_from_user($languages) { function locale_language_from_session($languages) { $param = variable_get('locale_language_negotiation_session_param', 'language'); - // Request parameter. + // Request parameter: we need to update the session parameter only if we have + // an authenticated user. if (isset($_GET[$param]) && isset($languages[$langcode = $_GET[$param]])) { - return $_SESSION[$param] = $langcode; + global $user; + if ($user->uid) { + $_SESSION[$param] = $langcode; + } + return $langcode; } // Session parameter. -- cgit v1.2.3