From: Andrew Dolgov Date: Sat, 1 Sep 2012 19:33:56 +0000 (+0400) Subject: reimplement OPML filter export X-Git-Tag: 1.6.0~87 X-Git-Url: https://git.wh0rd.org/?a=commitdiff_plain;h=fd994f1a488783003ede5fdb9cf2f68ef91696bb;p=tt-rss.git reimplement OPML filter export --- diff --git a/classes/opml.php b/classes/opml.php index 60d0d40e..1940250d 100644 --- a/classes/opml.php +++ b/classes/opml.php @@ -159,39 +159,62 @@ class Opml extends Handler_Protected { $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']); + $out .= ""; - while ($line = db_fetch_assoc($result)) { - $name = htmlspecialchars($line['reg_exp']); + $result = db_query($this->link, "SELECT * FROM ttrss_filters2 + WHERE owner_uid = ".$_SESSION["uid"]." ORDER BY id"); + while ($line = db_fetch_assoc($result)) { 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 ac0276fc..960cf996 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");