From 374b7e37faf4b51abcbc047f4d566123226773f9 Mon Sep 17 00:00:00 2001 From: lkehresman Date: Sat, 21 Apr 2001 13:47:33 +0000 Subject: [PATCH] made preferences REALLY be cached (in session) git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@1280 7612ce4b-ef26-0410-bec9-ea0150e637f0 --- functions/prefs.php | 55 ++++++++++++++++++++++++--------------------- 1 file changed, 29 insertions(+), 26 deletions(-) diff --git a/functions/prefs.php b/functions/prefs.php index aaa263b2..e96147b9 100644 --- a/functions/prefs.php +++ b/functions/prefs.php @@ -12,11 +12,12 @@ define('prefs_php', true); global $prefs_are_cached, $prefs_cache; - $prefs_are_cached = false; - $prefs_cache = array(); + if (!session_is_registered('prefs_are_cached')) { + $prefs_are_cached = false; + $prefs_cache = array(); + } - function cachePrefValues($data_dir, $username) - { + function cachePrefValues($data_dir, $username) { global $prefs_are_cached, $prefs_cache; if ($prefs_are_cached) @@ -25,7 +26,7 @@ $filename = $data_dir . $username . '.pref'; if (!file_exists($filename)) { - printf (_("Preference file, %s, does not exist. Log out, and log back in to create a default preference file."), $filename); + printf (_("Preference file, %s, does not exist. Log out, and log back in to create a default preference file."), $filename); exit; } @@ -35,24 +36,28 @@ $highlight_num = 0; while (! feof($file)) { $pref = trim(fgets($file, 1024)); - $equalsAt = strpos($pref, '='); - if ($equalsAt > 0) - { - $Key = substr($pref, 0, $equalsAt); - $Value = substr($pref, $equalsAt + 1); - if (substr($Key, 0, 9) == 'highlight') - { - $Key = 'highlight' . $highlight_num; - $highlight_num ++; + $equalsAt = strpos($pref, '='); + if ($equalsAt > 0) { + $Key = substr($pref, 0, $equalsAt); + $Value = substr($pref, $equalsAt + 1); + if (substr($Key, 0, 9) == 'highlight') { + $Key = 'highlight' . $highlight_num; + $highlight_num ++; } - if ($Value != '') - $prefs_cache[$Key] = $Value; - } + if ($Value != '') { + $prefs_cache[$Key] = $Value; + } + } } fclose($file); + + session_unregister('prefs_cache'); + session_register('prefs_cache'); $prefs_are_cached = true; + session_unregister('prefs_are_cached'); + session_register('prefs_are_cached'); } @@ -68,15 +73,14 @@ } - function savePrefValues($data_dir, $username) - { + function savePrefValues($data_dir, $username) { global $prefs_cache; $file = fopen($data_dir . $username . '.pref', "w"); - foreach ($prefs_cache as $Key => $Value) - { - if (isset($Value)) + foreach ($prefs_cache as $Key => $Value) { + if (isset($Value)) { fwrite($file, $Key . '=' . $Value . "\n"); + } } fclose($file); } @@ -87,9 +91,10 @@ cachePrefValues($data_dir, $username); - if (isset($prefs_cache[$string])) + if (isset($prefs_cache[$string])) { unset($prefs_cache[$string]); - + } + savePrefValues($data_dir, $username); } @@ -98,9 +103,7 @@ global $prefs_cache; cachePrefValues($data_dir, $username); - $prefs_cache[$string] = $set_to; - savePrefValues($data_dir, $username); } -- 2.25.1