X-Git-Url: https://git.wh0rd.org/?a=blobdiff_plain;f=db-prefs.php;h=07c4548d3f5fc8cfde82bda4ff71da00dc2b5a17;hb=73bdfa53f3d769881838ce30fe37db99494cd4f1;hp=16278c54045db3e5297053b1c623479663be0b67;hpb=8c7bbd2d4e35c4186d94661b3205d4523f84b558;p=tt-rss.git diff --git a/db-prefs.php b/db-prefs.php index 16278c54..07c4548d 100644 --- a/db-prefs.php +++ b/db-prefs.php @@ -1,13 +1,30 @@ - 0) { $value = db_fetch_result($result, 0, "value"); $type_name = db_fetch_result($result, 0, "type_name"); - if ($type_name == "bool") { - return $value == "true"; - } else if ($type_name == "integer") { - return sprintf("%d", $value); - } else { - return $value; + if (!defined('DISABLE_SESSIONS') && !SINGLE_USER_MODE) { + if ($user_id = $_SESSION["uid"]) { + $_SESSION["prefs_cache"][$pref_name]["type"] = $type_name; + $_SESSION["prefs_cache"][$pref_name]["value"] = $value; + } } + + return convert_pref_type($value, $type_name); } else { - die("Fatal error, unknown preferences key: $pref_name"); + if ($die_on_error) { + die("Fatal error, unknown preferences key: $pref_name"); + } else { + return null; + } } } + function convert_pref_type($value, $type_name) { + if ($type_name == "bool") { + return $value == "true"; + } else if ($type_name == "integer") { + return sprintf("%d", $value); + } else { + return $value; + } + } + + // doesn't peform any type checking, be vigilant + + function set_pref($link, $key, $value) { + $key = db_escape_string($key); + $value = db_escape_string($value); + + db_query($link, "UPDATE ttrss_user_prefs SET + value = '$value' WHERE pref_name = '$key' + AND owner_uid = " . $_SESSION["uid"]); + + $_SESSION["prefs_cache"] = array(); + + } ?>