5 ** This contains functions for manipulating user preferences
10 if (defined('prefs_php'))
12 define('prefs_php', true);
14 global $prefs_are_cached, $prefs_cache;
15 if (!session_is_registered('prefs_are_cached')) {
16 $prefs_are_cached = false;
17 $prefs_cache = array();
20 function cachePrefValues($data_dir, $username) {
21 global $prefs_are_cached, $prefs_cache;
23 if ($prefs_are_cached)
26 $filename = $data_dir . $username . '.pref';
28 if (!file_exists($filename)) {
29 printf (_("Preference file, %s, does not exist. Log out, and log back in to create a default preference file."), $filename);
33 $file = fopen($filename, 'r');
35 /** read in all the preferences **/
37 while (! feof($file)) {
38 $pref = trim(fgets($file, 1024));
39 $equalsAt = strpos($pref, '=');
41 $Key = substr($pref, 0, $equalsAt);
42 $Value = substr($pref, $equalsAt +
1);
43 if (substr($Key, 0, 9) == 'highlight') {
44 $Key = 'highlight' . $highlight_num;
49 $prefs_cache[$Key] = $Value;
55 session_unregister('prefs_cache');
56 session_register('prefs_cache');
58 $prefs_are_cached = true;
59 session_unregister('prefs_are_cached');
60 session_register('prefs_are_cached');
64 /** returns the value for $string **/
65 function getPref($data_dir, $username, $string) {
68 cachePrefValues($data_dir, $username);
70 if (isset($prefs_cache[$string]))
71 return $prefs_cache[$string];
76 function savePrefValues($data_dir, $username) {
79 $file = fopen($data_dir . $username . '.pref', 'w');
80 foreach ($prefs_cache as $Key => $Value) {
82 fwrite($file, $Key . '=' . $Value . "\n");
89 function removePref($data_dir, $username, $string) {
92 cachePrefValues($data_dir, $username);
94 if (isset($prefs_cache[$string])) {
95 unset($prefs_cache[$string]);
98 savePrefValues($data_dir, $username);
101 /** sets the pref, $string, to $set_to **/
102 function setPref($data_dir, $username, $string, $set_to) {
105 cachePrefValues($data_dir, $username);
106 if (isset($prefs_cache[$string]) && $prefs_cache[$string] == $set_to)
108 if ($set_to === '') {
109 removePref($data_dir, $username, $string);
112 $prefs_cache[$string] = $set_to;
113 savePrefValues($data_dir, $username);
117 /** This checks if there is a pref file, if there isn't, it will
119 function checkForPrefs($data_dir, $username) {
120 $filename = $data_dir . $username . '.pref';
121 if (!file_exists($filename)) {
122 if (!copy($data_dir . 'default_pref', $filename)) {
123 echo _("Error opening ") . $filename;
130 /** Writes the Signature **/
131 function setSig($data_dir, $username, $string) {
132 $file = fopen($data_dir . $username . '.sig', 'w');
133 fwrite($file, $string);
139 /** Gets the signature **/
140 function getSig($data_dir, $username) {
141 $filename = $data_dir . $username . '.sig';
143 if (file_exists($filename)) {
144 $file = fopen($filename, 'r');
145 while (!feof($file)) {
146 $sig .= fgets($file, 1024);