- * This contains functions for manipulating user preferences
- *
- * $Id$
- */
-
-global $prefs_are_cached, $prefs_cache;
-if (!session_is_registered('prefs_are_cached')) {
- $prefs_are_cached = false;
- $prefs_cache = array();
-}
-
-/**
- * Check the preferences into the session cache.
- */
-function cachePrefValues($data_dir, $username) {
- global $prefs_are_cached, $prefs_cache;
-
- if ($prefs_are_cached) {
- return;
- }
-
- /* Calculate the filename for the user's preference file */
- $filename = getHashedFile($username, $data_dir, "$username.pref");
-
- /* A call to checkForPrefs here should take eliminate the need for
- /* this to be called throughout the rest of the SquirrelMail code.
- checkForPrefs($data_dir, $username, $filename);
-
- /* Make sure that the preference file now DOES exist. */
- if (!file_exists($filename)) {
- printf (_("Preference file, %s, does not exist. Log out, and log back in to create a default preference file."), $filename);
- exit;
- }
-
- $file = fopen($filename, 'r');
-
- /* Read in the preferences. */
- $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 ++;
- }
-
- 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');
-}
-
-/**
- * Return the value for the prefernce given by $string.
- */
-function getPref($data_dir, $username, $string, $default = '') {
- global $prefs_cache;
- $result = '';
-
- cachePrefValues($data_dir, $username);
-
- if (isset($prefs_cache[$string])) {
- $result = $prefs_cache[$string];
- } else {
- $result = $default;
- }
-
- return ($result);
-}
-
-/**
- * Save the preferences for this user.
- */
-function savePrefValues($data_dir, $username) {
- global $prefs_cache;
-
- $filename = getHashedFile($username, $data_dir, "$username.pref");
-
- $file = fopen($filename, 'w');
- foreach ($prefs_cache as $Key => $Value) {
- if (isset($Value)) {
- fwrite($file, $Key . '=' . $Value . "\n");
- }
- }
- fclose($file);
-}
-
-/**
- * Remove a preference for the current user.
- */
-function removePref($data_dir, $username, $string) {
- global $prefs_cache;
-
- cachePrefValues($data_dir, $username);
-
- if (isset($prefs_cache[$string])) {
- unset($prefs_cache[$string]);
- }
-
- savePrefValues($data_dir, $username);
-}
-
-/**
- * Set a there preference $string to $value.