From 5383f6206c6dfc7f2fe2376c12ce8879783e3506 Mon Sep 17 00:00:00 2001 From: Marien Fressinaud Date: Tue, 23 Oct 2012 22:33:16 +0200 Subject: ajout fonction importation fichiers OPMs OPML --- lib/lib_rss.php | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 66 insertions(+), 7 deletions(-) (limited to 'lib/lib_rss.php') diff --git a/lib/lib_rss.php b/lib/lib_rss.php index 74a86558c..7d01a4a0f 100644 --- a/lib/lib_rss.php +++ b/lib/lib_rss.php @@ -1,13 +1,12 @@ body->outline as $outline) { + if (!isset ($outline['xmlUrl'])) { + // Catégorie + $title = ''; + + if (isset ($outline['text'])) { + $title = (string) $outline['text']; + } elseif (isset ($outline['title'])) { + $title = (string) $outline['title']; + } + + if ($title) { + $cat = new Category ($title); + $categories[] = $cat; + + $feeds = array_merge ($feeds, getFeedsOutline ($outline, $cat->id ())); + } + } else { + // Flux rss + $feeds[] = getFeed ($outline, ''); + } + } + + return array ($categories, $feeds); +} + +/** + * import all feeds of a given outline tag + */ +function getFeedsOutline ($outline, $cat_id) { + $feeds = array (); + + foreach ($outline->children () as $child) { + if (isset ($child['xmlUrl'])) { + $feeds[] = getFeed ($child, $cat_id); + } else { + $feeds = array_merge( + $feeds, + getFeedsOutline ($child, $cat_id) + ); + } + } + + return $feeds; +} + +function getFeed ($outline, $cat_id) { + $url = (string) $outline['xmlUrl']; + $feed = new Feed ($url); + $feed->_category ($cat_id); + + return $feed; } -- cgit v1.2.3