]> git.wh0rd.org - tt-rss.git/commitdiff
Extend OPML preferences pane, to provide more control of Export OPML
authorCraig Meyer <meyercr@themeyers.org>
Sun, 31 Jul 2011 02:34:22 +0000 (22:34 -0400)
committerCraig Meyer <meyercr@themeyers.org>
Sun, 31 Jul 2011 02:34:22 +0000 (22:34 -0400)
    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]

functions.js
modules/pref-feeds.php
opml.php

index 335ed61ec897a9357f51fb379f54c408b9b4d643..e8bd6af3399c495d97f3d99771ae7872be20ea35 100644 (file)
@@ -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;
 }
 
 
index e16fa9b13990eb995bdabc0076bcff9340b52469..947716e9108070e339da7731dee864e30cdec7ff 100644 (file)
                        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.');
 
index 2e1eb84c6f4459d34635bbee0f684f78dc5f5039..991f93e0cc00b2b89d160f6afba0e692825f67e6 100644 (file)
--- a/opml.php
+++ b/opml.php
 
        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\">";
        // 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"){
 
                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>";
                }