]> git.wh0rd.org - tt-rss.git/blobdiff - plugins/share/init.php
various minor style updates, add danger buttons
[tt-rss.git] / plugins / share / init.php
index a3dc3522461450b74ef255ba81063be98dad0c89..0f8f8fec12633165d68d612f5e9fa97cc04c8161 100644 (file)
@@ -1,6 +1,5 @@
 <?php
 class Share extends Plugin {
-       private $link;
        private $host;
 
        function about() {
@@ -10,27 +9,76 @@ class Share extends Plugin {
        }
 
        function init($host) {
-               $this->link = $host->get_link();
                $this->host = $host;
 
                $host->add_hook($host::HOOK_ARTICLE_BUTTON, $this);
+               $host->add_hook($host::HOOK_PREFS_TAB_SECTION, $this);
        }
 
        function get_js() {
                return file_get_contents(dirname(__FILE__) . "/share.js");
        }
 
+       function get_prefs_js() {
+               return file_get_contents(dirname(__FILE__) . "/share_prefs.js");
+       }
+
+
+       function unshare() {
+               $id = db_escape_string($_REQUEST['id']);
+
+               db_query("UPDATE ttrss_user_entries SET uuid = '' WHERE int_id = '$id'
+                       AND owner_uid = " . $_SESSION['uid']);
+
+               print "OK";
+       }
+
+       function hook_prefs_tab_section($id) {
+               if ($id == "prefFeedsPublishedGenerated") {
+
+                       print "<p>" . __("You can disable all articles shared by unique URLs here.") . "</p>";
+
+                       print "<button class=\"danger\" dojoType=\"dijit.form.Button\" onclick=\"return clearArticleAccessKeys()\">".
+                               __('Unshare all articles')."</button> ";
+
+                       print "</p>";
+
+               }
+       }
+
+       // Silent
+       function clearArticleKeys() {
+               db_query("UPDATE ttrss_user_entries SET uuid = '' WHERE
+                       owner_uid = " . $_SESSION["uid"]);
+
+               return;
+       }
+
+
+       function newkey() {
+               $id = db_escape_string($_REQUEST['id']);
+
+               $uuid = db_escape_string(uniqid_short());
+
+               db_query("UPDATE ttrss_user_entries SET uuid = '$uuid' WHERE int_id = '$id'
+                       AND owner_uid = " . $_SESSION['uid']);
+
+               print json_encode(array("link" => $uuid));
+       }
+
        function hook_article_button($line) {
-               return "<img src=\"plugins/share/share.png\"
+               $img = $line['uuid'] ? "share.png" : "notshared.png";
+
+               return "<img id='SHARE-IMG-".$line['int_id']."' src=\"plugins/share/$img\"
                        class='tagsPic' style=\"cursor : pointer\"
                        onclick=\"shareArticle(".$line['int_id'].")\"
                        title='".__('Share by URL')."'>";
        }
 
        function shareArticle() {
-               $param = db_escape_string($this->link, $_REQUEST['param']);
+               $param = db_escape_string($_REQUEST['param']);
 
-               $result = db_query($this->link, "SELECT uuid, ref_id FROM ttrss_user_entries WHERE int_id = '$param'
+               $result = db_query("SELECT uuid, ref_id FROM ttrss_user_entries WHERE int_id = '$param'
                        AND owner_uid = " . $_SESSION['uid']);
 
                if (db_num_rows($result) == 0) {
@@ -41,34 +89,43 @@ class Share extends Plugin {
                        $ref_id = db_fetch_result($result, 0, "ref_id");
 
                        if (!$uuid) {
-                               $uuid = db_escape_string($this->link, sha1(uniqid(rand(), true)));
-                               db_query($this->link, "UPDATE ttrss_user_entries SET uuid = '$uuid' WHERE int_id = '$param'
+                               $uuid = db_escape_string(uniqid_short());
+                               db_query("UPDATE ttrss_user_entries SET uuid = '$uuid' WHERE int_id = '$param'
                                        AND owner_uid = " . $_SESSION['uid']);
                        }
 
-                       print __("You can share this article by the following unique URL:");
+                       print __("You can share this article by the following unique URL:") . "<br/>";
 
                        $url_path = get_self_url_prefix();
                        $url_path .= "/public.php?op=share&key=$uuid";
 
                        print "<div class=\"tagCloudContainer\">";
-                       print "<a id='pub_opml_url' href='$url_path' target='_blank'>$url_path</a>";
+                       print "<a id='gen_article_url' href='$url_path' target='_blank'>$url_path</a>";
                        print "</div>";
 
-                       /* if (!label_find_id($this->link, __('Shared'), $_SESSION["uid"]))
-                               label_create($this->link, __('Shared'), $_SESSION["uid"]);
+                       /* if (!label_find_id(__('Shared'), $_SESSION["uid"]))
+                               label_create(__('Shared'), $_SESSION["uid"]);
 
-                       label_add_article($this->link, $ref_id, __('Shared'), $_SESSION['uid']); */
+                       label_add_article($ref_id, __('Shared'), $_SESSION['uid']); */
                }
 
                print "<div align='center'>";
 
+               print "<button dojoType=\"dijit.form.Button\" onclick=\"return dijit.byId('shareArticleDlg').unshare()\">".
+                       __('Unshare article')."</button>";
+
+               print "<button dojoType=\"dijit.form.Button\" onclick=\"return dijit.byId('shareArticleDlg').newurl()\">".
+                       __('Generate new URL')."</button>";
+
                print "<button dojoType=\"dijit.form.Button\" onclick=\"return dijit.byId('shareArticleDlg').hide()\">".
                        __('Close this window')."</button>";
 
                print "</div>";
        }
 
+       function api_version() {
+               return 2;
+       }
 
 }
 ?>