diff options
author | Andrew Dolgov <[email protected]> | 2012-09-01 23:33:56 +0400 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2012-09-01 23:33:56 +0400 |
commit | fd994f1a488783003ede5fdb9cf2f68ef91696bb (patch) | |
tree | 4b0821af73b544762bfbecda53935fd83e4c23ef | |
parent | ff34bac2bf4cb6ce6858c5d1afbb2a71aa18879a (diff) |
reimplement OPML filter export
-rw-r--r-- | classes/opml.php | 65 | ||||
-rw-r--r-- | include/functions.php | 8 |
2 files changed, 49 insertions, 24 deletions
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 .= "</outline>"; -/* $out .= "<outline title=\"tt-rss-filters\" schema-version=\"".SCHEMA_VERSION."\">"; - - $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 .= "<outline title=\"tt-rss-filters\" schema-version=\"".SCHEMA_VERSION."\">"; - 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 .= "<outline filter-name=\"$name\">$filter</outline>"; + $out .= "<outline filter-type=\"2\">$filter</outline>"; } - $out .= "</outline>"; */ + $out .= "</outline>"; } $out .= "</body></opml>"; 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"); |