From: Andrew Dolgov Date: Tue, 27 Dec 2011 12:41:49 +0000 (+0400) Subject: implement import/export of labels using OPML X-Git-Tag: 1.5.9~38 X-Git-Url: https://git.wh0rd.org/?p=tt-rss.git;a=commitdiff_plain;h=bbefea90a7f05fd02398fe2deb1e9c7d234b5b82 implement import/export of labels using OPML --- diff --git a/classes/pref_feeds.php b/classes/pref_feeds.php index 5937bfc8..d2af9778 100644 --- a/classes/pref_feeds.php +++ b/classes/pref_feeds.php @@ -1400,7 +1400,7 @@ class Pref_Feeds extends Protected_Handler { print "
"; - print "

" . __("Using OPML you can export and import your feeds and Tiny Tiny RSS settings.") . " "; + print "

" . __("Using OPML you can export and import your feeds, labels and Tiny Tiny RSS settings.") . " "; print "" . __("Note: Only main settings profile can be migrated using OPML.") . ""; diff --git a/include/functions.php b/include/functions.php index 17595028..80581433 100644 --- a/include/functions.php +++ b/include/functions.php @@ -3972,7 +3972,7 @@ db_query($link, "COMMIT"); } - function label_create($link, $caption) { + function label_create($link, $caption, $fg_color = '', $bg_color = '') { db_query($link, "BEGIN"); @@ -3983,8 +3983,8 @@ if (db_num_rows($result) == 0) { $result = db_query($link, - "INSERT INTO ttrss_labels2 (caption,owner_uid) - VALUES ('$caption', '".$_SESSION["uid"]."')"); + "INSERT INTO ttrss_labels2 (caption,owner_uid,fg_color,bg_color) + VALUES ('$caption', '".$_SESSION["uid"]."', '$fg_color', '$bg_color')"); $result = db_affected_rows($link, $result) != 0; } diff --git a/opml.php b/opml.php index feccfaa3..6e5a4996 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 "";