diff --git a/backend.php b/backend.php
index 9dd4c6f55..9fe8792f2 100644
--- a/backend.php
+++ b/backend.php
@@ -155,12 +155,6 @@
}
switch($op) { // Select action according to $op value.
-
- case "pref_filters":
- require_once "modules/pref-filters.php";
- module_pref_filters($link);
- break; // pref-filters
-
case "pref_instances":
require_once "modules/pref-instances.php";
module_pref_instances($link);
diff --git a/classes/pref_filters.php b/classes/pref_filters.php
new file mode 100644
index 000000000..754e8d211
--- /dev/null
+++ b/classes/pref_filters.php
@@ -0,0 +1,570 @@
+link, "SELECT name FROM ttrss_filter_types WHERE
+ id = " . $filter_type);
+ $type_name = db_fetch_result($result, 0, "name");
+
+ $result = db_query($this->link, "SELECT name FROM ttrss_filter_actions WHERE
+ id = " . $action_id);
+ $action_name = db_fetch_result($result, 0, "name");
+
+ $filter["reg_exp"] = $reg_exp;
+ $filter["action"] = $action_name;
+ $filter["type"] = $type_name;
+ $filter["action_param"] = $action_param;
+ $filter["filter_param"] = $filter_param;
+ $filter["inverse"] = $inverse;
+
+ $filters[$type_name] = array($filter);
+
+ if ($feed_id)
+ $feed = $feed_id;
+ else
+ $feed = -4;
+
+ $feed_title = getFeedTitle($this->link, $feed);
+
+ $qfh_ret = queryFeedHeadlines($this->link, $feed,
+ 30, "", false, false, false,
+ false, "date_entered DESC", 0, $_SESSION["uid"], $filter);
+
+ $result = $qfh_ret[0];
+
+ $articles = array();
+ $found = 0;
+
+ print __("Articles matching this filter:");
+
+ print "
";
+
+ }
+
+ function getfiltertree() {
+ $root = array();
+ $root['id'] = 'root';
+ $root['name'] = __('Filters');
+ $root['items'] = array();
+
+ $result = db_query($this->link, "SELECT
+ ttrss_filters.id AS id,reg_exp,
+ ttrss_filter_types.name AS filter_type_name,
+ ttrss_filter_types.description AS filter_type_descr,
+ enabled,
+ inverse,
+ feed_id,
+ action_id,
+ filter_param,
+ filter_type,
+ ttrss_filter_actions.description AS action_description,
+ ttrss_feeds.title AS feed_title,
+ ttrss_filter_actions.name AS action_name,
+ ttrss_filters.action_param AS action_param
+ FROM
+ ttrss_filter_types,ttrss_filter_actions,ttrss_filters LEFT JOIN
+ ttrss_feeds ON (ttrss_filters.feed_id = ttrss_feeds.id)
+ WHERE
+ filter_type = ttrss_filter_types.id AND
+ ttrss_filter_actions.id = action_id AND
+ ttrss_filters.owner_uid = ".$_SESSION["uid"]."
+ ORDER by action_description, reg_exp");
+
+ $cat = false;
+ $cur_action_description = "";
+
+ if (db_num_rows($result) > 0) {
+
+ while ($line = db_fetch_assoc($result)) {
+ if ($cur_action_description != $line['action_description']) {
+
+ if ($cat)
+ array_push($root['items'], $cat);
+
+ $cat = array();
+ $cat['id'] = 'ACTION:' . $line['action_id'];
+ $cat['name'] = $line['action_description'];
+ $cat['items'] = array();
+
+ $cur_action_description = $line['action_description'];
+ }
+
+ if (array_search($line["action_name"],
+ array("score", "tag", "label")) === false) {
+
+ $line["action_param"] = '';
+ } else {
+ if ($line['action_name'] == 'label') {
+
+ $tmp_result = db_query($this->link, "SELECT fg_color, bg_color
+ FROM ttrss_labels2 WHERE caption = '".
+ db_escape_string($line["action_param"])."' AND
+ owner_uid = " . $_SESSION["uid"]);
+
+ if (db_num_rows($tmp_result) != 0) {
+ $fg_color = db_fetch_result($tmp_result, 0, "fg_color");
+ $bg_color = db_fetch_result($tmp_result, 0, "bg_color");
+
+ $tmp = "α " . $line['action_param'];
+
+ $line['action_param'] = $tmp;
+ }
+ }
+ }
+
+ $filter = array();
+ $filter['id'] = 'FILTER:' . $line['id'];
+ $filter['bare_id'] = $line['id'];
+ $filter['name'] = $line['reg_exp'];
+ $filter['type'] = $line['filter_type'];
+ $filter['enabled'] = sql_bool_to_bool($line['enabled']);
+ $filter['param'] = $line['action_param'];
+ $filter['inverse'] = sql_bool_to_bool($line['inverse']);
+ $filter['checkbox'] = false;
+
+ if ($line['feed_id'])
+ $filter['feed'] = $line['feed_title'];
+
+ array_push($cat['items'], $filter);
+ }
+
+ array_push($root['items'], $cat);
+ }
+
+ $fl = array();
+ $fl['identifier'] = 'id';
+ $fl['label'] = 'name';
+ $fl['items'] = array($root);
+
+ print json_encode($fl);
+ return;
+ }
+
+ function edit() {
+
+ $filter_id = db_escape_string($_REQUEST["id"]);
+
+ $result = db_query($this->link,
+ "SELECT * FROM ttrss_filters WHERE id = '$filter_id' AND owner_uid = " . $_SESSION["uid"]);
+
+ $reg_exp = htmlspecialchars(db_fetch_result($result, 0, "reg_exp"));
+ $filter_type = db_fetch_result($result, 0, "filter_type");
+ $feed_id = db_fetch_result($result, 0, "feed_id");
+ $action_id = db_fetch_result($result, 0, "action_id");
+ $action_param = db_fetch_result($result, 0, "action_param");
+ $filter_param = db_fetch_result($result, 0, "filter_param");
+
+ $enabled = sql_bool_to_bool(db_fetch_result($result, 0, "enabled"));
+ $inverse = sql_bool_to_bool(db_fetch_result($result, 0, "inverse"));
+
+ print "