summaryrefslogtreecommitdiff
path: root/plugins/share
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2012-12-23 14:52:18 +0400
committerAndrew Dolgov <[email protected]>2012-12-23 14:52:18 +0400
commit19c7350770788edf3ae0bb1fd6d95876667adbf6 (patch)
treee539d53acd796375d7feba1efd66d3850fd14db1 /plugins/share
parent83e6e313be6de7d6e3f155a13c821ab82da12575 (diff)
experimental new plugin system
Diffstat (limited to 'plugins/share')
-rw-r--r--plugins/share/README.txt1
-rw-r--r--plugins/share/share.js21
-rw-r--r--plugins/share/share.php68
-rw-r--r--plugins/share/share.pngbin0 -> 183 bytes
4 files changed, 90 insertions, 0 deletions
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&param=" + 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 @@
+<?php
+class Share {
+ private $link;
+ private $host;
+
+ function __construct($host) {
+ $this->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 "<img src=\"".theme_image($this->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 "<div class=\"tagCloudContainer\">";
+ print "<a id='pub_opml_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"]);
+
+ label_add_article($this->link, $ref_id, __('Shared'), $_SESSION['uid']); */
+ }
+
+ print "<div align='center'>";
+
+ print "<button dojoType=\"dijit.form.Button\" onclick=\"return dijit.byId('shareArticleDlg').hide()\">".
+ __('Close this window')."</button>";
+
+ print "</div>";
+ }
+
+
+}
+?>
diff --git a/plugins/share/share.png b/plugins/share/share.png
new file mode 100644
index 000000000..92a69dfec
--- /dev/null
+++ b/plugins/share/share.png
Binary files differ