* Updated docs to tell the user to read any documentation that came with the
[squirrelmail.git] / functions / prefs.php
CommitLineData
59177427 1<?php
65b14f90 2 /**
3 ** prefs.php
4 **
5 ** This contains functions for manipulating user preferences
245a6892 6 **
7 ** $Id$
65b14f90 8 **/
9
f435778e 10 if (defined('prefs_php'))
11 return;
12 define('prefs_php', true);
13
14 global $prefs_are_cached, $prefs_cache;
374b7e37 15 if (!session_is_registered('prefs_are_cached')) {
16 $prefs_are_cached = false;
17 $prefs_cache = array();
18 }
31ac7db8 19
374b7e37 20 function cachePrefValues($data_dir, $username) {
31ac7db8 21 global $prefs_are_cached, $prefs_cache;
22
23 if ($prefs_are_cached)
24 return;
25
26 $filename = $data_dir . $username . '.pref';
27
28 if (!file_exists($filename)) {
374b7e37 29 printf (_("Preference file, %s, does not exist. Log out, and log back in to create a default preference file."), $filename);
31ac7db8 30 exit;
31 }
32
33 $file = fopen($filename, "r");
34
35 /** read in all the preferences **/
36 $highlight_num = 0;
37 while (! feof($file)) {
38 $pref = trim(fgets($file, 1024));
374b7e37 39 $equalsAt = strpos($pref, '=');
40 if ($equalsAt > 0) {
41 $Key = substr($pref, 0, $equalsAt);
42 $Value = substr($pref, $equalsAt + 1);
43 if (substr($Key, 0, 9) == 'highlight') {
44 $Key = 'highlight' . $highlight_num;
45 $highlight_num ++;
31ac7db8 46 }
47
374b7e37 48 if ($Value != '') {
49 $prefs_cache[$Key] = $Value;
50 }
51 }
31ac7db8 52 }
53 fclose($file);
374b7e37 54
55 session_unregister('prefs_cache');
56 session_register('prefs_cache');
31ac7db8 57
58 $prefs_are_cached = true;
374b7e37 59 session_unregister('prefs_are_cached');
60 session_register('prefs_are_cached');
31ac7db8 61 }
62
63
65b14f90 64 /** returns the value for $string **/
d0747e26 65 function getPref($data_dir, $username, $string) {
31ac7db8 66 global $prefs_cache;
67
68 cachePrefValues($data_dir, $username);
69
70 if (isset($prefs_cache[$string]))
71 return $prefs_cache[$string];
72 return '';
65b14f90 73 }
74
44f642f5 75
374b7e37 76 function savePrefValues($data_dir, $username) {
31ac7db8 77 global $prefs_cache;
78
79 $file = fopen($data_dir . $username . '.pref', "w");
374b7e37 80 foreach ($prefs_cache as $Key => $Value) {
81 if (isset($Value)) {
31ac7db8 82 fwrite($file, $Key . '=' . $Value . "\n");
374b7e37 83 }
44f642f5 84 }
85 fclose($file);
31ac7db8 86 }
44f642f5 87
44f642f5 88
31ac7db8 89 function removePref($data_dir, $username, $string) {
90 global $prefs_cache;
91
92 cachePrefValues($data_dir, $username);
93
374b7e37 94 if (isset($prefs_cache[$string])) {
31ac7db8 95 unset($prefs_cache[$string]);
374b7e37 96 }
97
31ac7db8 98 savePrefValues($data_dir, $username);
44f642f5 99 }
100
65b14f90 101 /** sets the pref, $string, to $set_to **/
d0747e26 102 function setPref($data_dir, $username, $string, $set_to) {
31ac7db8 103 global $prefs_cache;
104
105 cachePrefValues($data_dir, $username);
31ac7db8 106 $prefs_cache[$string] = $set_to;
31ac7db8 107 savePrefValues($data_dir, $username);
65b14f90 108 }
109
f804972b 110
d068c0ec 111 /** This checks if there is a pref file, if there isn't, it will
112 create it. **/
d0747e26 113 function checkForPrefs($data_dir, $username) {
114 $filename = "$data_dir$username.pref";
65b14f90 115 if (!file_exists($filename)) {
8105d00f 116 if (!copy("$data_dir" . "default_pref", $filename)) {
5f29dd3b 117 echo _("Error opening ") ."$filename";
65b14f90 118 exit;
119 }
120 }
65b14f90 121 }
f804972b 122
123
f804972b 124 /** Writes the Signature **/
125 function setSig($data_dir, $username, $string) {
126 $filename = "$data_dir$username.sig";
127 $file = fopen($filename, "w");
128 fwrite($file, $string);
129 fclose($file);
130 }
131
132
133
134 /** Gets the signature **/
135 function getSig($data_dir, $username) {
136 $filename = "$data_dir$username.sig";
a7ea7540 137 $sig = "";
f804972b 138 if (file_exists($filename)) {
139 $file = fopen($filename, "r");
140 while (!feof($file)) {
141 $sig .= fgets($file, 1024);
142 }
143 fclose($file);
f804972b 144 }
145 return $sig;
146 }
5f29dd3b 147?>