summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCraig Meyer <[email protected]>2011-07-30 22:34:22 -0400
committerCraig Meyer <[email protected]>2011-07-30 22:34:22 -0400
commit08ae2a5ba6b69b574c891a7fb3f88cab5d55b66f (patch)
tree64273a5c001539f92b858e28e6010e6c9e2e05be
parent9949bd154e9d01b50132e387059ef987c6887c8b (diff)
Extend OPML preferences pane, to provide more control of Export OPML
User is prompted for filename, and also whether to include settings. Default filename is: TinyTinyRSS.opml modules/pref-feeds.php Prompt for output OPML filename (Default: TinyTinyRSS.opml ) opml.php Modify to support passing in name=<filename>&settings=[0|1] functions.js Modify to support passing in name=<filename>&settings=[0|1]
-rw-r--r--functions.js5
-rw-r--r--modules/pref-feeds.php15
-rw-r--r--opml.php14
3 files changed, 23 insertions, 11 deletions
diff --git a/functions.js b/functions.js
index 335ed61ec..e8bd6af33 100644
--- a/functions.js
+++ b/functions.js
@@ -277,8 +277,9 @@ function gotoMain() {
document.location.href = "tt-rss.php";
}
-function gotoExportOpml() {
- document.location.href = "opml.php?op=Export";
+function gotoExportOpml(filename, settings) {
+ tmp = settings ? 1 : 0;
+ document.location.href = "opml.php?op=Export&filename=" + filename + "&settings=" + tmp;
}
diff --git a/modules/pref-feeds.php b/modules/pref-feeds.php
index e16fa9b13..947716e91 100644
--- a/modules/pref-feeds.php
+++ b/modules/pref-feeds.php
@@ -1440,16 +1440,21 @@
name=\"upload_iframe\" onload=\"opmlImportComplete(this)\"
style=\"width: 400px; height: 100px; display: none;\"></iframe>";
- print "<form style='display : block' target=\"upload_iframe\"
+ print "<form name=\"opml_form\" style='display : block' target=\"upload_iframe\"
enctype=\"multipart/form-data\" method=\"POST\"
action=\"backend.php\">
<input id=\"opml_file\" name=\"opml_file\" type=\"file\">&nbsp;
<input type=\"hidden\" name=\"op\" value=\"dlg\">
<input type=\"hidden\" name=\"id\" value=\"importOpml\">
- <button dojoType=\"dijit.form.Button\" onclick=\"return opmlImport();\"
- type=\"submit\">".__('Import')."</button>
- <button dojoType=\"dijit.form.Button\" onclick=\"gotoExportOpml()\">".__('Export OPML')."</button>
- </form>";
+ <button dojoType=\"dijit.form.Button\" onclick=\"return opmlImport();\" type=\"submit\">" .
+ __('Import') . "</button>" .
+ "<p>" . __('Export Name:&nbsp;') .
+ "<input type=\"text\" id=\"filename\" value=\"TinyTinyRSS.opml\" />&nbsp;" .
+ __('Include Settings?&nbsp;') . "<input type=\"checkbox\" id=\"settings\" CHECKED />" .
+
+ "<button dojoType=\"dijit.form.Button\"
+ onclick=\"gotoExportOpml(document.opml_form.filename.value, document.opml_form.settings.checked)\" >" .
+ __('Export OPML') . "</button></p></form>";
print "<p>".__('Your OPML can be published publicly and can be subscribed by anyone who knows the URL below.');
diff --git a/opml.php b/opml.php
index 2e1eb84c6..991f93e0c 100644
--- a/opml.php
+++ b/opml.php
@@ -10,12 +10,14 @@
init_connection($link);
- function opml_export($link, $owner_uid, $hide_private_feeds=false, $include_settings=true) {
+ function opml_export($link, $name, $owner_uid, $hide_private_feeds=false, $include_settings=true) {
if (!$_REQUEST["debug"]) {
header("Content-type: application/xml+opml");
} else {
header("Content-type: text/xml");
}
+ header("Content-Disposition: attachment; filename=" . $name );
+
print "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
print "<opml version=\"1.0\">";
@@ -119,14 +121,18 @@
// FIXME there are some brackets issues here
$op = $_REQUEST["op"];
+ if (!$op) $op = "Export";
+
+ $output_name = $_REQUEST["filename"];
+ if (!$output_name) $output_name = "TinyTinyRSS.opml";
- if (!$op) $op = "Export";
+ $show_settings = $_REQUEST["settings"];
if ($op == "Export") {
login_sequence($link);
$owner_uid = $_SESSION["uid"];
- return opml_export($link, $owner_uid);
+ return opml_export($link, $output_name, $owner_uid, false, ($show_settings == 1));
}
if ($op == "publish"){
@@ -138,7 +144,7 @@
if (db_num_rows($result) == 1) {
$owner_uid = db_fetch_result($result, 0, "owner_uid");
- return opml_export($link, $owner_uid, true, false);
+ return opml_export($link, "", $owner_uid, true, false);
} else {
print "<error>User not found</error>";
}