diff options
author | Andrew Dolgov <[email protected]> | 2010-01-11 14:06:19 +0300 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2010-01-11 14:06:19 +0300 |
commit | e9105eb50dfbfbf33c75a475f21fb7f7ddf76b48 (patch) | |
tree | a4111773c53de1fc8a347a8e8c0cc7d4846b1529 /db-prefs.php | |
parent | fbaca24658379ea3efe92dbeb0f779f95c02fe6a (diff) |
mobile: properly save preferences
Diffstat (limited to 'db-prefs.php')
-rw-r--r-- | db-prefs.php | 33 |
1 files changed, 28 insertions, 5 deletions
diff --git a/db-prefs.php b/db-prefs.php index 659035e15..c644ad70b 100644 --- a/db-prefs.php +++ b/db-prefs.php @@ -73,12 +73,35 @@ 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(); + $result = db_query($link, "SELECT type_name + FROM ttrss_prefs,ttrss_prefs_types + WHERE pref_name = '$key' AND type_id = ttrss_prefs_types.id"); + + if (db_num_rows($result) > 0) { + + $type_name = db_fetch_result($result, 0, "type_name"); + + if ($type_name == "bool") { + if ($value == "1" || $value == "true") { + $value = "true"; + } else { + $value = "false"; + } + } else if ($type_name == "integer") { + $value = sprintf("%d", $value); + } + + if ($pref_name == 'DEFAULT_ARTICLE_LIMIT' && $value == 0) { + $value = 30; + } + + db_query($link, "UPDATE ttrss_user_prefs SET + value = '$value' WHERE pref_name = '$key' + AND owner_uid = " . $_SESSION["uid"]); + $_SESSION["prefs_cache"] = array(); + + } } ?> |