From 19c7350770788edf3ae0bb1fd6d95876667adbf6 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Sun, 23 Dec 2012 14:52:18 +0400 Subject: experimental new plugin system --- plugins/share/README.txt | 1 + plugins/share/share.js | 21 +++++++++++++++ plugins/share/share.php | 68 +++++++++++++++++++++++++++++++++++++++++++++++ plugins/share/share.png | Bin 0 -> 183 bytes 4 files changed, 90 insertions(+) create mode 100644 plugins/share/README.txt create mode 100644 plugins/share/share.js create mode 100644 plugins/share/share.php create mode 100644 plugins/share/share.png (limited to 'plugins/share') diff --git a/plugins/share/README.txt b/plugins/share/README.txt new file mode 100644 index 000000000..087c9281d --- /dev/null +++ b/plugins/share/README.txt @@ -0,0 +1 @@ +Support for sharing articles by URL diff --git a/plugins/share/share.js b/plugins/share/share.js new file mode 100644 index 000000000..6752189ea --- /dev/null +++ b/plugins/share/share.js @@ -0,0 +1,21 @@ +function shareArticle(id) { + try { + if (dijit.byId("shareArticleDlg")) + dijit.byId("shareArticleDlg").destroyRecursive(); + + var query = "backend.php?op=pluginhandler&plugin=share&method=shareArticle¶m=" + param_escape(id); + + dialog = new dijit.Dialog({ + id: "shareArticleDlg", + title: __("Share article by URL"), + style: "width: 600px", + href: query}); + + dialog.show(); + + } catch (e) { + exception_error("emailArticle", e); + } +} + + diff --git a/plugins/share/share.php b/plugins/share/share.php new file mode 100644 index 000000000..157c937ea --- /dev/null +++ b/plugins/share/share.php @@ -0,0 +1,68 @@ +link = $host->get_link(); + $this->host = $host; + + $host->add_hook($host::HOOK_ARTICLE_BUTTON, $this); + } + + function get_js() { + return file_get_contents(dirname(__FILE__) . "/share.js"); + } + + function hook_article_button($line) { + return "link, 'images/art-share.png')."\" + class='tagsPic' style=\"cursor : pointer\" + onclick=\"shareArticle(".$line['int_id'].")\" + title='".__('Share by URL')."'>"; + } + + function shareArticle() { + $param = db_escape_string($_REQUEST['param']); + + $result = db_query($this->link, "SELECT uuid, ref_id FROM ttrss_user_entries WHERE int_id = '$param' + AND owner_uid = " . $_SESSION['uid']); + + if (db_num_rows($result) == 0) { + print "Article not found."; + } else { + + $uuid = db_fetch_result($result, 0, "uuid"); + $ref_id = db_fetch_result($result, 0, "ref_id"); + + if (!$uuid) { + $uuid = db_escape_string(sha1(uniqid(rand(), true))); + db_query($this->link, "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:"); + + $url_path = get_self_url_prefix(); + $url_path .= "/public.php?op=share&key=$uuid"; + + print "
"; + print "$url_path"; + print "
"; + + /* if (!label_find_id($this->link, __('Shared'), $_SESSION["uid"])) + label_create($this->link, __('Shared'), $_SESSION["uid"]); + + label_add_article($this->link, $ref_id, __('Shared'), $_SESSION['uid']); */ + } + + print "
"; + + print ""; + + print "
"; + } + + +} +?> diff --git a/plugins/share/share.png b/plugins/share/share.png new file mode 100644 index 000000000..92a69dfec Binary files /dev/null and b/plugins/share/share.png differ -- cgit v1.2.3