blob: 133f0944749eae17885d4eb2b6e633c9e155fdc3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
<?php
class Share extends Plugin {
private $host;
function about() {
return array(1.0,
"Share article by unique URL",
"fox");
}
function init($host) {
$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) {
$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($_REQUEST['param']);
$result = db_query("SELECT uuid 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");
if (!$uuid) {
$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:") . "<br/>";
$url_path = get_self_url_prefix();
$url_path .= "/public.php?op=share&key=$uuid";
print "<div class=\"tagCloudContainer\">";
print "<a id='gen_article_url' href='$url_path' target='_blank' rel='noopener noreferrer'>$url_path</a>";
print "</div>";
/* if (!label_find_id(__('Shared'), $_SESSION["uid"]))
label_create(__('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;
}
}
|