diff --git a/backend.php b/backend.php
index e70fc9d7e..f37c51bd8 100644
--- a/backend.php
+++ b/backend.php
@@ -1,7 +1,7 @@
define(SCHEMA_VERSION, 2);
- $op = $_GET["op"];
+ $op = $_REQUEST["op"];
if ($op == "rpc" || $op == "updateAllFeeds") {
header("Content-Type: application/xml");
@@ -1504,6 +1504,128 @@
}
+ if ($op == "pref-prefs") {
+
+ $subop = $_POST["subop"];
+
+ if ($subop == "Save configuration") {
+
+ foreach (array_keys($_POST) as $pref_name) {
+
+ $pref_name = db_escape_string($pref_name);
+ $value = db_escape_string($_POST[$pref_name]);
+
+ $result = db_query($link, "SELECT type_name
+ FROM ttrss_prefs,ttrss_prefs_types
+ WHERE pref_name = '$pref_name' 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";
+ } else {
+ $value = "false";
+ }
+ } else if ($type_name == "integer") {
+ $value = sprintf("%d", $value);
+ }
+
+// print "$pref_name : $type_name : $value
";
+
+ db_query($link, "UPDATE ttrss_prefs SET value = '$value'
+ WHERE pref_name = '$pref_name'");
+
+ }
+
+ header("Location: prefs.php");
+
+ }
+
+ } else if ($subop == "Reset to defaults") {
+
+ header("Location: prefs.php");
+
+ } else {
+
+ $result = db_query($link, "SELECT
+ pref_name,short_desc,help_text,value,type_name,
+ section_name,def_value
+ FROM ttrss_prefs,ttrss_prefs_types,ttrss_prefs_sections
+ WHERE type_id = ttrss_prefs_types.id AND
+ section_id = ttrss_prefs_sections.id
+ ORDER BY section_name,short_desc");
+
+ print "