From 04f6df27b991f9811ab4ee1b79151f7c1667df36 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Fri, 25 Nov 2005 14:55:21 +0100 Subject: fix OPML import handling uncategorized feeds, misc OPML touch-ups --- opml.php | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) (limited to 'opml.php') diff --git a/opml.php b/opml.php index b7ad52252..b9986cda6 100644 --- a/opml.php +++ b/opml.php @@ -83,8 +83,9 @@ -

Importing OPML...

-
"; + +

Importing OPML...

+
"; if (WEB_DEMO_MODE) { print "OPML import is disabled in demo-mode."; @@ -107,15 +108,12 @@ $outlines = $body->get_elements_by_tagname('outline'); - $active_category = ''; - foreach ($outlines as $outline) { - $feed_title = $outline->get_attribute('text'); - $cat_title = $outline->get_attribute('title'); - $feed_url = $outline->get_attribute('xmlUrl'); + $feed_title = db_escape_string($outline->get_attribute('text')); + $cat_title = db_escape_string($outline->get_attribute('title')); + $feed_url = db_escape_string($outline->get_attribute('xmlUrl')); if ($cat_title) { - $active_category = $cat_title; db_query($link, "BEGIN"); @@ -142,10 +140,18 @@ $cat_id = null; - if ($active_category) { + $parent_node = $outline->parent_node(); + + if ($parent_node && $parent_node->node_name() == "outline") { + $element_category = $parent_node->get_attribute('title'); + } else { + $element_category = ''; + } + + if ($element_category) { $result = db_query($link, "SELECT id FROM - ttrss_feed_categories WHERE title = '$active_category' AND + ttrss_feed_categories WHERE title = '$element_category' AND owner_uid = '$owner_uid' LIMIT 1"); if (db_num_rows($result) == 1) { @@ -174,7 +180,7 @@ ('$feed_title', '$feed_url', '$owner_uid')"; } - + db_query($link, $add_query); print "Done.
"; @@ -184,14 +190,14 @@ } } else { - print "Error: can't find body element."; + print "
Error: can't find body element.
"; } } else { - print "Error while parsing document."; + print "
Error while parsing document.
"; } } else { - print "Error: please upload OPML file."; + print "
Error: please upload OPML file.
"; } print "

-- cgit v1.2.3-54-g00ecf