|
@@ -8,111 +8,100 @@
|
|
|
**/
|
|
|
|
|
|
$prefs_php = true;
|
|
|
-
|
|
|
+
|
|
|
+ $prefs_are_cached = false;
|
|
|
+ $prefs_cache = array();
|
|
|
+
|
|
|
+ function cachePrefValues($data_dir, $username)
|
|
|
+ {
|
|
|
+ global $prefs_are_cached, $prefs_cache;
|
|
|
+
|
|
|
+ if ($prefs_are_cached)
|
|
|
+ return;
|
|
|
+
|
|
|
+ $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);
|
|
|
+ exit;
|
|
|
+ }
|
|
|
+
|
|
|
+ $file = fopen($filename, "r");
|
|
|
+
|
|
|
+ /** read in all 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);
|
|
|
+
|
|
|
+ $prefs_are_cached = true;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
/** returns the value for $string **/
|
|
|
function getPref($data_dir, $username, $string) {
|
|
|
- $filename = "$data_dir$username.pref";
|
|
|
- if (!file_exists($filename)) {
|
|
|
- printf (_("Preference file %s not found. Exiting abnormally"), $filename);
|
|
|
- exit;
|
|
|
- }
|
|
|
-
|
|
|
- $file = fopen($filename, "r");
|
|
|
-
|
|
|
- /** read in all the preferences **/
|
|
|
- for ($i=0; !feof($file); $i++) {
|
|
|
- $pref = fgets($file, 1024);
|
|
|
- if (substr($pref, 0, strpos($pref, "=")) == $string) {
|
|
|
- fclose($file);
|
|
|
- return trim(substr($pref, strpos($pref, "=")+1));
|
|
|
- }
|
|
|
- }
|
|
|
- fclose($file);
|
|
|
- return "";
|
|
|
+ global $prefs_cache;
|
|
|
+
|
|
|
+ cachePrefValues($data_dir, $username);
|
|
|
+
|
|
|
+ if (isset($prefs_cache[$string]))
|
|
|
+ return $prefs_cache[$string];
|
|
|
+ return '';
|
|
|
}
|
|
|
|
|
|
- function removePref($data_dir, $username, $string) {
|
|
|
- $filename = "$data_dir$username.pref";
|
|
|
- $found = false;
|
|
|
- if (!file_exists($filename)) {
|
|
|
- printf (_("Preference file, %s, does not exist. Log out, and log back in to create a default preference file."), $filename);
|
|
|
- echo "<br>\n";
|
|
|
- exit;
|
|
|
- }
|
|
|
- $file = fopen($filename, "r");
|
|
|
|
|
|
- for ($i=0; !feof($file); $i++) {
|
|
|
- $pref[$i] = fgets($file, 1024);
|
|
|
- if (substr($pref[$i], 0, strpos($pref[$i], "=")) == $string) {
|
|
|
- $i--;
|
|
|
- }
|
|
|
+ function savePrefValues($data_dir, $username)
|
|
|
+ {
|
|
|
+ global $prefs_cache;
|
|
|
+
|
|
|
+ $file = fopen($data_dir . $username . '.pref', "w");
|
|
|
+ foreach ($prefs_cache as $Key => $Value)
|
|
|
+ {
|
|
|
+ if (isset($Value))
|
|
|
+ fwrite($file, $Key . '=' . $Value . "\n");
|
|
|
}
|
|
|
fclose($file);
|
|
|
+ }
|
|
|
|
|
|
- for ($i=0,$j=0; $i < count($pref); $i++) {
|
|
|
- if (substr($pref[$i], 0, 9) == "highlight") {
|
|
|
- $hlt[$j] = substr($pref[$i], strpos($pref[$i], "=")+1);
|
|
|
- $j++;
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
- $file = fopen($filename, "w");
|
|
|
- for ($i=0; $i < count($pref); $i++) {
|
|
|
- if (substr($pref[$i], 0, 9) != "highlight") {
|
|
|
- fwrite($file, "$pref[$i]", 1024);
|
|
|
- }
|
|
|
- }
|
|
|
- if (isset($hlt)) {
|
|
|
- for ($i=0; $i < count($hlt); $i++) {
|
|
|
- fwrite($file, "highlight$i=$hlt[$i]");
|
|
|
- }
|
|
|
- }
|
|
|
- fclose($file);
|
|
|
+ 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);
|
|
|
}
|
|
|
|
|
|
/** sets the pref, $string, to $set_to **/
|
|
|
function setPref($data_dir, $username, $string, $set_to) {
|
|
|
- $filename = "$data_dir$username.pref";
|
|
|
- $found = false;
|
|
|
- if (!file_exists($filename)) {
|
|
|
- printf (_("Preference file, %s, does not exist. Log out, and log back in to create a default preference file."), $filename);
|
|
|
- echo "\n<br>\n";
|
|
|
- exit;
|
|
|
- }
|
|
|
- $file = fopen($filename, "r");
|
|
|
-
|
|
|
- /** read in all the preferences **/
|
|
|
- for ($i=0; !feof($file); $i++) {
|
|
|
- $pref[$i] = fgets($file, 1024);
|
|
|
- if (substr($pref[$i], 0, strpos($pref[$i], "=")) == $string) {
|
|
|
- $found = true;
|
|
|
- $pos = $i;
|
|
|
- }
|
|
|
- }
|
|
|
- fclose($file);
|
|
|
-
|
|
|
- $file = fopen($filename, "w");
|
|
|
- if ($found == true) {
|
|
|
- for ($i=0; $i < count($pref); $i++) {
|
|
|
- if ($i == $pos) {
|
|
|
- fwrite($file, "$string=$set_to\n", 1024);
|
|
|
- } else {
|
|
|
- fwrite($file, "$pref[$i]", 1024);
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
- for ($i=0; $i < count($pref); $i++) {
|
|
|
- fwrite($file, "$pref[$i]", 1024);
|
|
|
- }
|
|
|
- fwrite($file, "$string=$set_to\n", 1024);
|
|
|
- }
|
|
|
+ global $prefs_cache;
|
|
|
+
|
|
|
+ cachePrefValues($data_dir, $username);
|
|
|
+
|
|
|
+ $prefs_cache[$string] = $set_to;
|
|
|
|
|
|
- fclose($file);
|
|
|
+ savePrefValues($data_dir, $username);
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
-
|
|
|
/** This checks if there is a pref file, if there isn't, it will
|
|
|
create it. **/
|
|
|
function checkForPrefs($data_dir, $username) {
|
|
@@ -126,7 +115,6 @@
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
/** Writes the Signature **/
|
|
|
function setSig($data_dir, $username, $string) {
|
|
|
$filename = "$data_dir$username.sig";
|