- }
-
- return $db->getKey($username, $string);
- }
-
- /** Remove the pref $string **/
- function removePref($data_dir, $username, $string) {
- $db = new dbPrefs;
- if(isset($db->error)) $db->failQuery();
-
- $db->deleteKey($username, $string);
- return;
- }
-
- /** sets the pref, $string, to $set_to **/
- function setPref($data_dir, $username, $string, $set_to) {
- $db = new dbPrefs;
- if(isset($db->error))
- $db->failQuery();
-
- $db->setKey($username, $string, $set_to);
- return;
- }
-
- /** This checks if the prefs are available **/
- function checkForPrefs($data_dir, $username) {
- $db = new dbPrefs;
- if(isset($db->error))
- $db->failQuery();
- }
-
- /** Writes the Signature **/
- function setSig($data_dir, $username, $string) {
- $db = new dbPrefs;
- if(isset($db->error))
- $db->failQuery();
-
- $db->setKey($username, "___signature___", $string);
- return;
- }
-
- /** Gets the signature **/
- function getSig($data_dir, $username) {
- $db = new dbPrefs;
- if(isset($db->error))
- $db->failQuery();
-
- return $db->getKey($username, "___signature___");
- }
+ }
+
+ return $db->getKey($username, $string, $default);
+}
+
+/* Remove the pref $string */
+function removePref($data_dir, $username, $string) {
+ $db = new dbPrefs;
+ if(isset($db->error)) {
+ $db->failQuery();
+ }
+
+ $db->deleteKey($username, $string);
+ return;
+}
+
+/* sets the pref, $string, to $set_to */
+function setPref($data_dir, $username, $string, $set_to) {
+ global $prefs_cache;
+
+ if (isset($prefs_cache[$string]) && ($prefs_cache[$string] == $set_to)) {
+ return;
+ }
+
+ if ($set_to == '') {
+ removePref($data_dir, $username, $string);
+ return;
+ }
+
+ $db = new dbPrefs;
+ if(isset($db->error)) {
+ $db->failQuery();
+ }
+
+ $db->setKey($username, $string, $set_to);
+ $prefs_cache[$string] = $set_to;
+ assert_options(ASSERT_ACTIVE, 1);
+ assert_options(ASSERT_BAIL, 1);
+ assert ('$set_to == $prefs_cache[$string]');
+
+ return;
+}
+
+/* This checks if the prefs are available */
+function checkForPrefs($data_dir, $username) {
+ $db = new dbPrefs;
+ if(isset($db->error)) {
+ $db->failQuery();
+ }
+}
+
+/* Writes the Signature */
+function setSig($data_dir, $username, $number, $string) {
+ $db = new dbPrefs;
+ if(isset($db->error)) {
+ $db->failQuery();
+ }
+
+ if ($number == "g") {
+ $key = '___signature___';
+ } else {
+ $key = sprintf('___sig%s___', $number);
+ }
+ $db->setKey($username, $key, $string);
+ return;
+}
+
+/* Gets the signature */
+function getSig($data_dir, $username, $number) {
+ $db = new dbPrefs;
+ if(isset($db->error)) {
+ $db->failQuery();
+ }
+
+ if ($number == "g") {
+ $key = '___signature___';
+ } else {
+ $key = sprintf('___sig%d___', $number);
+ }
+ return $db->getKey($username, $key);
+}