summaryrefslogtreecommitdiff
path: root/db-prefs.php
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2010-01-11 14:06:19 +0300
committerAndrew Dolgov <[email protected]>2010-01-11 14:06:19 +0300
commite9105eb50dfbfbf33c75a475f21fb7f7ddf76b48 (patch)
treea4111773c53de1fc8a347a8e8c0cc7d4846b1529 /db-prefs.php
parentfbaca24658379ea3efe92dbeb0f779f95c02fe6a (diff)
mobile: properly save preferences
Diffstat (limited to 'db-prefs.php')
-rw-r--r--db-prefs.php33
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();
+
+ }
}
?>