From bbefea90a7f05fd02398fe2deb1e9c7d234b5b82 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 27 Dec 2011 16:41:49 +0400 Subject: implement import/export of labels using OPML --- opml.php | 59 +++++++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 41 insertions(+), 18 deletions(-) (limited to 'opml.php') diff --git a/opml.php b/opml.php index feccfaa35..6e5a49966 100644 --- a/opml.php +++ b/opml.php @@ -1,5 +1,5 @@ attributes->getNamedItem('text')->nodeValue); + $attributes = $outline->attributes; - if (!$feed_title) { - $feed_title = db_escape_string($outline->attributes->getNamedItem('title')->nodeValue); - } - - $cat_title = db_escape_string($outline->attributes->getNamedItem('title')->nodeValue); + $feed_title = db_escape_string($attributes->getNamedItem('text')->nodeValue); + if (!$feed_title) $feed_title = db_escape_string($attributes->getNamedItem('title')->nodeValue); - if (!$cat_title) { - $cat_title = db_escape_string($outline->attributes->getNamedItem('text')->nodeValue); - } + $cat_title = db_escape_string($attributes->getNamedItem('title')->nodeValue); + if (!$cat_title) $cat_title = db_escape_string($attributes->getNamedItem('text')->nodeValue); - $feed_url = db_escape_string($outline->attributes->getNamedItem('xmlUrl')->nodeValue); + $feed_url = db_escape_string($attributes->getNamedItem('xmlUrl')->nodeValue); + if (!$feed_url) $feed_url = db_escape_string($attributes->getNamedItem('xmlURL')->nodeValue); - if (!$feed_url) - $feed_url = db_escape_string($outline->attributes->getNamedItem('xmlURL')->nodeValue); + $site_url = db_escape_string($attributes->getNamedItem('htmlUrl')->nodeValue); - $site_url = db_escape_string($outline->attributes->getNamedItem('htmlUrl')->nodeValue); - - $pref_name = db_escape_string($outline->attributes->getNamedItem('pref-name')->nodeValue); + $pref_name = db_escape_string($attributes->getNamedItem('pref-name')->nodeValue); + $label_name = db_escape_string($attributes->getNamedItem('label-name')->nodeValue); if ($cat_title && !$feed_url) { - if ($cat_title != "tt-rss-prefs") { + if ($cat_title != "tt-rss-prefs" && $cat_title != 'tt-rss-labels') { db_query($link, "BEGIN"); @@ -102,6 +97,18 @@ } } + if ($label_name) { + $fg_color = db_escape_string($attributes->getNamedItem('label-fg-color')->nodeValue); + $bg_color = db_escape_string($attributes->getNamedItem('label-bg-color')->nodeValue); + + if (!label_find_id($link, $label_name, $_SESSION['uid'])) { + + printf("
  • ".__("Adding label %s")."
  • ", $label_name); + + label_create($link, $label_name, $fg_color, $bg_color); + } + } + if (!$feed_title || !$feed_url) continue; db_query($link, "BEGIN"); @@ -181,10 +188,10 @@ function opml_export($link, $name, $owner_uid, $hide_private_feeds=false, $include_settings=true) { if (!$_REQUEST["debug"]) { header("Content-type: application/xml+opml"); + header("Content-Disposition: attachment; filename=" . $name ); } else { header("Content-type: text/xml"); } - header("Content-Disposition: attachment; filename=" . $name ); print ""; @@ -281,6 +288,22 @@ } print ""; + + print ""; + + $result = db_query($link, "SELECT * FROM ttrss_labels2 WHERE + owner_uid = " . $_SESSION['uid']); + + while ($line = db_fetch_assoc($result)) { + $name = htmlspecialchars($line['caption']); + $fg_color = htmlspecialchars($line['fg_color']); + $bg_color = htmlspecialchars($line['bg_color']); + + print ""; + + } + + print ""; } print ""; -- cgit v1.2.3