summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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>";
}