1
|
|
|
<?php |
2
|
|
|
class Bookmarklets extends Plugin { |
3
|
|
|
private $host; |
4
|
|
|
|
5
|
|
|
function about() { |
6
|
|
|
return array(1.0, |
7
|
|
|
"Easy feed subscription and web page sharing using bookmarklets", |
8
|
|
|
"fox", |
9
|
|
|
false, |
10
|
|
|
"https://git.tt-rss.org/fox/tt-rss/wiki/ShareAnything"); |
11
|
|
|
} |
12
|
|
|
|
13
|
|
|
function init($host) { |
|
|
|
|
14
|
|
|
$this->host = $host; |
15
|
|
|
|
16
|
|
|
$host->add_hook($host::HOOK_PREFS_TAB, $this); |
17
|
|
|
} |
18
|
|
|
|
19
|
|
|
function hook_prefs_tab($args) { |
|
|
|
|
20
|
|
|
if ($args == "prefFeeds") { |
21
|
|
|
|
22
|
|
|
print "<div dojoType=\"dijit.layout.AccordionPane\" |
23
|
|
|
title=\"<i class='material-icons'>bookmark</i> ".__('Bookmarklets')."\">"; |
24
|
|
|
|
25
|
|
|
print "<h3>".__("Drag the link below to your browser toolbar, open the feed you're interested in in your browser and click on the link to subscribe to it.")."</h3>"; |
26
|
|
|
|
27
|
|
|
$bm_subscribe_url = str_replace('%s', '', Pref_Feeds::subscribe_to_feed_url()); |
28
|
|
|
|
29
|
|
|
$confirm_str = str_replace("'", "\'", __('Subscribe to %s in Tiny Tiny RSS?')); |
30
|
|
|
|
31
|
|
|
$bm_url = htmlspecialchars("javascript:{if(confirm('$confirm_str'.replace('%s',window.location.href)))window.location.href='$bm_subscribe_url'+window.location.href}"); |
32
|
|
|
|
33
|
|
|
print "<p><label class='dijitButton'>"; |
34
|
|
|
print "<a href=\"$bm_url\">".__('Subscribe in Tiny Tiny RSS')."</a>"; |
35
|
|
|
print "</label></p>"; |
36
|
|
|
|
37
|
|
|
print "<h3>".__("Use this bookmarklet to publish arbitrary pages using Tiny Tiny RSS")."</h3>"; |
38
|
|
|
|
39
|
|
|
print "<label class='dijitButton'>"; |
40
|
|
|
$bm_url = htmlspecialchars("javascript:(function(){var d=document,w=window,e=w.getSelection,k=d.getSelection,x=d.selection,s=(e?e():(k)?k():(x?x.createRange().text:0)),f='".get_self_url_prefix()."/public.php?op=sharepopup',l=d.location,e=encodeURIComponent,g=f+'&title='+((e(s))?e(s):e(document.title))+'&url='+e(l.href);function a(){if(!w.open(g,'t','toolbar=0,resizable=0,scrollbars=1,status=1,width=500,height=250')){l.href=g;}}a();})()"); |
41
|
|
|
print "<a href=\"$bm_url\">".__('Share with Tiny Tiny RSS')."</a>"; |
42
|
|
|
print "</label>"; |
43
|
|
|
|
44
|
|
|
print "<button dojoType='dijit.form.Button' class='alt-info' onclick='window.open(\"https://tt-rss.org/wiki/ShareAnything\")'> |
45
|
|
|
<i class='material-icons'>help</i> ".__("More info...")."</button>"; |
46
|
|
|
|
47
|
|
|
print "</div>"; #pane |
48
|
|
|
|
49
|
|
|
} |
50
|
|
|
} |
51
|
|
|
|
52
|
|
|
public function api_version() { |
53
|
|
|
return 2; |
54
|
|
|
} |
55
|
|
|
|
56
|
|
|
} |
57
|
|
|
|
Adding explicit visibility (
private
,protected
, orpublic
) is generally recommend to communicate to other developers how, and from where this method is intended to be used.