diff --git a/classes/opml.php b/classes/opml.php index 60d0d40e0..1940250d3 100644 --- a/classes/opml.php +++ b/classes/opml.php @@ -159,39 +159,62 @@ class Opml extends Handler_Protected { $out .= ""; -/* $out .= ""; + $out .= ""; - $result = db_query($this->link, "SELECT filter_type, - reg_exp, - action_id, - enabled, - action_param, - inverse, - filter_param, - cat_filter, - ttrss_feeds.feed_url AS feed_url, - ttrss_feed_categories.title AS cat_title - FROM ttrss_filters - LEFT JOIN ttrss_feeds ON (feed_id = ttrss_feeds.id) - LEFT JOIN ttrss_feed_categories ON (ttrss_filters.cat_id = ttrss_feed_categories.id) - WHERE - ttrss_filters.owner_uid = " . $_SESSION['uid']); + $result = db_query($this->link, "SELECT * FROM ttrss_filters2 + WHERE owner_uid = ".$_SESSION["uid"]." ORDER BY id"); while ($line = db_fetch_assoc($result)) { - $name = htmlspecialchars($line['reg_exp']); - foreach (array('enabled', 'inverse', 'cat_filter') as $b) { $line[$b] = sql_bool_to_bool($line[$b]); } + $line["rules"] = array(); + $line["actions"] = array(); + + $tmp_result = db_query($this->link, "SELECT * FROM ttrss_filters2_rules + WHERE filter_id = ".$line["id"]); + + while ($tmp_line = db_fetch_assoc($tmp_result)) { + unset($tmp_line["id"]); + unset($tmp_line["filter_id"]); + + $cat_filter = sql_bool_to_bool($tmp_line["cat_filter"]); + + if ($cat_filter && $tmp_line["cat_id"] || $tmp_line["feed_id"]) { + $tmp_line["feed"] = getFeedTitle($this->link, + $cat_filter ? $tmp_line["cat_id"] : $tmp_line["feed_id"], + $cat_filter); + } else { + $tmp_line["feed"] = ""; + } + + unset($tmp_line["feed_id"]); + unset($tmp_line["cat_id"]); + + array_push($line["rules"], $tmp_line); + } + + $tmp_result = db_query($this->link, "SELECT * FROM ttrss_filters2_actions + WHERE filter_id = ".$line["id"]); + + while ($tmp_line = db_fetch_assoc($tmp_result)) { + unset($tmp_line["id"]); + unset($tmp_line["filter_id"]); + + array_push($line["actions"], $tmp_line); + } + + unset($line["id"]); + unset($line["owner_uid"]); $filter = json_encode($line); - $out .= "$filter"; + $out .= "$filter"; } - $out .= ""; */ + $out .= ""; } $out .= ""; diff --git a/include/functions.php b/include/functions.php index ac0276fc7..960cf996f 100644 --- a/include/functions.php +++ b/include/functions.php @@ -2015,7 +2015,7 @@ } - function getFeedIcon($id) { + function getFeedIcon($id, $cat) { switch ($id) { case 0: return "images/archive.png"; @@ -2046,8 +2046,10 @@ } } - function getFeedTitle($link, $id) { - if ($id == -1) { + function getFeedTitle($link, $id, $cat = false) { + if ($cat) { + return getFeedCatTitle($link, $id); + } else if ($id == -1) { return __("Starred articles"); } else if ($id == -2) { return __("Published articles");