diff options
author | Dries Buytaert <dries@buytaert.net> | 2010-06-03 13:57:41 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2010-06-03 13:57:41 +0000 |
commit | 857af20fbd4f5f7b83828ef31215f2c7f79c6d59 (patch) | |
tree | 525f2a9ecdf7a3ba14b3747cfec5ddc0f9f86d55 /includes | |
parent | e463ac0e98ef61b2767b441ab8bd10b63a86756d (diff) | |
download | brdo-857af20fbd4f5f7b83828ef31215f2c7f79c6d59.tar.gz brdo-857af20fbd4f5f7b83828ef31215f2c7f79c6d59.tar.bz2 |
- Patch #815526 by plach: session language switcher prevents pages from being cached.
Diffstat (limited to 'includes')
-rw-r--r-- | includes/locale.inc | 9 |
1 files changed, 7 insertions, 2 deletions
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. |