summaryrefslogtreecommitdiff
path: root/includes
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2010-06-03 13:57:41 +0000
committerDries Buytaert <dries@buytaert.net>2010-06-03 13:57:41 +0000
commit857af20fbd4f5f7b83828ef31215f2c7f79c6d59 (patch)
tree525f2a9ecdf7a3ba14b3747cfec5ddc0f9f86d55 /includes
parente463ac0e98ef61b2767b441ab8bd10b63a86756d (diff)
downloadbrdo-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.inc9
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.