diff --git a/opml.php b/opml.php
index d0f60300..8ddc9dca 100644
--- a/opml.php
+++ b/opml.php
@@ -287,8 +287,77 @@
}
+ function opml_export_category($link, $owner_uid, $cat_id, $hide_private_feeds=false) {
+
+ if ($cat_id)
+ $cat_qpart = "parent_cat = '$cat_id'";
+ else
+ $cat_qpart = "parent_cat IS NULL";
+
+ if ($hide_private_feeds)
+ $hide_qpart = "(private IS false AND auth_login = '' AND auth_pass = '')";
+ else
+ $hide_qpart = "true";
+
+ $out = "";
+
+ $query = "SELECT
+ ttrss_feeds.title, feed_url, site_url, ttrss_feeds.order_id,
+ ttrss_feed_categories.id AS cat_id,
+ ttrss_feed_categories.title AS cat_title,
+ ttrss_feed_categories.order_id AS cat_order_id
+ FROM ttrss_feeds LEFT JOIN ttrss_feed_categories ON (ttrss_feed_categories.id = ttrss_feeds.cat_id)
+ WHERE ttrss_feeds.owner_uid = '$owner_uid' AND $hide_qpart AND $cat_qpart
+ ORDER BY cat_order_id, cat_title, ttrss_feeds.order_id, title";
+
+ #$out .= "";
+
+ $result = db_query($link, $query);
+
+ $old_cat_title = "";
+
+ while ($line = db_fetch_assoc($result)) {
+ $title = htmlspecialchars($line["title"]);
+ $url = htmlspecialchars($line["feed_url"]);
+ $site_url = htmlspecialchars($line["site_url"]);
+
+ $cat_title = htmlspecialchars($line["cat_title"]);
+
+ if ($old_cat_title != $cat_title) {
+ if ($old_cat_title) {
+ $out .= "\n";
+ }
+
+ if ($cat_title) {
+ $out .= "\n";
+ }
+ $old_cat_title = $cat_title;
+
+ $cat_id = (int) $line["cat_id"];
+
+ if ($cat_id > 0)
+ $out .= opml_export_category($link, $owner_uid, $cat_id, $hide_private_feeds);
+ }
+
+ if ($site_url) {
+ $html_url_qpart = "htmlUrl=\"$site_url\"";
+ } else {
+ $html_url_qpart = "";
+ }
+
+ $out .= "\n";
+
+ }
+
+ if ($old_cat_title) {
+ $out .= "\n";
+ }
+
+ return $out;
+ }
+
function opml_export($link, $name, $owner_uid, $hide_private_feeds=false, $include_settings=true) {
- if (!$_REQUEST["debug"]) {
+ if (!isset($_REQUEST["debug"])) {
header("Content-type: application/xml+opml");
header("Content-Disposition: attachment; filename=" . $name );
} else {
@@ -304,72 +373,7 @@
";
$out .= "
";
- $cat_mode = false;
-
- $select = "SELECT * ";
- $where = "WHERE owner_uid = '$owner_uid'";
- $orderby = "ORDER BY order_id, title";
- if ($hide_private_feeds){
- $where = "WHERE owner_uid = '$owner_uid' AND private IS false AND
- auth_login = '' AND auth_pass = ''";
- }
-
-
-
- if (get_pref($link, 'ENABLE_FEED_CATS', $owner_uid) == true) {
- $cat_mode = true;
- $select = "SELECT
- title, feed_url, site_url, order_id,
- (SELECT order_id FROM ttrss_feed_categories WHERE id = cat_id) AS cat_order_id,
- (SELECT title FROM ttrss_feed_categories WHERE id = cat_id) as cat_title";
- $orderby = "ORDER BY cat_order_id, cat_title, order_id, title";
-
- }
- else{
- $cat_feed = get_pref($link, 'ENABLE_FEED_CATS');
- $out .= "";
- $out .= "";
-
- }
-
-
- $result = db_query($link, $select." FROM ttrss_feeds ".$where." ".$orderby);
-
- $old_cat_title = "";
-
- while ($line = db_fetch_assoc($result)) {
- $title = htmlspecialchars($line["title"]);
- $url = htmlspecialchars($line["feed_url"]);
- $site_url = htmlspecialchars($line["site_url"]);
-
- if ($cat_mode) {
- $cat_title = htmlspecialchars($line["cat_title"]);
-
- if ($old_cat_title != $cat_title) {
- if ($old_cat_title) {
- $out .= "\n";
- }
-
- if ($cat_title) {
- $out .= "\n";
- }
-
- $old_cat_title = $cat_title;
- }
- }
-
- if ($site_url) {
- $html_url_qpart = "htmlUrl=\"$site_url\"";
- } else {
- $html_url_qpart = "";
- }
-
- $out .= "\n";
- }
-
- if ($cat_mode && $old_cat_title) {
- $out .= "\n";
- }
+ $out .= opml_export_category($link, $owner_uid, false, $hide_private_feeds);
# export tt-rss settings